di_node
pbp->di_node = node;
pb.di_node = DI_NODE_NIL;
return (pb.di_node);
di_node_t di_node;
di_node_t di_node;
di_node = di_drv_first_node(drv_name, *di_root);
if (di_node == DI_NODE_NIL)
while (di_minor = di_minor_next(di_node, di_minor)) {
(f_user->fu_instance == di_instance(di_node))) {
path = di_devfs_path(di_node);
} while (di_node = di_drv_next_node(di_node));
static int do_probe(int fd, di_node_t di_node, di_prom_handle_t di_phdl,
do_probe(int fd, di_node_t di_node, di_prom_handle_t di_phdl,
len = di_prop_lookup_ints(DDI_DEV_T_ANY, di_node,
len = di_prom_prop_lookup_ints(di_phdl, di_node,
process_nexus_node(di_node_t di_node, di_minor_t minor, void *arg)
if ((do_probe(fd, di_node, walk_args_p->di_phdl,
di_node_t di_node;
if ((di_node = di_init("/", DINFOCPYALL)) == DI_NODE_NIL) {
(void) di_walk_minor(di_node, DDI_NT_REGACC, 0,
if (di_node != DI_NODE_NIL) {
di_fini(di_node);
di_node_t di_node;
di_node = di_lookup_node(di_root, devfs_path);
if (di_node == DI_NODE_NIL) {
while ((pi = di_path_next_phci(di_node, pi)) != DI_PATH_NIL) {
construct_mpath_node(picl_nodehdl_t parh, di_node_t di_node)
while ((pi = di_path_next_phci(di_node, pi)) != DI_PATH_NIL) {
add_devinfo_props(picl_nodehdl_t nodeh, di_node_t di_node)
instance = di_instance(di_node);
di_val = di_bus_addr(di_node);
di_val = di_binding_name(di_node);
di_val = di_driver_name(di_node);
di_val = di_devfs_path(di_node);
for (di_prop = di_prop_next(di_node, DI_PROP_NIL);
di_prop = di_prop_next(di_node, di_prop)) {
add_openprom_props(picl_nodehdl_t nodeh, di_node_t di_node)
for (promp = di_prom_prop_next(ph, di_node, DI_PROM_PROP_NIL);
promp = di_prom_prop_next(ph, di_node, promp)) {
add_devinfo_props(picl_nodehdl_t nodeh, di_node_t di_node)
instance = di_instance(di_node);
di_val = di_bus_addr(di_node);
di_val = di_binding_name(di_node);
di_val = di_driver_name(di_node);
di_val = di_devfs_path(di_node);
for (di_prop = di_prop_next(di_node, DI_PROP_NIL);
di_prop = di_prop_next(di_node, di_prop)) {
di_node_t di_node;
get_cpuid(di_node_t di_node)
len = get_reg_prop(di_node, &idata);
di_node_t di_node;
di_node = cpu_arg->di_node;
if (!find_cpu(di_node, pcpuid)) {
cpu_arg.di_node = di_start;
di_node_t di_node;
di_node = cpu_arg->di_node;
dcpuid = get_cpuid(di_node);
add_cpus(di_node_t di_node)
for (cnode = di_child_node(di_node); cnode != DI_NODE_NIL;
cpu_arg.di_node = cnode;
cpc_get_cpu_ver(di_node_t di_node, void *arg)
node_name = di_node_name(di_node);
if ((n_names = di_compatible_names(di_node,
typedef struct di_node *di_node_t; /* node */
if ((err = populate_int_prop(di_node, nvl, "vendor-id", &vid)) != 0)
if ((err = populate_int_prop(di_node, nvl, "device-id", &did)) != 0)
if ((err = populate_int_prop(di_node, nvl, "revision-id", NULL)) != 0)
(void) populate_int_prop(di_node, nvl, "subsystem-vendor-id", NULL);
(void) populate_int_prop(di_node, nvl, "subsystem-id", NULL);
di_node_t di_node;
if ((di_node = di_lookup_node(di_root, (char *)path)) == NULL) {
if (!is_pci(di_node))
info_nvl = dev_getinfo(di_node, db, gl.gl_pathv[i], path);
inspect_node(di_node_t di_node, void *arg)
if (!is_pci(di_node))
driver = di_driver_name(di_node);
di_instance(di_node)) < 0) {
if ((path = di_devfs_path(di_node)) == NULL) {
info_nvl = dev_getinfo(di_node, data->nd_db, devname, path);
is_pci(di_node_t di_node)
if (di_prop_lookup_strings(DDI_DEV_T_ANY, di_parent_node(di_node),
populate_int_prop(di_node_t di_node, nvlist_t *nvl, const char *name, int *ival)
if (di_prop_lookup_ints(DDI_DEV_T_ANY, di_node, name, &ivals) != 1)
dev_getinfo(di_node_t di_node, pcidb_hdl_t *db,
if ((n_names = di_compatible_names(di_node, &compatible_array)) > 0) {
di_node_name(di_node), di_devfs_path(di_node));
di_node_name(di_node), di_devfs_path(di_node));
if (curnode = di_child_node(di_node)) {
if (curnode = di_sibling_node(di_node)) {
dump_di_node(Prom_node *pnode, di_node_t di_node)
for (di_prop = di_prop_next(di_node, DI_PROP_NIL);
di_prop = di_prop_next(di_node, di_prop)) {
di_node, di_name, (int **)&di_data);
di_node, di_name, (char **)&di_data);
di_node, di_name, (uchar_t **)&di_data);
di_node, di_name, (uchar_t **)&di_data);
for (p_prop = di_prom_prop_next(ph, di_node, DI_PROM_PROP_NIL);
p_prop = di_prom_prop_next(ph, di_node, p_prop)) {
static void dump_di_node(Prom_node *pnode, di_node_t di_node);
di_node_t di_node);
walk_di_tree(Sys_tree *tree, Prom_node *root, di_node_t di_node)
dump_di_node(pnode, di_node);
di_node_t di_node;
di_node = di_init(tmp, DINFOPROP);
if (di_node == DI_NODE_NIL)
name = di_driver_name(di_node);
struct di_node *me;
struct di_node *vh_di_node;
struct di_node *me;
struct di_node *me;
struct di_node *me;
size = sizeof (struct di_node);
ASSERT(i_lnode->di_node->self > 0);
struct di_node *ptr;
ptr = i_lnode->di_node;
k >>= (int)highbit(sizeof (struct di_node));
if (i_lnode1->di_node != i_lnode2->di_node)
return ((i_lnode1->di_node < i_lnode2->di_node) ? -1 : 1);
i_lnode->di_node = DI_NODE(di_mem_addr(st, soff));
struct di_node *di_node; /* di_node in snapshot */
i_lnode->di_node = DI_NODE(di_mem_addr(st, toff));
struct di_node *medinode;
medinode = i_link->src_lnode->di_node;
medinode = i_link->tgt_lnode->di_node;
struct di_node *medinode;
ASSERT(i_lnode->di_node && i_lnode->di_node->self > 0);
me->node = i_lnode->di_node->self;
medinode = i_lnode->di_node;
#define DI_NODE(addr) ((struct di_node *)((void *)(addr)))