di_state
if (((di_state(node) & DI_DRIVER_DETACHED) == 0) &&
state = di_state(count_node);
state = di_state(sib_node);
state = di_state(node);
state = di_state(sib_node);
di_state[MIN(devi.devi_node_state + 1, DI_STATE_MAX)]);
di_state[MIN(da.da_node_state + 1, DI_STATE_MAX)]);
static const char *const di_state[] = {
#define DI_STATE_MAX ((sizeof (di_state) / sizeof (char *)) - 1)
} else if (di_state(node) & DI_DRIVER_DETACHED)
} else if (di_state(node) & DI_DRIVER_DETACHED) {
} else if (di_state(node) & DI_DRIVER_DETACHED) {
state = di_state(client_node);
state = di_state(dev_node);
state = di_state(node);
*di_statep = di_state(node);
devinfo_state = di_state(node);
devinfo_state = di_state(node);
state = di_state(node);
bsp->b_state = di_state(node);
devinfo_state = di_state(node);
state = di_state(node);
state = di_state(dnode);
state = di_state(dnode);
state = di_state(node);
extern uint_t di_state(di_node_t node);
infop->di_state = infoackp->dl_current_state;
uint_t di_state;
state = di_state(sv_child_node);
if ((di_state(node) &
if ((di_state(node) & DI_DRIVER_DETACHED) != DI_DRIVER_DETACHED) {
state = di_state(node);
state = di_state(portNode);
state = di_state(node);
di_mem2cache(struct di_state *st, struct di_cache *cache)
di_checkmem(struct di_state *st, di_off_t off, size_t size)
di_copyformat(di_off_t off, struct di_state *st, intptr_t arg, int mode)
di_mem_addr(struct di_state *st, di_off_t off)
di_copy_aliases(struct di_state *st, alias_pair_t *apair, di_off_t *offp)
di_snapshot(struct di_state *st)
di_snapshot_and_clean(struct di_state *st)
struct di_state *st;
st = (struct di_state *)arg;
snap_driver_list(struct di_state *st, struct devnames *dnp, di_off_t *off_p)
di_copydevnm(di_off_t *off_p, struct di_state *st)
di_copytree(struct dev_info *root, di_off_t *off_p, struct di_state *st)
di_copynode(struct dev_info *node, struct di_stack *dsp, struct di_state *st)
struct di_state *st = (struct di_state *)arg;
struct di_state *st;
di_getlink_data(di_off_t off, struct di_state *st)
struct di_state *st)
di_register_dip(struct di_state *st, dev_info_t *dip, di_off_t off)
di_dip_find(struct di_state *st, dev_info_t *dip, di_off_t *off_p)
di_register_pip(struct di_state *st, mdi_pathinfo_t *pip, di_off_t off)
di_pip_find(struct di_state *st, mdi_pathinfo_t *pip, di_off_t *off_p)
struct di_state *st)
struct di_state *st, int get_client)
struct di_state *st;
static di_off_t di_copyformat(di_off_t, struct di_state *, intptr_t, int);
di_getprop_add(int list, int dyn, struct di_state *st, struct dev_info *dip,
static di_off_t di_snapshot_and_clean(struct di_state *);
static di_off_t di_copydevnm(di_off_t *, struct di_state *);
static di_off_t di_copytree(struct dev_info *, di_off_t *, struct di_state *);
struct di_state *);
struct di_state *);
static di_off_t di_getppdata(struct dev_info *, di_off_t *, struct di_state *);
static di_off_t di_getdpdata(struct dev_info *, di_off_t *, struct di_state *);
struct di_state *);
struct di_state *st, struct dev_info *dip)
struct di_state *, struct dev_info *);
static void di_allocmem(struct di_state *, size_t);
static void di_freemem(struct di_state *);
static void di_copymem(struct di_state *st, caddr_t buf, size_t bufsiz);
static di_off_t di_checkmem(struct di_state *, di_off_t, size_t);
static void *di_mem_addr(struct di_state *, di_off_t);
static int di_setstate(struct di_state *, int);
static void di_register_dip(struct di_state *, dev_info_t *, di_off_t);
static void di_register_pip(struct di_state *, mdi_pathinfo_t *, di_off_t);
struct di_state *, int);
static di_off_t di_getlink_data(di_off_t, struct di_state *);
static int di_dip_find(struct di_state *st, dev_info_t *node, di_off_t *off_p);
di_match_drv_name(struct dev_info *node, struct di_state *st, int match)
static int cache_args_valid(struct di_state *st, int *error);
static int snapshot_is_cacheable(struct di_state *st);
static int di_cache_lookup(struct di_state *st);
static int di_cache_update(struct di_state *st);
void *data, di_off_t *off_p, struct di_state *st)
static void di_hotplug_children(struct di_state *st);
di_getppdata(struct dev_info *node, di_off_t *off_p, struct di_state *st)
di_getdpdata(struct dev_info *node, di_off_t *off_p, struct di_state *st)
struct di_state *st)
di_setstate(struct di_state *st, int new_state)
cache_args_valid(struct di_state *st, int *error)
snapshot_is_cacheable(struct di_state *st)
di_cache_lookup(struct di_state *st)
di_cache_update(struct di_state *st)
di_hotplug_children(struct di_state *st)
di_max_opens * sizeof (struct di_state *), KM_SLEEP);
di_max_opens * sizeof (struct di_state *));
kmem_free(di_states, di_max_opens * sizeof (struct di_state *));
di_states[m] = kmem_zalloc(sizeof (struct di_state), KM_SLEEP);
struct di_state *st;
kmem_free(st, sizeof (struct di_state));
struct di_state *st;
di_allocmem(struct di_state *st, size_t size)
di_copymem(struct di_state *st, caddr_t buf, size_t bufsiz)
di_freemem(struct di_state *st)
di_cache2mem(struct di_cache *cache, struct di_state *st)