Lines Matching refs:rp

57 	int	(*sel_selector)(di_node_t node, rcm_arg_t *rp);
67 static int disk_select(di_node_t node, rcm_arg_t *rp);
68 static int nexus_select(di_node_t node, rcm_arg_t *rp);
69 static int enclosure_select(di_node_t node, rcm_arg_t *rp);
70 static int smp_select(di_node_t node, rcm_arg_t *rp);
109 rcm_arg_t *rp = (rcm_arg_t *)arg; in enclosure_minor() local
110 di_retire_t *dp = rp->rcm_dp; in enclosure_minor()
112 rp->rcm_supp = 1; in enclosure_minor()
119 enclosure_select(di_node_t node, rcm_arg_t *rp) in enclosure_select() argument
122 di_retire_t *dp = rp->rcm_dp; in enclosure_select()
151 rcm_arg_t *rp = (rcm_arg_t *)arg; in smp_minor() local
152 di_retire_t *dp = rp->rcm_dp; in smp_minor()
154 rp->rcm_supp = 1; in smp_minor()
161 smp_select(di_node_t node, rcm_arg_t *rp) in smp_select() argument
164 di_retire_t *dp = rp->rcm_dp; in smp_select()
186 rcm_arg_t *rp = (rcm_arg_t *)arg; in disk_minor() local
187 di_retire_t *dp = rp->rcm_dp; in disk_minor()
190 rp->rcm_supp = 1; in disk_minor()
202 disk_select(di_node_t node, rcm_arg_t *rp) in disk_select() argument
205 di_retire_t *dp = rp->rcm_dp; in disk_select()
224 nexus_select(di_node_t node, rcm_arg_t *rp) in nexus_select() argument
229 di_retire_t *dp = rp->rcm_dp; in nexus_select()
259 rcm_arg_t *rp = (rcm_arg_t *)arg; in node_select() local
266 dp = rp->rcm_dp; in node_select()
275 rp->rcm_supp = 0; in node_select()
297 sel = supported_devices[i].sel_selector(node, rp); in node_select()
312 rp->rcm_supp = 0; in node_select()
320 "Checking other nodes in subtree: %s\n", rp->rcm_root); in node_select()
330 retire_supported(rcm_arg_t *rp) in retire_supported() argument
333 di_node_t rnode = rp->rcm_node; in retire_supported()
335 dp = rp->rcm_dp; in retire_supported()
352 rp->rcm_supp = 1; in retire_supported()
353 if (di_walk_node(rnode, DI_WALK_CLDFIRST, rp, node_select) != 0) { in retire_supported()
356 rp->rcm_supp = 0; in retire_supported()
359 if (rp->rcm_supp) { in retire_supported()
363 return (rp->rcm_supp); in retire_supported()
367 rcm_finalize(rcm_arg_t *rp, int retcode) in rcm_finalize() argument
376 dp = rp->rcm_dp; in rcm_finalize()
381 retcode, rp->rcm_root); in rcm_finalize()
383 for (p = rp->rcm_cons_nodes; p; ) { in rcm_finalize()
388 rp->rcm_cons_nodes = NULL; in rcm_finalize()
392 for (p = rp->rcm_rsrc_minors; p; ) { in rcm_finalize()
396 retval = rp->rcm_remove(rp->rcm_handle, in rcm_finalize()
401 retval = rp->rcm_online(rp->rcm_handle, in rcm_finalize()
417 rp->rcm_rsrc_minors = NULL; in rcm_finalize()
423 rcm_arg_t *rp = (rcm_arg_t *)arg; in call_offline() local
424 di_retire_t *dp = rp->rcm_dp; in call_offline()
432 "failed. Returning RCM FAILURE: %s\n", rp->rcm_root); in call_offline()
433 rp->rcm_retcode = RCM_FAILURE; in call_offline()
440 "Returning RCM FAILURE: %s\n", rp->rcm_root); in call_offline()
442 rp->rcm_retcode = RCM_FAILURE; in call_offline()
451 retval = rp->rcm_offline(rp->rcm_handle, rpt->rpt_path, in call_offline()
454 rpt->rpt_next = rp->rcm_rsrc_minors; in call_offline()
455 rp->rcm_rsrc_minors = rpt; in call_offline()
460 rp->rcm_retcode = RCM_FAILURE; in call_offline()
463 rp->rcm_retcode = RCM_SUCCESS; in call_offline()
469 rp->rcm_retcode = RCM_FAILURE; in call_offline()
482 rcm_arg_t *rp = (rcm_arg_t *)arg; in offline_one() local
484 di_retire_t *dp = rp->rcm_dp; in offline_one()
491 RIO_ASSERT(dp, rp->rcm_retcode == RCM_SUCCESS || in offline_one()
492 rp->rcm_retcode == RCM_NO_CONSTRAINT); in offline_one()
496 rp->rcm_retcode = RCM_NO_CONSTRAINT; in offline_one()
517 if (di_walk_minor(node, NULL, 0, rp, call_offline) != 0) { in offline_one()
524 if (rp->rcm_retcode == RCM_FAILURE) { in offline_one()
529 } else if (rp->rcm_retcode == RCM_SUCCESS) { in offline_one()
532 rpt->rpt_next = rp->rcm_cons_nodes; in offline_one()
533 rp->rcm_cons_nodes = rpt; in offline_one()
534 } else if (rp->rcm_retcode != RCM_NO_CONSTRAINT) { in offline_one()
537 rp->rcm_retcode, rpt->rpt_path); in offline_one()
555 rp->rcm_retcode = RCM_SUCCESS; in offline_one()
559 rp->rcm_retcode = RCM_FAILURE; in offline_one()
573 rcm_notify(rcm_arg_t *rp, char **pp, size_t *clen) in rcm_notify() argument
583 dp = rp->rcm_dp; in rcm_notify()
587 RIO_ASSERT(dp, rp->rcm_root); in rcm_notify()
591 rnode = rp->rcm_node; in rcm_notify()
594 "NULL. Returning no RCM constraint: %s\n", rp->rcm_root); in rcm_notify()
598 rp->rcm_retcode = RCM_NO_CONSTRAINT; in rcm_notify()
599 rp->rcm_cons_nodes = NULL; in rcm_notify()
600 rp->rcm_rsrc_minors = NULL; in rcm_notify()
601 if (di_walk_node(rnode, DI_WALK_CLDFIRST, rp, offline_one) != 0) { in rcm_notify()
603 "failed: error: %s: %s\n", strerror(errno), rp->rcm_root); in rcm_notify()
605 rcm_finalize(rp, -1); in rcm_notify()
606 rp->rcm_retcode = RCM_FAILURE; in rcm_notify()
610 if (rp->rcm_retcode == RCM_FAILURE) { in rcm_notify()
612 "returned retcode of RCM_FAILURE: %s\n", rp->rcm_root); in rcm_notify()
613 rcm_finalize(rp, -1); in rcm_notify()
617 if (rp->rcm_retcode == RCM_NO_CONSTRAINT) { in rcm_notify()
620 rp->rcm_root); in rcm_notify()
628 for (len = 0, p = rp->rcm_cons_nodes; p; p = p->rpt_next) { in rcm_notify()
641 rp->rcm_root); in rcm_notify()
642 rcm_finalize(rp, -1); in rcm_notify()
643 rp->rcm_retcode = RCM_FAILURE; in rcm_notify()
647 for (s = plistp, p = rp->rcm_cons_nodes; p; ) { in rcm_notify()
655 rp->rcm_cons_nodes = NULL; in rcm_notify()
664 rp->rcm_retcode = RCM_SUCCESS; in rcm_notify()
666 return (rp->rcm_retcode); in rcm_notify()