nvlist
struct nvlist *a_locs; /* locators required */
struct nvlist *a_devs; /* children */
struct nvlist *a_refs; /* parents */
struct nvlist *d_attrs; /* attributes, if any */
struct nvlist *d_atlist; /* e.g., "at tg" (attr list) */
struct nvlist *d_attrs; /* attributes, if any */
struct nvlist *fi_nvpath; /* list of paths */
struct nvlist *fi_optx;/* options expression */
struct nvlist *fi_optf;/* flattened version of above, if needed */
struct nvlist *oi_optx;/* options expression */
struct nvlist *oi_optf;/* flattened version of above, if needed */
extern struct nvlist *options; /* options */
extern struct nvlist *defoptions; /* "defopt"'d options */
extern struct nvlist *mkoptions; /* makeoptions */
void addfile(struct nvlist *, struct nvlist *, int, const char *);
void addobject(const char *, struct nvlist *, int);
struct nvlist *newnv(const char *, const char *, void *, int, struct nvlist *);
void nvfree(struct nvlist *);
void nvfreel(struct nvlist *);
struct nvlist *nv_next;
struct nvlist *cf_root; /* "root on ra0a" */
struct nvlist *cf_swap; /* "swap on ra0b and ra1b" */
struct nvlist *cf_dump; /* "dumps on ra0b" */
addobject(const char *path, struct nvlist *optx, int flags)
struct nvlist *flathead, **flatp;
struct nvlist *flathead, **flatp;
struct nvlist ***p = context;
struct nvlist *nv;
struct nvlist ***p = context;
struct nvlist *nv;
expr_eval(struct nvlist *expr, int (*fn)(const char *, void *), void *context)
expr_free(struct nvlist *expr)
struct nvlist *rhs;
prexpr(struct nvlist *expr)
pr0(struct nvlist *e)
static int expr_eval(struct nvlist *,
static void expr_free(struct nvlist *);
addfile(struct nvlist *nvpath, struct nvlist *optx, int flags, const char *rule)
struct nvlist *nv;
struct nvlist **np;
static struct nvlist *alloc[1000];
struct nvlist *list;
struct nvlist *nv, *nvt;
do_option(struct hashtab *ht, struct nvlist ***nppp, const char *name,
struct nvlist *nv;
struct nvlist *nv;
cfcrosscheck(struct config *cf, const char *what, struct nvlist *nv)
static struct nvlist **nextopt;
static struct nvlist **nextdefopt;
static struct nvlist **nextmkopt;
static int do_option(struct hashtab *, struct nvlist ***,
static int cfcrosscheck(struct config *, const char *, struct nvlist *);
struct nvlist *nv;
struct nvlist *options; /* options */
struct nvlist *defoptions; /* "defopt"'d options */
struct nvlist *mkoptions; /* makeoptions */
emitopt(struct nvlist *nv)
struct nvlist *option;
static int emitcnt(struct nvlist *);
static int emitopt(struct nvlist *);
struct nvlist *nv;
emitcnt(struct nvlist *head)
struct nvlist *nv;
struct nvlist *nv;
struct nvlist *nv;
struct nvlist *nv, *nv1;
struct nvlist *nv;
struct nvlist *nv;
struct nvlist *nv;
struct nvlist *nv;
onlist(struct nvlist *nv, void *ptr)
fixloc(const char *name, struct attr *attr, struct nvlist *got)
struct nvlist *m, *n;
defattr(const char *name, struct nvlist *locs)
struct nvlist *nv;
has_errobj(struct nvlist *nv, void *obj)
static struct nvlist *
addtoattr(struct nvlist *l, struct devbase *dev)
struct nvlist *n;
defdev(struct devbase *dev, int ispseudo, struct nvlist *loclist,
struct nvlist *attrs)
struct nvlist *nv;
defdevattach(struct deva *deva, struct devbase *dev, struct nvlist *atlist,
struct nvlist *attrs)
struct nvlist *nv;
exclude(struct nvlist *nv, const char *name, const char *what)
resolve(struct nvlist **nvp, const char *name, const char *what,
struct nvlist *dflt, int part)
struct nvlist *nv;
lresolve(struct nvlist **nvp, const char *name, const char *what,
struct nvlist *dflt, int part)
struct nvlist *nv;
setconf(struct nvlist **npp, const char *what, struct nvlist *v)
struct nvlist *nv;
adddev(const char *name, const char *at, struct nvlist *loclist, int flags,
static int has_errobj(struct nvlist *, void *);
struct nvlist *nv;
static struct nvlist *addtoattr(struct nvlist *, struct devbase *);
static int exclude(struct nvlist *, const char *, const char *);
static int resolve(struct nvlist **, const char *, const char *,
struct nvlist *, int);
static int lresolve(struct nvlist **, const char *, const char *,
struct nvlist *, int);
static int onlist(struct nvlist *, void *);
static const char **fixloc(const char *, struct attr *, struct nvlist *);
int defattr(const char *, struct nvlist *);
void defdev(struct devbase *, int, struct nvlist *, struct nvlist *);
struct nvlist *, struct nvlist *);
void setconf(struct nvlist **, const char *, struct nvlist *);
void adddev(const char *, const char *, struct nvlist *, int, int);
static struct nvlist *nvhead;
struct nvlist *
newnv(const char *name, const char *str, void *ptr, int i, struct nvlist *next)
struct nvlist *nv;
nvfree(struct nvlist *nv)
nvfreel(struct nvlist *nv)
struct nvlist *next;