Lines Matching refs:args

78 static bus_t		*add_bus(struct search_args *args, di_node_t node,
82 static controller_t *add_controller(struct search_args *args,
87 struct search_args *args);
94 static void clean_paths(struct search_args *args);
96 struct search_args *args);
100 static bus_t *find_bus(struct search_args *args, char *name);
101 static controller_t *find_controller(struct search_args *args, char *name);
108 struct search_args *args);
115 static int have_disk(struct search_args *args, char *devid,
123 char *devlink_path, struct search_args *args);
130 controller_t *currp, struct search_args *args);
136 * args->disk_listp and args->controller_listp members of the args param.
143 findevs(struct search_args *args)
148 args->dev_walk_status = 0;
149 args->disk_listp = NULL;
150 args->controller_listp = NULL;
151 args->bus_listp = NULL;
153 args->handle = di_devlink_init(NULL, 0);
162 args->ph = di_prom_init();
163 (void) di_walk_minor(di_root, NULL, 0, args, add_devs);
168 (void) di_walk_minor(di_root, NULL, 0, args, add_devs);
174 (void) di_walk_minor(di_root, DDI_PSEUDO, 0, args, add_cluster_devs);
175 if (args->ph != DI_PROM_HANDLE_NIL) {
176 (void) di_prom_fini(args->ph);
180 (void) di_devlink_fini(&(args->handle));
182 clean_paths(args);
190 add_bus(struct search_args *args, di_node_t node, di_minor_t minor,
203 if ((btype = bus_type(node, minor, args->ph)) == NULL) {
204 return (add_bus(args, di_parent_node(node),
210 if ((bp = find_bus(args, devpath)) != NULL) {
216 args->dev_walk_status = ENOMEM;
241 args->dev_walk_status = ENOMEM;
248 args->dev_walk_status = ENOMEM;
257 args->dev_walk_status = ENOMEM;
263 if ((pnode = get_parent_bus(node, args)) != NULL) {
268 args->dev_walk_status = ENOMEM;
277 bp->freq = get_prom_int("clock-frequency", node, args->ph);
281 args->dev_walk_status = ENOMEM;
289 args->dev_walk_status = ENOMEM;
294 bp->next = args->bus_listp;
295 args->bus_listp = bp;
303 struct search_args *args;
312 args = (struct search_args *)arg;
327 args->node = node;
328 args->minor = minor;
329 args->dev_walk_status = 0;
342 (void) di_devlink_walk(args->handle, DEVLINK_DID_REGEX, slice_path,
345 if (args->dev_walk_status != 0) {
353 add_controller(struct search_args *args, di_node_t node, di_minor_t minor)
362 if ((cp = find_controller(args, devpath)) != NULL) {
376 if ((cp = find_controller(args, devpath)) != NULL) {
426 cp->freq = get_prom_int("clock-frequency", node, args->ph);
435 cp->next = args->controller_listp;
436 args->controller_listp = cp;
438 cp->bus = add_bus(args, di_parent_node(node),
447 struct search_args *args;
452 args = (struct search_args *)arg;
460 devidstr = get_str_prop(DEVICE_ID_PROP, args->node);
462 di_node_name(args->node), di_instance(args->node));
464 (void) have_disk(args, devidstr, kernel_name, &diskp);
482 if (add_disk2controller(diskp, args) != 0) {
483 args->dev_walk_status = ENOMEM;
488 di_node_name(args->node), di_instance(args->node));
498 args) != 0) {
499 args->dev_walk_status = ENOMEM;
508 args->dev_walk_status = ENOMEM;
519 struct search_args *args;
522 args = (struct search_args *)arg;
542 if (bus_type(node, minor, args->ph) != NULL) {
543 if (add_bus(args, node, minor, NULL) == NULL) {
544 args->dev_walk_status = ENOMEM;
549 if (add_controller(args, node, minor) == NULL) {
550 args->dev_walk_status = ENOMEM;
564 args->node = node;
565 args->minor = minor;
570 if (!have_disk(args, devidstr, kernel_name, &diskp)) {
571 args->dev_walk_status = 0;
576 diskp = create_disk(devidstr, kernel_name, args);
578 args->dev_walk_status = ENOMEM;
583 if (args->dev_walk_status == 0) {
585 args) != 0) {
586 args->dev_walk_status = ENOMEM;
603 zvdsk, args) != 0) {
604 args->dev_walk_status = ENOMEM;
614 args->dev_walk_status = ENOMEM;
620 if (args->dev_walk_status == 0) {
643 (void) di_devlink_walk(args->handle, pattern,
647 if (args->dev_walk_status != 0) {
656 add_disk2controller(disk_t *diskp, struct search_args *args)
664 node = args->node;
676 if ((cp = add_controller(args, pnode, minor)) == NULL) {
857 clean_paths(struct search_args *args)
861 for (cp = args->controller_listp; cp != NULL; cp = cp->next) {
865 remove_invalid_controller((*pp)->name, cp, args);
870 create_disk(char *deviceid, char *kernel_name, struct search_args *args)
916 type = di_minor_nodetype(args->minor);
918 prod_id = get_str_prop(PROD_ID_PROP, args->node);
925 prod_id = get_str_prop(PROD_ID_USB_PROP, args->node);
934 vendor_id = get_str_prop(VENDOR_ID_PROP, args->node);
941 vendor_id = get_str_prop(VENDOR_ID_PROP, args->node);
967 diskp->removable = get_prop(REMOVABLE_PROP, args->node);
1013 diskp->next = args->disk_listp;
1014 args->disk_listp = diskp;
1086 find_bus(struct search_args *args, char *name)
1090 listp = args->bus_listp;
1102 find_controller(struct search_args *args, char *name)
1106 listp = args->controller_listp;
1121 struct search_args *args;
1130 args = (struct search_args *)arg;
1148 minor = di_minor_name(args->minor);
1152 diskp = get_disk_by_deviceid(args->disk_listp,
1167 NULL, args);
1169 args->dev_walk_status = ENOMEM;
1172 if ((args->dev_walk_status == 0) &&
1174 args) != 0))
1175 args->dev_walk_status = ENOMEM;
1178 devlink_path, args) != 0)
1179 args->dev_walk_status = ENOMEM;
1235 args->dev_walk_status = ENOMEM;
1246 args->dev_walk_status = ENOMEM;
1250 args->dev_walk_status = ENOMEM;
1353 get_parent_bus(di_node_t node, struct search_args *args)
1362 if (bus_type(pnode, di_minor_next(pnode, NULL), args->ph) != NULL) {
1366 return (get_parent_bus(pnode, args));
1438 have_disk(struct search_args *args, char *devidstr, char *kernel_name,
1444 listp = args->disk_listp;
1595 struct search_args *args)
1632 aliasp->lun = get_prop(DM_LUN, args->node);
1633 aliasp->target = get_prop(DM_TARGET, args->node);
1634 aliasp->wwn = get_byte_prop(WWN_PROP, args->node);
1636 pnode = di_parent_node(args->node);
1826 struct search_args *args)
1839 for (dp = args->disk_listp; dp != NULL; dp = dp->next)
1842 for (bp = args->bus_listp; bp != NULL; bp = bp->next)
1849 for (pcp = NULL, cp = args->controller_listp; cp != NULL;
1868 args->controller_listp = cp;