Lines Matching refs:hp

86 static void	sbd_exec_op(sbd_handle_t *hp);
87 static void sbd_dev_configure(sbd_handle_t *hp);
88 static int sbd_dev_release(sbd_handle_t *hp);
89 static int sbd_dev_unconfigure(sbd_handle_t *hp);
90 static void sbd_attach_cpu(sbd_handle_t *hp, sbderror_t *ep,
92 static void sbd_detach_cpu(sbd_handle_t *hp, sbderror_t *ep,
94 static int sbd_detach_mem(sbd_handle_t *hp, sbderror_t *ep, int unit);
95 static void sbd_cancel(sbd_handle_t *hp);
324 static void sbd_release_handle(sbd_handle_t *hp);
325 static int sbd_pre_op(sbd_handle_t *hp);
326 static void sbd_post_op(sbd_handle_t *hp);
327 static int sbd_probe_board(sbd_handle_t *hp);
328 static int sbd_deprobe_board(sbd_handle_t *hp);
329 static void sbd_connect(sbd_handle_t *hp);
330 static void sbd_assign_board(sbd_handle_t *hp);
331 static void sbd_unassign_board(sbd_handle_t *hp);
332 static void sbd_poweron_board(sbd_handle_t *hp);
333 static void sbd_poweroff_board(sbd_handle_t *hp);
334 static void sbd_test_board(sbd_handle_t *hp);
336 static int sbd_disconnect(sbd_handle_t *hp);
337 static sbd_devlist_t *sbd_get_attach_devlist(sbd_handle_t *hp,
339 static int sbd_pre_attach_devlist(sbd_handle_t *hp,
341 static int sbd_post_attach_devlist(sbd_handle_t *hp,
343 static sbd_devlist_t *sbd_get_release_devlist(sbd_handle_t *hp,
345 static int sbd_pre_release_devlist(sbd_handle_t *hp,
347 static int sbd_post_release_devlist(sbd_handle_t *hp,
349 static void sbd_release_done(sbd_handle_t *hp,
352 static sbd_devlist_t *sbd_get_detach_devlist(sbd_handle_t *hp,
354 static int sbd_pre_detach_devlist(sbd_handle_t *hp,
356 static int sbd_post_detach_devlist(sbd_handle_t *hp,
358 static void sbd_status(sbd_handle_t *hp);
359 static void sbd_get_ncm(sbd_handle_t *hp);
366 static int sbd_copyin_ioarg(sbd_handle_t *hp, int mode, int cmd,
375 static sbd_devlist_t *sbd_get_devlist(sbd_handle_t *hp,
380 static int sbd_mem_status(sbd_handle_t *hp, sbd_devset_t devset,
495 sbd_handle_t *hp; in sbd_ioctl() local
534 hp = sbd_get_handle(dev, softsp, arg, &init_arg); in sbd_ioctl()
538 switch (hp->h_cmd) { in sbd_ioctl()
544 sbd_release_handle(hp); in sbd_ioctl()
549 switch (hp->h_cmd) { in sbd_ioctl()
558 mutex_enter(&SBDH2BD(hp->h_sbd)->sb_mutex); in sbd_ioctl()
572 rv = DEVSET_IN_SET(HD2MACHHD(hp)->sh_devset, in sbd_ioctl()
584 if (sbd_pre_op(hp) == 0) { in sbd_ioctl()
585 sbd_exec_op(hp); in sbd_ioctl()
586 sbd_post_op(hp); in sbd_ioctl()
589 rv = SBD_GET_ERRNO(SBD_HD2ERR(hp)); in sbd_ioctl()
593 switch (hp->h_cmd) { in sbd_ioctl()
599 mutex_exit(&SBDH2BD(hp->h_sbd)->sb_mutex); in sbd_ioctl()
603 sbd_release_handle(hp); in sbd_ioctl()
691 sbd_exec_op(sbd_handle_t *hp) in sbd_exec_op() argument
693 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_exec_op()
696 switch (hp->h_cmd) { in sbd_exec_op()
700 if (sbd_probe_board(hp)) in sbd_exec_op()
703 sbd_connect(hp); in sbd_exec_op()
707 sbd_dev_configure(hp); in sbd_exec_op()
711 if (((dev_canceled = sbd_dev_release(hp)) == 0) && in sbd_exec_op()
712 (SBD_GET_ERRNO(SBD_HD2ERR(hp)) == 0 && in sbd_exec_op()
713 SBD_GET_ERR(SBD_HD2ERR(hp)) == 0)) in sbd_exec_op()
714 dev_canceled = sbd_dev_unconfigure(hp); in sbd_exec_op()
717 sbd_cancel(hp); in sbd_exec_op()
722 if (sbd_disconnect(hp) == 0) in sbd_exec_op()
723 (void) sbd_deprobe_board(hp); in sbd_exec_op()
728 sbd_status(hp); in sbd_exec_op()
732 sbd_get_ncm(hp); in sbd_exec_op()
736 sbd_assign_board(hp); in sbd_exec_op()
740 sbd_unassign_board(hp); in sbd_exec_op()
744 sbd_poweroff_board(hp); in sbd_exec_op()
748 sbd_poweron_board(hp); in sbd_exec_op()
752 sbd_test_board(hp); in sbd_exec_op()
759 sbderror_t *ep = SBD_HD2ERR(hp); in sbd_exec_op()
764 iap->h_dev = hp->h_dev; in sbd_exec_op()
765 iap->h_cmd = hp->h_cmd; in sbd_exec_op()
766 iap->h_iap = (intptr_t)hp->h_iap; in sbd_exec_op()
767 iap->h_mode = hp->h_mode; in sbd_exec_op()
769 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_exec_op()
772 SBD_GET_PERR(hdp->h_err, SBD_HD2ERR(hp)); in sbd_exec_op()
780 SBD_SET_ERRNO(SBD_HD2ERR(hp), ENOTTY); in sbd_exec_op()
781 cmn_err(CE_WARN, "sbd:%s: unknown command (%d)", f, hp->h_cmd); in sbd_exec_op()
786 if (SBD_GET_ERR(SBD_HD2ERR(hp))) in sbd_exec_op()
787 PR_BYP("XXX e_code=%d", SBD_GET_ERR(SBD_HD2ERR(hp))); in sbd_exec_op()
788 if (SBD_GET_ERRNO(SBD_HD2ERR(hp))) in sbd_exec_op()
789 PR_BYP("XXX errno=%d", SBD_GET_ERRNO(SBD_HD2ERR(hp))); in sbd_exec_op()
793 sbd_get_devtype(sbd_handle_t *hp, dev_info_t *dip) in sbd_get_devtype() argument
795 sbd_board_t *sbp = hp ? SBDH2BD(hp->h_sbd) : NULL; in sbd_get_devtype()
848 sbd_dev_configure(sbd_handle_t *hp) in sbd_dev_configure() argument
856 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_dev_configure()
860 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_dev_configure()
861 while ((devlist = sbd_get_attach_devlist(hp, &devnum, pass)) != NULL) { in sbd_dev_configure()
864 err = sbd_pre_attach_devlist(hp, devlist, devnum); in sbd_dev_configure()
879 nodetype = sbd_get_devtype(hp, dip); in sbd_dev_configure()
883 SBD_GET_PERR(hdp->h_err, SBD_HD2ERR(hp)); in sbd_dev_configure()
889 sbd_attach_mem(hp, ep); in sbd_dev_configure()
899 sbd_attach_cpu(hp, ep, dip, unit); in sbd_dev_configure()
903 sbd_attach_io(hp, ep, dip, unit); in sbd_dev_configure()
911 if (sbd_set_err_in_hdl(hp, ep) == 0) in sbd_dev_configure()
915 err = sbd_post_attach_devlist(hp, devlist, devnum); in sbd_dev_configure()
925 sbd_dev_release(sbd_handle_t *hp) in sbd_dev_release() argument
930 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_dev_release()
938 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_dev_release()
941 while ((devlist = sbd_get_release_devlist(hp, &devnum, pass)) != NULL) { in sbd_dev_release()
943 err = sbd_pre_release_devlist(hp, devlist, devnum); in sbd_dev_release()
955 nodetype = sbd_get_devtype(hp, dip); in sbd_dev_release()
959 SBD_GET_PERR(hdp->h_err, SBD_HD2ERR(hp)); in sbd_dev_release()
964 sbd_release_mem(hp, dip, unit)) { in sbd_dev_release()
969 sbd_release_done(hp, nodetype, dip); in sbd_dev_release()
972 err = sbd_post_release_devlist(hp, devlist, devnum); in sbd_dev_release()
993 sbd_dev_unconfigure(sbd_handle_t *hp) in sbd_dev_unconfigure() argument
1001 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_dev_unconfigure()
1008 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_dev_unconfigure()
1010 while ((devlist = sbd_get_detach_devlist(hp, &devnum, pass)) != NULL) { in sbd_dev_unconfigure()
1013 err = sbd_pre_detach_devlist(hp, devlist, devnum); in sbd_dev_unconfigure()
1019 nodetype = sbd_get_devtype(hp, devlist->dv_dip); in sbd_dev_unconfigure()
1022 (void) sbd_post_detach_devlist(hp, devlist, devnum); in sbd_dev_unconfigure()
1033 nodetype = sbd_get_devtype(hp, dip); in sbd_dev_unconfigure()
1037 SBD_GET_PERR(hdp->h_err, SBD_HD2ERR(hp)); in sbd_dev_unconfigure()
1043 dev_canceled = sbd_detach_mem(hp, ep, unit); in sbd_dev_unconfigure()
1047 sbd_detach_cpu(hp, ep, dip, unit); in sbd_dev_unconfigure()
1051 sbd_detach_io(hp, ep, dip, unit); in sbd_dev_unconfigure()
1059 if (sbd_set_err_in_hdl(hp, ep) == 0) { in sbd_dev_unconfigure()
1065 err = sbd_post_detach_devlist(hp, devlist, devnum); in sbd_dev_unconfigure()
1105 sbd_attach_cpu(sbd_handle_t *hp, sbderror_t *ep, dev_info_t *dip, int unit) in sbd_attach_cpu() argument
1110 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_attach_cpu()
1125 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_attach_cpu()
1183 sbd_detach_cpu(sbd_handle_t *hp, sbderror_t *ep, dev_info_t *dip, int unit) in sbd_detach_cpu() argument
1188 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_detach_cpu()
1195 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_detach_cpu()
1224 sbd_detach_mem(sbd_handle_t *hp, sbderror_t *ep, int unit) in sbd_detach_mem() argument
1227 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_detach_mem()
1233 if (sbd_detach_memory(hp, ep, mp, unit)) { in sbd_detach_mem()
1435 sbd_handle_t *hp; in sbd_get_handle() local
1451 hp = MACHHD2HD(shp); in sbd_get_handle()
1455 hp->h_err = ep; in sbd_get_handle()
1456 hp->h_sbd = (void *) sbp; in sbd_get_handle()
1457 hp->h_dev = iap->dev; in sbd_get_handle()
1458 hp->h_cmd = iap->cmd; in sbd_get_handle()
1459 hp->h_mode = iap->mode; in sbd_get_handle()
1467 return (hp); in sbd_get_handle()
1479 sbd_set_err_in_hdl(sbd_handle_t *hp, sbderror_t *ep) in sbd_set_err_in_hdl() argument
1481 sbderror_t *hep = SBD_HD2ERR(hp); in sbd_set_err_in_hdl()
1501 sbd_release_handle(sbd_handle_t *hp) in sbd_release_handle() argument
1507 if (hp == NULL) in sbd_release_handle()
1510 sbp = SBDH2BD(hp->h_sbd); in sbd_release_handle()
1512 shp = HD2MACHHD(hp); in sbd_release_handle()
1531 if (hp->h_opts.copts != NULL) { in sbd_release_handle()
1532 FREESTRUCT(hp->h_opts.copts, char, hp->h_opts.size); in sbd_release_handle()
1539 sbd_get_sbdp_handle(sbd_board_t *sbp, sbd_handle_t *hp) in sbd_get_sbdp_handle() argument
1553 if (hp == NULL) { in sbd_get_sbdp_handle()
1557 hdp->h_flags = SBD_2_SBDP_FLAGS(hp->h_flags); in sbd_get_sbdp_handle()
1558 hdp->h_opts = &hp->h_opts; in sbd_get_sbdp_handle()
1583 sbd_copyin_ioarg(sbd_handle_t *hp, int mode, int cmd, sbd_cmd_t *cmdp, in sbd_copyin_ioarg() argument
1644 (hp->h_opts.size = cmdp->cmd_cm.c_len) > 0) { in sbd_copyin_ioarg()
1645 hp->h_opts.size += 1; /* For null termination of string. */ in sbd_copyin_ioarg()
1646 hp->h_opts.copts = GETSTRUCT(char, hp->h_opts.size); in sbd_copyin_ioarg()
1648 (void *)hp->h_opts.copts, in sbd_copyin_ioarg()
1649 cmdp->cmd_cm.c_len, hp->h_mode) != 0) { in sbd_copyin_ioarg()
1826 sbd_pre_op(sbd_handle_t *hp) in sbd_pre_op() argument
1831 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_pre_op()
1832 sbd_priv_handle_t *shp = HD2MACHHD(hp); in sbd_pre_op()
1833 sbderror_t *ep = SBD_HD2ERR(hp); in sbd_pre_op()
1837 cmd = hp->h_cmd; in sbd_pre_op()
1851 if (!(hp->h_mode & FWRITE)) { in sbd_pre_op()
1860 hp->h_iap = GETSTRUCT(sbd_ioctl_arg_t, 1); in sbd_pre_op()
1861 rv = sbd_copyin_ioarg(hp, hp->h_mode, cmd, in sbd_pre_op()
1862 (sbd_cmd_t *)hp->h_iap, shp->sh_arg); in sbd_pre_op()
1865 FREESTRUCT(hp->h_iap, sbd_ioctl_arg_t, 1); in sbd_pre_op()
1866 hp->h_iap = NULL; in sbd_pre_op()
1870 cmdp = (sbd_cmd_t *)hp->h_iap; in sbd_pre_op()
1884 FREESTRUCT(hp->h_iap, sbd_ioctl_arg_t, 1); in sbd_pre_op()
1885 hp->h_iap = NULL; in sbd_pre_op()
1893 hp->h_flags |= SBD_FLAG_DEVI_FORCE; in sbd_pre_op()
1896 hp->h_flags |= SBD_IOCTL_FLAG_FORCE; in sbd_pre_op()
1943 if (serr && !rv && hp->h_iap) { in sbd_pre_op()
1954 SBD_SET_IOCTL_ERR(&hp->h_iap->i_err, ep->e_code, ep->e_rsc); in sbd_pre_op()
1955 (void) sbd_copyout_errs(hp->h_mode, hp->h_iap, shp->sh_arg); in sbd_pre_op()
1956 FREESTRUCT(hp->h_iap, sbd_ioctl_arg_t, 1); in sbd_pre_op()
1957 hp->h_iap = NULL; in sbd_pre_op()
1965 sbd_post_op(sbd_handle_t *hp) in sbd_post_op() argument
1968 sbderror_t *ep = SBD_HD2ERR(hp); in sbd_post_op()
1969 sbd_priv_handle_t *shp = HD2MACHHD(hp); in sbd_post_op()
1970 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_post_op()
1972 cmd = hp->h_cmd; in sbd_post_op()
1994 SBD_SET_IOCTL_ERR(&hp->h_iap->i_err, ep->e_code, in sbd_post_op()
1997 (void) sbd_copyout_errs(hp->h_mode, hp->h_iap, in sbd_post_op()
2001 if (hp->h_iap != NULL) { in sbd_post_op()
2002 FREESTRUCT(hp->h_iap, sbd_ioctl_arg_t, 1); in sbd_post_op()
2003 hp->h_iap = NULL; in sbd_post_op()
2009 sbd_probe_board(sbd_handle_t *hp) in sbd_probe_board() argument
2016 sbp = SBDH2BD(hp->h_sbd); in sbd_probe_board()
2022 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_probe_board()
2025 sbderror_t *ep = SBD_HD2ERR(hp); in sbd_probe_board()
2038 SBD_INJECT_ERR(SBD_PROBE_BOARD_PSEUDO_ERR, hp->h_err, EIO, in sbd_probe_board()
2047 sbd_deprobe_board(sbd_handle_t *hp) in sbd_deprobe_board() argument
2056 sbp = SBDH2BD(hp->h_sbd); in sbd_deprobe_board()
2058 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_deprobe_board()
2061 sbderror_t *ep = SBD_HD2ERR(hp); in sbd_deprobe_board()
2070 SBD_INJECT_ERR(SBD_DEPROBE_BOARD_PSEUDO_ERR, hp->h_err, EIO, in sbd_deprobe_board()
2108 sbd_handle_t *hp; in get_node_type() local
2118 hp = MACHBD2HD(sbp); in get_node_type()
2120 hdp = sbd_get_sbdp_handle(sbp, hp); in get_node_type()
2285 sbd_handle_t *hp = MACHBD2HD(sbp); in sbd_init_mem_devlists() local
2295 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_init_mem_devlists()
2497 sbd_handle_t *hp = MACHBD2HD(sbp); in sbd_init_cpu_unit() local
2512 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_init_cpu_unit()
2548 sbd_connect(sbd_handle_t *hp) in sbd_connect() argument
2554 sbp = SBDH2BD(hp->h_sbd); in sbd_connect()
2558 ep = HD2MACHERR(hp); in sbd_connect()
2583 sbd_init_mem_unit(sbp, i, SBD_HD2ERR(hp)); in sbd_connect()
2596 SBD_INJECT_ERR(SBD_CONNECT_BOARD_PSEUDO_ERR, hp->h_err, EIO, in sbd_connect()
2602 sbd_disconnect(sbd_handle_t *hp) in sbd_disconnect() argument
2611 sbp = SBDH2BD(hp->h_sbd); in sbd_disconnect()
2617 devset = HD2MACHHD(hp)->sh_devset & SBD_DEVS_PRESENT(sbp) & in sbd_disconnect()
2628 if (sbd_disconnect_mem(hp, i) == 0) { in sbd_disconnect()
2637 if (sbd_disconnect_cpu(hp, i) == 0) { in sbd_disconnect()
2646 if (sbd_disconnect_io(hp, i) == 0) { in sbd_disconnect()
2663 SBD_INJECT_ERR(SBD_DISCONNECT_BOARD_PSEUDO_ERR, hp->h_err, EIO, in sbd_disconnect()
2674 sbd_test_board(sbd_handle_t *hp) in sbd_test_board() argument
2679 sbp = SBDH2BD(hp->h_sbd); in sbd_test_board()
2684 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_test_board()
2686 if (sbdp_test_board(hdp, &hp->h_opts) != 0) { in sbd_test_board()
2687 sbderror_t *ep = SBD_HD2ERR(hp); in sbd_test_board()
2692 SBD_INJECT_ERR(SBD_TEST_BOARD_PSEUDO_ERR, hp->h_err, EIO, in sbd_test_board()
2699 sbd_assign_board(sbd_handle_t *hp) in sbd_assign_board() argument
2704 sbp = SBDH2BD(hp->h_sbd); in sbd_assign_board()
2708 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_assign_board()
2711 sbderror_t *ep = SBD_HD2ERR(hp); in sbd_assign_board()
2716 SBD_INJECT_ERR(SBD_ASSIGN_BOARD_PSEUDO_ERR, hp->h_err, EIO, in sbd_assign_board()
2723 sbd_unassign_board(sbd_handle_t *hp) in sbd_unassign_board() argument
2728 sbp = SBDH2BD(hp->h_sbd); in sbd_unassign_board()
2732 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_unassign_board()
2735 sbderror_t *ep = SBD_HD2ERR(hp); in sbd_unassign_board()
2740 SBD_INJECT_ERR(SBD_ASSIGN_BOARD_PSEUDO_ERR, hp->h_err, EIO, in sbd_unassign_board()
2747 sbd_poweron_board(sbd_handle_t *hp) in sbd_poweron_board() argument
2752 sbp = SBDH2BD(hp->h_sbd); in sbd_poweron_board()
2756 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_poweron_board()
2759 sbderror_t *ep = SBD_HD2ERR(hp); in sbd_poweron_board()
2764 SBD_INJECT_ERR(SBD_POWERON_BOARD_PSEUDO_ERR, hp->h_err, EIO, in sbd_poweron_board()
2771 sbd_poweroff_board(sbd_handle_t *hp) in sbd_poweroff_board() argument
2776 sbp = SBDH2BD(hp->h_sbd); in sbd_poweroff_board()
2780 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_poweroff_board()
2783 sbderror_t *ep = SBD_HD2ERR(hp); in sbd_poweroff_board()
2788 SBD_INJECT_ERR(SBD_POWEROFF_BOARD_PSEUDO_ERR, hp->h_err, EIO, in sbd_poweroff_board()
2801 sbd_get_devlist(sbd_handle_t *hp, sbd_board_t *sbp, sbd_comp_type_t nodetype, in sbd_get_devlist() argument
2824 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_get_devlist()
2829 sbderror_t *ep = SBD_HD2ERR(hp); in sbd_get_devlist()
2892 sbd_get_attach_devlist(sbd_handle_t *hp, int32_t *devnump, int32_t pass) in sbd_get_attach_devlist() argument
2903 sbp = SBDH2BD(hp->h_sbd); in sbd_get_attach_devlist()
2904 devset = HD2MACHHD(hp)->sh_devset; in sbd_get_attach_devlist()
2929 attach_devlist = sbd_get_devlist(hp, sbp, SBD_COMP_CPU, in sbd_get_attach_devlist()
2949 attach_devlist = sbd_get_devlist(hp, sbp, SBD_COMP_MEM, in sbd_get_attach_devlist()
2971 attach_devlist = sbd_get_devlist(hp, sbp, SBD_COMP_IO, in sbd_get_attach_devlist()
2990 sbd_pre_attach_devlist(sbd_handle_t *hp, sbd_devlist_t *devlist, int32_t devnum) in sbd_pre_attach_devlist() argument
3000 nodetype = sbd_get_devtype(hp, devlist->dv_dip); in sbd_pre_attach_devlist()
3009 rv = sbd_pre_attach_mem(hp, devlist, devnum); in sbd_pre_attach_devlist()
3014 rv = sbd_pre_attach_cpu(hp, devlist, devnum); in sbd_pre_attach_devlist()
3051 sbd_post_attach_devlist(sbd_handle_t *hp, sbd_devlist_t *devlist, in sbd_post_attach_devlist() argument
3057 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_post_attach_devlist()
3061 sbp = SBDH2BD(hp->h_sbd); in sbd_post_attach_devlist()
3062 nodetype = sbd_get_devtype(hp, devlist->dv_dip); in sbd_post_attach_devlist()
3067 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_post_attach_devlist()
3076 rv = sbd_post_attach_cpu(hp, devlist, devnum); in sbd_post_attach_devlist()
3083 rv = sbd_post_attach_mem(hp, devlist, devnum); in sbd_post_attach_devlist()
3103 if (sbd_set_err_in_hdl(hp, ep) == 0) in sbd_post_attach_devlist()
3107 nodetype = sbd_get_devtype(hp, dip); in sbd_post_attach_devlist()
3131 f, SBD_GET_ERRNO(SBD_HD2ERR(hp)), in sbd_post_attach_devlist()
3132 SBD_GET_ERR(HD2MACHERR(hp))); in sbd_post_attach_devlist()
3203 sbd_get_release_devlist(sbd_handle_t *hp, int32_t *devnump, int32_t pass) in sbd_get_release_devlist() argument
3214 sbp = SBDH2BD(hp->h_sbd); in sbd_get_release_devlist()
3215 devset = HD2MACHHD(hp)->sh_devset; in sbd_get_release_devlist()
3240 release_devlist = sbd_get_devlist(hp, sbp, in sbd_get_release_devlist()
3263 release_devlist = sbd_get_devlist(hp, sbp, in sbd_get_release_devlist()
3287 release_devlist = sbd_get_devlist(hp, sbp, in sbd_get_release_devlist()
3308 sbd_pre_release_devlist(sbd_handle_t *hp, sbd_devlist_t *devlist, in sbd_pre_release_devlist() argument
3315 nodetype = sbd_get_devtype(hp, devlist->dv_dip); in sbd_pre_release_devlist()
3323 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_pre_release_devlist()
3325 sbd_priv_handle_t *shp = HD2MACHHD(hp); in sbd_pre_release_devlist()
3348 sbderror_t *ep = SBD_HD2ERR(hp); in sbd_pre_release_devlist()
3353 rv = sbd_pre_release_cpu(hp, devlist, devnum); in sbd_pre_release_devlist()
3361 rv = sbd_pre_release_mem(hp, devlist, devnum); in sbd_pre_release_devlist()
3367 rv = sbd_pre_release_io(hp, devlist, devnum); in sbd_pre_release_devlist()
3400 sbd_post_release_devlist(sbd_handle_t *hp, sbd_devlist_t *devlist, in sbd_post_release_devlist() argument
3405 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_post_release_devlist()
3410 nodetype = sbd_get_devtype(hp, devlist->dv_dip); in sbd_post_release_devlist()
3435 if (sbd_check_io_refs(hp, devlist, devnum) > 0) { in sbd_post_release_devlist()
3446 SBD_SET_ERR(HD2MACHERR(hp), ESBD_INVAL); in sbd_post_release_devlist()
3450 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_post_release_devlist()
3459 if (sbd_set_err_in_hdl(hp, ep) == 0) { in sbd_post_release_devlist()
3465 SBD_GET_PERR(hdp->h_err, SBD_HD2ERR(hp)); in sbd_post_release_devlist()
3473 if (SBD_GET_ERRNO(SBD_HD2ERR(hp))) { in sbd_post_release_devlist()
3475 f, SBD_GET_ERRNO(SBD_HD2ERR(hp)), in sbd_post_release_devlist()
3476 SBD_GET_ERR(SBD_HD2ERR(hp))); in sbd_post_release_devlist()
3492 return (SBD_GET_ERRNO(SBD_HD2ERR(hp)) ? -1 : 0); in sbd_post_release_devlist()
3503 sbd_release_done(sbd_handle_t *hp, sbd_comp_type_t nodetype, dev_info_t *dip) in sbd_release_done() argument
3506 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_release_done()
3513 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_release_done()
3514 ep = SBD_HD2ERR(hp); in sbd_release_done()
3533 sbd_release_mem_done((void *)hp, unit); in sbd_release_done()
3552 sbd_get_detach_devlist(sbd_handle_t *hp, int32_t *devnump, int32_t pass) in sbd_get_detach_devlist() argument
3563 sbp = SBDH2BD(hp->h_sbd); in sbd_get_detach_devlist()
3564 devset = HD2MACHHD(hp)->sh_devset; in sbd_get_detach_devlist()
3589 detach_devlist = sbd_get_devlist(hp, sbp, in sbd_get_detach_devlist()
3611 detach_devlist = sbd_get_devlist(hp, sbp, in sbd_get_detach_devlist()
3634 detach_devlist = sbd_get_devlist(hp, sbp, in sbd_get_detach_devlist()
3655 sbd_pre_detach_devlist(sbd_handle_t *hp, sbd_devlist_t *devlist, int32_t devnum) in sbd_pre_detach_devlist() argument
3661 nodetype = sbd_get_devtype(hp, devlist->dv_dip); in sbd_pre_detach_devlist()
3668 rv = sbd_pre_detach_cpu(hp, devlist, devnum); in sbd_pre_detach_devlist()
3672 rv = sbd_pre_detach_mem(hp, devlist, devnum); in sbd_pre_detach_devlist()
3676 rv = sbd_pre_detach_io(hp, devlist, devnum); in sbd_pre_detach_devlist()
3692 sbd_post_detach_devlist(sbd_handle_t *hp, sbd_devlist_t *devlist, in sbd_post_detach_devlist() argument
3702 sbp = SBDH2BD(hp->h_sbd); in sbd_post_detach_devlist()
3703 nodetype = sbd_get_devtype(hp, devlist->dv_dip); in sbd_post_detach_devlist()
3705 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_post_detach_devlist()
3717 rv = sbd_post_detach_cpu(hp, devlist, devnum); in sbd_post_detach_devlist()
3722 rv = sbd_post_detach_mem(hp, devlist, devnum); in sbd_post_detach_devlist()
3727 rv = sbd_post_detach_io(hp, devlist, devnum); in sbd_post_detach_devlist()
3743 if (sbd_set_err_in_hdl(hp, ep) == 0) in sbd_post_detach_devlist()
3749 if (hp->h_flags & SBD_IOCTL_FLAG_FORCE) in sbd_post_detach_devlist()
3756 nodetype = sbd_get_devtype(hp, dip); in sbd_post_detach_devlist()
3796 f, SBD_GET_ERRNO(SBD_HD2ERR(hp)), in sbd_post_detach_devlist()
3797 SBD_GET_ERR(HD2MACHERR(hp))); in sbd_post_detach_devlist()
3813 return (SBD_GET_ERRNO(SBD_HD2ERR(hp)) ? -1 : 0); in sbd_post_detach_devlist()
3830 sbd_handle_t *hp = MACHBD2HD(sbp); in sbd_check_unit_attached() local
3833 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_check_unit_attached()
3925 sbd_get_memhandle(sbd_handle_t *hp, dev_info_t *dip, memhandle_t *mhp) in sbd_get_memhandle() argument
3927 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_get_memhandle()
3935 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_get_memhandle()
3939 SBD_GET_PERR(hdp->h_err, SBD_HD2ERR(hp)); in sbd_get_memhandle()
3951 SBD_SET_ERR(SBD_HD2ERR(hp), ESBD_INTERNAL); in sbd_get_memhandle()
3952 SBD_SET_ERRSTR(SBD_HD2ERR(hp), sbp->sb_mempath[unit]); in sbd_get_memhandle()
3960 sbd_cpu_cnt(sbd_handle_t *hp, sbd_devset_t devset) in sbd_cpu_cnt() argument
3965 sbp = SBDH2BD(hp->h_sbd); in sbd_cpu_cnt()
4000 sbd_mem_cnt(sbd_handle_t *hp, sbd_devset_t devset) in sbd_mem_cnt() argument
4003 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_mem_cnt()
4033 sbd_mem_status(sbd_handle_t *hp, sbd_devset_t devset, sbd_dev_stat_t *dsp) in sbd_mem_status() argument
4045 sbp = SBDH2BD(hp->h_sbd); in sbd_mem_status()
4176 sbd_cancel(sbd_handle_t *hp) in sbd_cancel() argument
4180 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_cancel()
4190 devset = HD2MACHHD(hp)->sh_devset & SBD_DEVS_UNREFERENCED(sbp); in sbd_cancel()
4199 if (sbd_cancel_cpu(hp, i) != SBD_CPUERR_FATAL) { in sbd_cancel()
4218 if ((rv = sbd_cancel_mem(hp, i)) == 0) { in sbd_cancel()
4250 sbd_get_ncm(sbd_handle_t *hp) in sbd_get_ncm() argument
4253 sbd_priv_handle_t *shp = HD2MACHHD(hp); in sbd_get_ncm()
4254 sbd_cmd_t *cmdp = (sbd_cmd_t *)hp->h_iap; in sbd_get_ncm()
4260 cmdp->cmd_getncm.g_ncm = sbd_cpu_cnt(hp, devset) + in sbd_get_ncm()
4261 sbd_io_cnt(hp, devset) + sbd_mem_cnt(hp, devset); in sbd_get_ncm()
4263 error = sbd_copyout_ioarg(hp->h_mode, hp->h_cmd, cmdp, in sbd_get_ncm()
4267 SBD_SET_ERRNO(SBD_HD2ERR(hp), error); in sbd_get_ncm()
4271 sbd_status(sbd_handle_t *hp) in sbd_status() argument
4274 sbd_priv_handle_t *shp = HD2MACHHD(hp); in sbd_status()
4276 sbd_board_t *sbp = SBDH2BD(hp->h_sbd); in sbd_status()
4278 sbd_cmd_t *cmdp = (sbd_cmd_t *)hp->h_iap; in sbd_status()
4289 mode = hp->h_mode; in sbd_status()
4306 ncm = sbd_cpu_cnt(hp, devset) + sbd_io_cnt(hp, devset) + in sbd_status()
4307 sbd_mem_cnt(hp, devset); in sbd_status()
4320 ncm = sbd_cpu_cnt(hp, devset) + sbd_io_cnt(hp, devset) + in sbd_status()
4321 sbd_mem_cnt(hp, devset); in sbd_status()
4325 SBD_SET_ERRNO(SBD_HD2ERR(hp), EINVAL); in sbd_status()
4362 SBD_SET_ERRNO(SBD_HD2ERR(hp), EINVAL); in sbd_status()
4401 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_status()
4404 SBD_GET_PERR(hdp->h_err, SBD_HD2ERR(hp)); in sbd_status()
4431 if ((nstat = sbd_cpu_flags(hp, devset, devstatp)) > 0) { in sbd_status()
4437 if ((nstat = sbd_mem_status(hp, devset, devstatp)) > 0) { in sbd_status()
4443 if ((nstat = sbd_io_status(hp, devset, devstatp)) > 0) { in sbd_status()
4456 SBD_SET_ERRNO(SBD_HD2ERR(hp), EINVAL); in sbd_status()
4475 SBD_SET_ERRNO(SBD_HD2ERR(hp), EINVAL); in sbd_status()
4600 SBD_SET_ERRNO(SBD_HD2ERR(hp), EFAULT); in sbd_status()
4609 SBD_SET_ERRNO(SBD_HD2ERR(hp), EFAULT); in sbd_status()
4633 sbd_handle_t *hp = MACHBD2HD(sbp); in sbd_board_discovery() local
4648 hdp = sbd_get_sbdp_handle(sbp, hp); in sbd_board_discovery()