ARRAY
if ((vp->flag&ARRAY) && any_set && !(vp->flag & ISSET))
if (vp->flag&ARRAY)
if ((vp->flag&ARRAY) && any_set)
if (vp->flag & (ISSET|ARRAY))
((*dp)->flag&ARRAY)))
vp->flag |= ARRAY|DEFINED;
vpbase = (vp->flag & ARRAY) ? global(arrayname(var)) : vp;
if ((vp->flag & ARRAY) && !array_ref) {
vp->flag &= SPECIAL | (array_ref ? ARRAY|DEFINED : 0);
#define DECLARRAY_BYTYPE(ARRAY, T) \
struct ARRAY *ARRAY##_create(void); \
void ARRAY##_destroy(struct ARRAY *a); \
void ARRAY##_init(struct ARRAY *a); \
void ARRAY##_cleanup(struct ARRAY *a); \
unsigned ARRAY##_num(const struct ARRAY *a); \
T *ARRAY##_get(const struct ARRAY *a, unsigned index_); \
void ARRAY##_set(struct ARRAY *a, unsigned index_, T *val); \
int ARRAY##_setsize(struct ARRAY *a, unsigned num); \
int ARRAY##_add(struct ARRAY *a, T *val, unsigned *index_ret); \
int ARRAY##_insert(struct ARRAY *a, unsigned index_); \
void ARRAY##_remove(struct ARRAY *a, unsigned index_)
#define DEFARRAY_BYTYPE(ARRAY, T, INLINE) \
ARRAY##_init(struct ARRAY *a) \
ARRAY##_cleanup(struct ARRAY *a) \
ARRAY *ARRAY##_create(void) \
struct ARRAY *a; \
ARRAY##_init(a); \
ARRAY##_destroy(struct ARRAY *a) \
ARRAY##_cleanup(a); \
ARRAY##_num(const struct ARRAY *a) \
ARRAY##_get(const struct ARRAY *a, unsigned index_) \
ARRAY##_set(struct ARRAY *a, unsigned index_, T *val) \
ARRAY##_setsize(struct ARRAY *a, unsigned num) \
ARRAY##_add(struct ARRAY *a, T *val, unsigned *ret) \
ARRAY##_insert(struct ARRAY *a, unsigned index_) \
ARRAY##_remove(struct ARRAY *a, unsigned index_) \
#define KMEM_CACHE_PROBE(ARRAY, INDEX, PTR, REQSIZE, ALLOCSIZE, FLAGS) \
#define KMEM_CACHE_PROBE(ARRAY, INDEX, PTR, REQSIZE, ALLOCSIZE, FLAGS) do \
KDASSERT((INDEX) < __arraycount(ARRAY)); \
if (__predict_false((id = *(ARRAY)[INDEX]) != 0)) { \
{ 41, IPV4 | ARRAY, "nis_servers" },
{ 42, IPV4 | ARRAY, "ntp_servers" },
{ 44, IPV4 | ARRAY, "netbios_name_servers" },
{ 48, IPV4 | ARRAY, "font_servers" },
{ 49, IPV4 | ARRAY, "x_display_manager" },
{ 55, UINT8 | ARRAY, "dhcp_parameter_request_list" },
{ 65, IPV4 | ARRAY, "nisplus_servers" },
{ 68, IPV4 | ARRAY, "mobile_ip_home_agent" },
{ 69, IPV4 | ARRAY, "smtp_server" },
{ 70, IPV4 | ARRAY, "pop_server" },
{ 71, IPV4 | ARRAY, "nntp_server" },
{ 72, IPV4 | ARRAY, "www_server" },
{ 73, IPV4 | ARRAY, "finger_server" },
{ 74, IPV4 | ARRAY, "irc_server" },
{ 75, IPV4 | ARRAY, "streettalk_server" },
{ 76, IPV4 | ARRAY, "streettalk_directory_assistance_server" },
{ 85, IPV4 | ARRAY, "nds_servers" },
{ 89, IPV4 | ARRAY, "bcms_controller_address" },
{ 92, IPV4 | ARRAY, "associated_ip" },
{ 112, IPV4 | ARRAY, "netinfo_server_address" },
if (opt->type & IPV4 || opt->type & ARRAY)
{ 33, IPV4 | ARRAY | REQUEST, "static_routes" },
{ 3, IPV4 | ARRAY | REQUEST, "routers" },
{ 4, IPV4 | ARRAY, "time_servers" },
{ 5, IPV4 | ARRAY, "ien116_name_servers" },
{ 6, IPV4 | ARRAY, "domain_name_servers" },
{ 7, IPV4 | ARRAY, "log_servers" },
{ 8, IPV4 | ARRAY, "cookie_servers" },
{ 9, IPV4 | ARRAY, "lpr_servers" },
{ 10, IPV4 | ARRAY, "impress_servers" },
{ 11, IPV4 | ARRAY, "resource_location_servers" },
{ 21, IPV4 | ARRAY, "policy_filter" },
{ 25, UINT16 | ARRAY, "path_mtu_plateau_table" },
typeinfo("array", ARRAY, ARRAY, 0, 0, ' '),
case ARRAY:
if (sym->s_type->t_tspec == ARRAY
if (sz == 0 && t == ARRAY && dsym->s_type->u.dimension == 0)
type_t *tp = block_derive_type(stp, ARRAY);
if (t == ARRAY)
if (t == ARRAY && tp1->u.dimension != tp2->u.dimension) {
if (dst->t_tspec == ARRAY) {
if (t == ARRAY) {
dsym->s_type->t_tspec == ARRAY &&
sym->s_type->t_tspec == ARRAY && sym->s_type->u.dimension == 0) {
while (tp->t_tspec == ARRAY) {
while (tp->t_tspec == ARRAY)
if (t == FUNC || t == ARRAY) {
} else if (to == ARRAY) {
if (t == ARRAY && tp->u.dimension == 0) {
if (ts == ARRAY) {
if (!(ltp != NULL && ltp->t_tspec == ARRAY && rn->tn_op == STRING))
case ARRAY:
} else if (tp->t_tspec == ARRAY)
case ARRAY:
lint_assert(tp->t_tspec == ARRAY);
if (is_struct_or_union(ltp->t_tspec) || ltp->t_tspec == ARRAY) {
else if (tp->t_tspec == ARRAY)
if (tp->t_tspec != ARRAY) {
if (in->in_sym->s_type->t_tspec == ARRAY)
while (tp->t_tspec == ARRAY) {
if (ltp->t_tspec != ARRAY || ltp->t_incomplete_array)
if (tn->tn_type->t_tspec == ARRAY) {
if (t == ARRAY || t == FUNC) {
return tp->t_tspec == ARRAY &&
while (nst == ARRAY)
while (ost == ARRAY)
if (tp->t_tspec != ARRAY)
while (tp->t_tspec == ARRAY) {
else if (nt == STRUCT || nt == ARRAY || nt == FUNC) {
&& arr->tn_type->t_tspec == ARRAY
sym->s_type = block_derive_type(gettyp(CHAR), ARRAY);
tp->t_tspec = ARRAY;
if (t == ARRAY && tp1->t_dim != tp2->t_dim) {
if (ts == ARRAY) {
return ARRAY;
case ARRAY:
t = ARRAY;
case ARRAY: