devbase
struct devbase *p_atdev; /* optional parent device base */
TAILQ_ENTRY(devbase) d_next;
struct devbase *d_levelparent;
struct devbase *d_devbase; /* the base device */
struct devbase *i_base;/* e.g., pointer to "sd" base */
TAILQ_HEAD(devbasetq, devbase);
int devbase_has_instances(struct devbase *, int);
struct devbase *dev;
struct devbase *devb;
%type <devb> devbase
DEVICE devbase interface_opt depend_list
ATTACH devbase AT atlist devattach_opt depend_list
DEFPSEUDO devbase interface_opt depend_list
DEFPSEUDODEV devbase interface_opt depend_list
devbase:
devbase '=' int32 { setmajor($1, $3); }
do_emit_instances(struct devbase *d, struct attr *at)
do_emit_instances((struct devbase *)value, NULL);
struct devbase *d = value;
devbase_has_instances(struct devbase *dev, int unit)
struct devbase *dev;
struct devbase *d;
struct devbase *d;
devbase_has_any_instance(struct devbase *dev, int unit, int state, int level)
struct devbase *d;
struct devbase *parent;
static struct devbase root;
addlevelparent(struct devbase *d, struct devbase *parent)
struct devbase *p;
do_kill_orphans(struct devbase *d, struct attr *at, struct devbase *parent,
static int devbase_has_any_instance(struct devbase *, int, int, int);
static void do_kill_orphans(struct devbase *, struct attr *,
struct devbase *, int);
do_kill_orphans((struct devbase *)value, NULL, NULL, DEVI_ACTIVE);
struct devbase *d;
struct devbase *d;
struct devbase *d;
struct devbase *d;
struct devbase *dev;
struct devbase *d;
makedevstack(struct devbase *d)
newdevi(const char *name, int unit, struct devbase *d)
finddevattr(const char *name, const char *at, struct devbase *ib,
struct devbase **ab, int *atunit)
struct devbase *ib; /* i->i_base */
struct devbase *ab; /* not NULL => at another dev */
struct devbase *d;
struct devbase *d = i->i_base;
struct devbase *d, *ad;
struct devbase *d = ht_lookup(devbasetab, name);
struct devbase *ib;
struct devbase *fakedev;
deldevbase(struct devbase *d)
struct devbase *d;
struct devbase *d;
getpspec(struct attr *attr, struct devbase *ab, int atunit, int first)
struct devbase *d;
fixdev(struct devbase *dev)
selectbase(struct devbase *d, struct deva *da)
struct devbase *dev;
addtoattr(struct nvlist *l, struct devbase *dev)
defdev(struct devbase *dev, struct loclist *loclist, struct attrlist *attrs,
struct devbase *
struct devbase *dev;
defdevattach(struct deva *deva, struct devbase *dev, struct nvlist *atlist,
static struct devbase errdev;
static struct nvlist *addtoattr(struct nvlist *, struct devbase *);
static struct pspec *getpspec(struct attr *, struct devbase *, int, int);
static struct devi *newdevi(const char *, int, struct devbase *d);
setmajor(struct devbase *d, devmajor_t n)
static void selectbase(struct devbase *, struct deva *);
struct devbase *dev;
dev2major(struct devbase *dev)
static devmajor_t dev2major(struct devbase *);
struct devbase *dev;
void defdev(struct devbase *, struct loclist *, struct attrlist *, int);
void defdevattach(struct deva *, struct devbase *, struct nvlist *,
struct devbase *getdevbase(const char *);
void setmajor(struct devbase *, int);
snprintf(devbase, sizeof(devbase), "%s%d.0",
if (open_dev(&fd, devbase) < 0)
__func__, current_board, devbase);
char devbase[64];
snprintf(devbase, sizeof(devbase), "%s%d.0", device_string, current_board);
if (open_dev(&fd, devbase) < 0) {
snprintf(devbase, sizeof(devbase),
if (open_dev(&fd, devbase) < 0) {
__func__, current_board, devbase);
__func__, devbase);