Lines Matching refs:args

87 static bus_t		*add_bus(struct search_args *args, di_node_t node,
89 static controller_t *add_controller(struct search_args *args,
94 struct search_args *args);
103 static void clean_paths(struct search_args *args);
105 struct search_args *args);
109 static bus_t *find_bus(struct search_args *args, char *name);
110 static controller_t *find_controller(struct search_args *args, char *name);
116 struct search_args *args);
123 static int have_disk(struct search_args *args, char *devid,
130 char *devlink_path, struct search_args *args);
135 controller_t *currp, struct search_args *args);
147 findevs(struct search_args *args) in findevs() argument
151 args->bus_listp = NULL; in findevs()
152 args->controller_listp = NULL; in findevs()
153 args->disk_listp = NULL; in findevs()
155 args->ph = DI_PROM_HANDLE_NIL; in findevs()
156 args->handle = DI_LINK_NIL; in findevs()
157 args->dev_walk_status = 0; in findevs()
163 if ((args->ph = di_prom_init()) == DI_PROM_HANDLE_NIL || in findevs()
164 (args->handle = di_devlink_init(NULL, 0)) == DI_LINK_NIL) { in findevs()
169 args->dev_walk_status = errno; in findevs()
179 (void) di_walk_minor(di_root, NULL, 0, args, add_devs); in findevs()
183 (void) di_walk_minor(di_root, NULL, 0, args, add_devs); in findevs()
186 clean_paths(args); in findevs()
189 if (args->ph != DI_PROM_HANDLE_NIL) { in findevs()
190 di_prom_fini(args->ph); in findevs()
191 args->ph = DI_PROM_HANDLE_NIL; in findevs()
193 if (args->handle != DI_LINK_NIL) { in findevs()
194 (void) di_devlink_fini(&(args->handle)); in findevs()
203 add_bus(struct search_args *args, di_node_t node, di_minor_t minor, in add_bus() argument
216 if ((btype = bus_type(node, minor, args->ph)) == NULL) { in add_bus()
217 return (add_bus(args, di_parent_node(node), in add_bus()
223 if ((bp = find_bus(args, devpath)) != NULL) { in add_bus()
229 args->dev_walk_status = ENOMEM; in add_bus()
254 args->dev_walk_status = ENOMEM; in add_bus()
261 args->dev_walk_status = ENOMEM; in add_bus()
270 args->dev_walk_status = ENOMEM; in add_bus()
276 if ((pnode = get_parent_bus(node, args)) != NULL) { in add_bus()
281 args->dev_walk_status = ENOMEM; in add_bus()
290 bp->freq = get_prom_int("clock-frequency", node, args->ph); in add_bus()
294 args->dev_walk_status = ENOMEM; in add_bus()
302 args->dev_walk_status = ENOMEM; in add_bus()
307 bp->next = args->bus_listp; in add_bus()
308 args->bus_listp = bp; in add_bus()
314 add_controller(struct search_args *args, di_node_t node, di_minor_t minor) in add_controller() argument
323 if ((cp = find_controller(args, devpath)) != NULL) { in add_controller()
337 if ((cp = find_controller(args, devpath)) != NULL) { in add_controller()
387 cp->freq = get_prom_int("clock-frequency", node, args->ph); in add_controller()
396 cp->next = args->controller_listp; in add_controller()
397 args->controller_listp = cp; in add_controller()
399 cp->bus = add_bus(args, di_parent_node(node), in add_controller()
408 struct search_args *args; in add_devpath() local
413 args = (struct search_args *)arg; in add_devpath()
421 devidstr = get_str_prop(DEVICE_ID_PROP, args->node); in add_devpath()
423 di_node_name(args->node), di_instance(args->node)); in add_devpath()
425 (void) have_disk(args, devidstr, kernel_name, &diskp); in add_devpath()
443 if (add_disk2controller(diskp, args) != 0) { in add_devpath()
444 args->dev_walk_status = ENOMEM; in add_devpath()
449 di_node_name(args->node), di_instance(args->node)); in add_devpath()
459 args) != 0) { in add_devpath()
460 args->dev_walk_status = ENOMEM; in add_devpath()
469 args->dev_walk_status = ENOMEM; in add_devpath()
480 struct search_args *args; in add_devs() local
483 args = (struct search_args *)arg; in add_devs()
503 if (bus_type(node, minor, args->ph) != NULL) { in add_devs()
504 if (add_bus(args, node, minor, NULL) == NULL) { in add_devs()
505 args->dev_walk_status = ENOMEM; in add_devs()
510 if (add_controller(args, node, minor) == NULL) { in add_devs()
511 args->dev_walk_status = ENOMEM; in add_devs()
525 args->node = node; in add_devs()
526 args->minor = minor; in add_devs()
531 if (!have_disk(args, devidstr, kernel_name, &diskp)) { in add_devs()
532 args->dev_walk_status = 0; in add_devs()
537 diskp = create_disk(devidstr, kernel_name, args); in add_devs()
539 args->dev_walk_status = ENOMEM; in add_devs()
544 if (args->dev_walk_status == 0) { in add_devs()
546 args) != 0) { in add_devs()
547 args->dev_walk_status = ENOMEM; in add_devs()
564 zvdsk, args) != 0) { in add_devs()
565 args->dev_walk_status = ENOMEM; in add_devs()
575 args->dev_walk_status = ENOMEM; in add_devs()
581 if (args->dev_walk_status == 0) { in add_devs()
604 (void) di_devlink_walk(args->handle, pattern, in add_devs()
608 if (args->dev_walk_status != 0) { in add_devs()
617 add_disk2controller(disk_t *diskp, struct search_args *args) in add_disk2controller() argument
625 node = args->node; in add_disk2controller()
659 if ((cp = add_controller(args, pnode, minor)) == NULL) { in add_disk2controller()
914 clean_paths(struct search_args *args) in clean_paths() argument
918 cp = args->controller_listp; in clean_paths()
928 args); in clean_paths()
936 create_disk(char *deviceid, char *kernel_name, struct search_args *args) in create_disk() argument
984 type = di_minor_nodetype(args->minor); in create_disk()
986 prod_id = get_str_prop(PROD_ID_PROP, args->node); in create_disk()
993 prod_id = get_str_prop(PROD_ID_USB_PROP, args->node); in create_disk()
1002 vendor_id = get_str_prop(VENDOR_ID_PROP, args->node); in create_disk()
1009 vendor_id = get_str_prop(VENDOR_ID_USB_PROP, args->node); in create_disk()
1018 serial = get_str_prop(INQUIRY_SERIAL_NO, args->node); in create_disk()
1043 diskp->removable = get_prop(REMOVABLE_PROP, args->node); in create_disk()
1051 diskp->next = args->disk_listp; in create_disk()
1052 args->disk_listp = diskp; in create_disk()
1130 find_bus(struct search_args *args, char *name) in find_bus() argument
1134 listp = args->bus_listp; in find_bus()
1146 find_controller(struct search_args *args, char *name) in find_controller() argument
1150 listp = args->controller_listp; in find_controller()
1258 get_parent_bus(di_node_t node, struct search_args *args) in get_parent_bus() argument
1267 if (bus_type(pnode, di_minor_next(pnode, NULL), args->ph) != NULL) { in get_parent_bus()
1271 return (get_parent_bus(pnode, args)); in get_parent_bus()
1337 have_disk(struct search_args *args, char *devidstr, char *kernel_name, in have_disk() argument
1343 listp = args->disk_listp; in have_disk()
1487 struct search_args *args) in new_alias() argument
1522 aliasp->lun = get_prop(DM_LUN, args->node); in new_alias()
1523 aliasp->target = get_prop(DM_TARGET, args->node); in new_alias()
1524 aliasp->wwn = get_byte_prop(WWN_PROP, args->node); in new_alias()
1526 pnode = di_parent_node(args->node); in new_alias()
1694 struct search_args *args) in remove_invalid_controller() argument
1700 bp = args->bus_listp; in remove_invalid_controller()
1720 if (args->controller_listp == NULL) { in remove_invalid_controller()
1724 cp = args->controller_listp; in remove_invalid_controller()
1726 args->controller_listp = cp->next; in remove_invalid_controller()