Lines Matching defs:pshot
35 * The pshot driver can be used to exercise the i/o framework together
38 * The pshot driver is rooted at /devices/pshot. The following commands
39 * illustrate the operation of devfs together with pshot's bus_config.
41 * nothing up his sleeve, /devices/pshot is empty. The second command
42 * conjures up a branch of pshot nodes. Note that pshot's bus_config is
44 * resolution, and that each pshot node is fully configured and
47 * at the bottom of the named hierarchy of pshot nodes.
50 * # ls /devices/pshot
52 * # ls -ld /devices/pshot/pshot@0/pshot@1/pshot@2/disk@3,0
54 * /devices/pshot/pshot@0/pshot@1/pshot@2/disk@3,0
56 * pshot supports some unique behaviors as aids for test error cases.
92 #include <sys/pshot.h>
166 * devices "natively" supported by pshot (i.e. included with SUNWiotu)
184 {"nexus", DDI_NT_NEXUS, "pshot"}
392 * instead of being set globably, in pshot.conf by specifying the properties
394 * name="pshot" parent="/" <dev props ..>
457 cmn_err(CE_CONT, "pshot%d: "
476 pshot_t *pshot;
482 pshot = ddi_get_soft_state(pshot_softstatep, instance);
483 if (pshot == NULL) {
488 *result = (void *)pshot->dip;
507 pshot_t *pshot;
526 cmn_err(CE_CONT, "attach: %s%d/pshot%d\n",
538 cmn_err(CE_CONT, "pshot%d: "
554 pshot = ddi_get_soft_state(pshot_softstatep, instance);
555 pshot->dip = devi;
556 pshot->instance = instance;
557 mutex_init(&pshot->lock, NULL, MUTEX_DRIVER, NULL);
562 pshot->nodes[i].pshot = pshot;
563 pshot->nodes[i].minor = pshot_minor_encode(instance, i);
564 (void) strncpy(pshot->nodes[i].name, PSHOT_NODENAME_DEVCTL,
568 pshot->nodes[i].pshot = pshot;
569 pshot->nodes[i].minor = pshot_minor_encode(instance, i);
570 (void) strncpy(pshot->nodes[i].name, PSHOT_NODENAME_TESTCTL,
575 if (ddi_create_minor_node(devi, pshot->nodes[i].name,
576 S_IFCHR, pshot->nodes[i].minor, DDI_NT_NEXUS, 0) !=
579 "minor %s", pshot->nodes[i].name);
588 cmn_err(CE_WARN, "attach: pshot devices setup "
602 cmn_err(CE_CONT, "pshot%d: event=%s:"
611 (void *)pshot,
612 &pshot->callback_cache[i]);
615 cmn_err(CE_CONT, "pshot%d: event=%s: "
625 pshot_event_test((void *)pshot);
626 (void) timeout(pshot_event_test_post_one, (void *)pshot,
634 if (ndi_event_alloc_hdl(devi, NULL, &pshot->ndi_event_hdl,
639 pshot->ndi_events.ndi_events_version = NDI_EVENTS_REV1;
640 pshot->ndi_events.ndi_n_events = PSHOT_N_NDI_EVENTS;
641 pshot->ndi_events.ndi_event_defs = pshot_ndi_event_defs;
643 if (ndi_event_bind_set(pshot->ndi_event_hdl, &pshot->ndi_events,
645 cmn_err(CE_CONT, "pshot%d bind set failed\n",
651 * a second level pshot node (parent == /SUNW,pshot)
652 * enable by setting "autoattach=1" in pshot.conf
662 mutex_enter(&pshot->lock);
663 pshot->busy = 0;
664 pshot->busy_ioctl = 0;
665 pshot->level = -1;
666 pshot->state &= ~STRICT_PARENT;
667 pshot->state |= PM_SUPPORTED;
668 mutex_exit(&pshot->lock);
672 * for the root node /devices/pshot
676 cmn_err(CE_CONT, "pshot%d: DDI_ATTACH:\n\t"
703 cmn_err(CE_CONT, "pshot%d: DDI_ATTACH:"
706 mutex_enter(&pshot->lock);
707 pshot->state |= STRICT_PARENT;
708 mutex_exit(&pshot->lock);
711 cmn_err(CE_CONT, "pshot%d: DDI_ATTACH:"
714 mutex_enter(&pshot->lock);
715 pshot->state &= ~STRICT_PARENT;
716 mutex_exit(&pshot->lock);
722 * - skip for pshot@XXX,nopm and pshot@XXX,nopm_strict:
729 cmn_err(CE_CONT, "pshot%d: DDI_ATTACH:"
744 cmn_err(CE_CONT, "pshot%d: DDI_ATTACH:"
747 mutex_enter(&pshot->lock);
748 pshot->state &= ~PM_SUPPORTED;
749 mutex_exit(&pshot->lock);
757 cmn_err(CE_CONT, "pshot%d: DDI_ATTACH:"
773 * - skip if PM_SUPPORTED is not set (pshot@XXX,nopm)
775 if (pshot->state & PM_SUPPORTED) {
777 cmn_err(CE_CONT, "pshot%d: DDI_ATTACH:"
780 if (pm_raise_power(pshot->dip, 0, MAXPWR) !=
793 cmn_err(CE_CONT, "pshot%d attached\n", instance);
800 mutex_destroy(&pshot->lock);
806 cmn_err(CE_CONT, "pshot%d: DDI_RESUME: resuming\n",
809 pshot = ddi_get_soft_state(pshot_softstatep, instance);
813 * - skip if PM_SUPPORTED is not set (pshot@XXX,nopm)
815 if (pshot->state & PM_SUPPORTED) {
817 cmn_err(CE_CONT, "pshot%d: DDI_RESUME:"
820 if (pm_raise_power(pshot->dip, 0, MAXPWR) !=
830 cmn_err(CE_CONT, "pshot%d: DDI_RESUME: resumed\n",
845 pshot_t *pshot = ddi_get_soft_state(pshot_softstatep, instance);
848 if (pshot == NULL)
855 cmn_err(CE_CONT, "pshot%d: DDI_DETACH\n", instance);
858 * - skip if PM_SUPPORTED is not set (pshot@XXX,nopm)
860 if (pshot->state & PM_SUPPORTED) {
862 cmn_err(CE_CONT, "pshot%d: DDI_DETACH:"
865 if (pm_lower_power(pshot->dip, 0, 0) != DDI_SUCCESS) {
878 mutex_enter(&pshot->lock);
879 if (pshot->level != 0) {
881 cmn_err(CE_NOTE, "pshot%d:"
886 level_tmp = pshot->level;
887 pshot->level = 0;
888 if (pm_power_has_changed(pshot->dip, 0, 0) !=
891 cmn_err(CE_NOTE, "pshot%d:"
896 pshot->level = level_tmp;
897 mutex_exit(&pshot->lock);
902 mutex_exit(&pshot->lock);
906 if (pshot->callback_cache[i] != NULL) {
908 pshot->callback_cache[i]);
915 if (pshot->test_callback_cache[i] != NULL) {
917 pshot->test_callback_cache[i]);
922 rval = ndi_event_free_hdl(pshot->ndi_event_hdl);
926 cmn_err(CE_CONT, "pshot%d detached\n", instance);
929 mutex_destroy(&pshot->lock);
935 cmn_err(CE_CONT, "pshot%d: DDI_SUSPEND\n", instance);
940 mutex_enter(&pshot->lock);
941 if (pshot->state & FAIL_SUSPEND_FLAG) {
943 cmn_err(CE_CONT, "pshot%d:"
947 pshot->state &= ~FAIL_SUSPEND_FLAG;
952 mutex_exit(&pshot->lock);
957 mutex_enter(&pshot->lock);
958 if (pshot->state & PM_SUPPORTED) {
960 cmn_err(CE_CONT, "pshot%d: DDI_SUSPEND:"
964 level_tmp = pshot->level;
965 pshot->level = 0;
966 if (pm_power_has_changed(pshot->dip, 0, 0) !=
969 cmn_err(CE_NOTE, "pshot%d:"
974 pshot->level = level_tmp;
978 mutex_exit(&pshot->lock);
1035 * pshot_bus_introp: pshot convert an interrupt number to an
1050 pshot_t *pshot;
1062 pshot = ddi_get_soft_state(pshot_softstatep, instance);
1063 if (pshot == NULL) {
1071 cmn_err(CE_CONT, "?pshot-device: %s%d\n",
1146 * - skip if PM_SUPPORTED is not set (pshot@XXX,nopm
1147 * - pshot@XXX,nopm_strict)
1149 if (!(pshot->state & PM_SUPPORTED))
1151 mutex_enter(&pshot->lock);
1152 ++(pshot->busy);
1158 pshot->busy);
1160 mutex_exit(&pshot->lock);
1167 * - skip if PM_SUPPORTED is not set (pshot@XXX,nopm).
1172 if (!(pshot->state & PM_SUPPORTED) ||
1174 !(pshot->state & STRICT_PARENT)) ||
1177 mutex_enter(&pshot->lock);
1178 ASSERT(pshot->busy > 0);
1179 --pshot->busy;
1185 pshot->busy);
1187 mutex_exit(&pshot->lock);
1223 * - skip if PM_SUPPORTED is not set (pshot@XXX,nopm
1224 * - pshot@XXX,nopm_strict), or if the child is a
1227 if (!(pshot->state & PM_SUPPORTED) ||
1229 !(pshot->state & STRICT_PARENT)) ||
1232 mutex_enter(&pshot->lock);
1233 ++(pshot->busy);
1239 pshot->busy);
1241 mutex_exit(&pshot->lock);
1249 * - skip if PM_SUPPORTED is not set (pshot@XXX,nopm)
1251 if (!(pshot->state & PM_SUPPORTED))
1253 mutex_enter(&pshot->lock);
1254 ASSERT(pshot->busy > 0);
1255 --pshot->busy;
1261 pshot->busy);
1263 mutex_exit(&pshot->lock);
1275 if (!(pshot->state & NO_INVOL_FLAG))
1277 mutex_enter(&pshot->lock);
1278 ASSERT(pshot->busy > 0);
1279 --pshot->busy;
1285 childinstance, pshot->busy);
1287 pshot->state &= ~NO_INVOL_FLAG;
1288 mutex_exit(&pshot->lock);
1321 pshot_t *pshot;
1327 pshot = ddi_get_soft_state(pshot_softstatep, instance);
1328 if (pshot == NULL) {
1339 mutex_enter(&pshot->lock);
1340 pshot->state |= POWER_FLAG;
1344 if (pshot->busy != 0 && pshot->level > level) {
1347 name, instance, pshot->level, level, pshot->busy);
1352 name, instance, cmpt, pshot->level, level);
1354 pshot->level = level;
1357 mutex_exit(&pshot->lock);
1373 pshot_t *pshot;
1381 pshot = ddi_get_soft_state(pshot_softstatep, instance);
1382 if (pshot == NULL) {
1402 * - skip if PM_SUPPORTED is not set (pshot@XXX,nopm)
1405 bpc->bpc_olevel <= 0) && (pshot->state & PM_SUPPORTED)) {
1406 mutex_enter(&pshot->lock);
1407 ++(pshot->busy);
1417 pshot->busy);
1419 mutex_exit(&pshot->lock);
1427 * - skip for the no-pm nexus (pshot@XXX,nopm)
1430 pshot->level < MAXPWR && (pshot->state & PM_SUPPORTED)) {
1488 (pshot->state & PM_SUPPORTED)) {
1489 mutex_enter(&pshot->lock);
1490 ASSERT(pshot->busy > 0);
1491 --(pshot->busy);
1505 pshot->busy);
1507 mutex_exit(&pshot->lock);
1542 * - skip if PM_SUPPORTED is not set (pshot@XXX,nopm)
1546 "pshot%d: post_bus_power_failed:"
1554 (pshot->state & PM_SUPPORTED)) {
1555 mutex_enter(&pshot->lock);
1556 ASSERT(pshot->busy > 0);
1557 --(pshot->busy);
1567 pshot->busy);
1569 mutex_exit(&pshot->lock);
1585 * - skip if PM_SUPPORTED is not set (pshot@XXX,nopm)
1590 (pshot->state & PM_SUPPORTED)) {
1591 mutex_enter(&pshot->lock);
1592 ASSERT(pshot->busy > 0);
1593 --(pshot->busy);
1602 pshot->busy);
1604 mutex_exit(&pshot->lock);
1630 * - skip if PM_SUPPORTED is not set (pshot@XXX,nopm)
1634 pshot->state & PM_SUPPORTED) {
1635 mutex_enter(&pshot->lock);
1636 ASSERT(pshot->busy > 0);
1637 --(pshot->busy);
1646 bphc->bphc_nlevel, pshot->busy);
1648 mutex_exit(&pshot->lock);
1734 "pshot%d: %s forced INITCHILD failure\n",
1768 pshot_t *pshot;
1774 if ((pshot = ddi_get_soft_state(pshot_softstatep, instance)) == NULL)
1782 mutex_enter(&pshot->lock);
1783 if (((flags & FEXCL) && (pshot->state & IS_OPEN)) ||
1784 (!(flags & FEXCL) && (pshot->state & IS_OPEN_EXCL))) {
1785 mutex_exit(&pshot->lock);
1788 pshot->state |= IS_OPEN;
1790 pshot->state |= IS_OPEN_EXCL;
1793 cmn_err(CE_CONT, "pshot%d open\n", instance);
1795 mutex_exit(&pshot->lock);
1807 pshot_t *pshot;
1813 if ((pshot = ddi_get_soft_state(pshot_softstatep, instance)) == NULL)
1816 mutex_enter(&pshot->lock);
1817 pshot->state &= ~(IS_OPEN | IS_OPEN_EXCL);
1818 mutex_exit(&pshot->lock);
1820 cmn_err(CE_CONT, "pshot%d closed\n", instance);
1834 pshot_t *pshot;
1840 if ((pshot = ddi_get_soft_state(pshot_softstatep, instance)) == NULL)
1844 nodename = pshot->nodes[nodenum].name;
1848 "pshot%d ioctl: dev=%p, cmd=%x, arg=%p, mode=%x\n",
1852 return (pshot_devctl(pshot, nodenum, cmd, arg, mode, credp,
1856 return (pshot_testctl(pshot, nodenum, cmd, arg, mode, credp,
1860 pshot->nodes[nodenum].minor);
1870 pshot_devctl(pshot_t *pshot, minor_t nodenum, int cmd, intptr_t arg, int mode,
1883 self = pshot->dip;
1886 instance = pshot->instance;
1894 cmn_err(CE_CONT, "pshot%d devctl: %s",
1907 cmn_err(CE_CONT, "pshot%d ndi_devctl_ioctl:"
1924 cmn_err(CE_CONT, "pshot%d devctl:"
1926 rv = pshot_event(pshot, PSHOT_EVENT_TAG_DEV_RESET,
1933 cmn_err(CE_CONT, "pshot%d devctl:"
1941 rv = pshot_event(pshot, PSHOT_EVENT_TAG_BUS_QUIESCE,
1949 cmn_err(CE_CONT, "pshot%d devctl:"
1961 rv = pshot_event(pshot, PSHOT_EVENT_TAG_BUS_UNQUIESCE,
1972 rv = pshot_event(pshot, PSHOT_EVENT_TAG_BUS_RESET,
1984 * via pshot->busy_ioctl.
1987 cmn_err(CE_CONT, "pshot%d devctl:"
1990 mutex_enter(&pshot->lock);
1991 ++(pshot->busy);
1992 ++(pshot->busy_ioctl);
1994 cmn_err(CE_CONT, "pshot%d:"
1996 " %d busy_ioctl %d\n", instance, pshot->busy,
1997 pshot->busy_ioctl);
1999 mutex_exit(&pshot->lock);
2000 ret = pm_busy_component(pshot->dip, 0);
2010 cmn_err(CE_CONT, "pshot%d devctl:"
2013 mutex_enter(&pshot->lock);
2014 state = pshot->busy;
2017 cmn_err(CE_WARN, "pshot%d devctl:"
2023 cmn_err(CE_CONT, "pshot%d: DEVCTL_PM_BUSY_COMP_TEST:"
2025 state, pshot->busy_ioctl);
2027 mutex_exit(&pshot->lock);
2033 * NOP if pshot->busy_ioctl <= 0.
2036 cmn_err(CE_CONT, "pshot%d devctl:"
2039 mutex_enter(&pshot->lock);
2040 if (pshot->busy_ioctl > 0) {
2041 ASSERT(pshot->busy > 0);
2042 --(pshot->busy);
2043 --(pshot->busy_ioctl);
2045 cmn_err(CE_CONT, "pshot%d:"
2048 pshot->busy, pshot->busy_ioctl);
2050 mutex_exit(&pshot->lock);
2051 ret = pm_idle_component(pshot->dip, 0);
2055 mutex_exit(&pshot->lock);
2065 cmn_err(CE_CONT, "pshot%d devctl:"
2068 if (pm_raise_power(pshot->dip, 0, MAXPWR) != DDI_SUCCESS) {
2071 mutex_enter(&pshot->lock);
2073 cmn_err(CE_CONT, "pshot%d:"
2075 " to level %d\n", instance, pshot->level);
2077 mutex_exit(&pshot->lock);
2087 cmn_err(CE_CONT, "pshot%d devctl:"
2090 if (pm_lower_power(pshot->dip, 0, 0) != DDI_SUCCESS) {
2093 mutex_enter(&pshot->lock);
2095 cmn_err(CE_CONT, "pshot%d:"
2097 " to level %d\n", instance, pshot->level);
2099 mutex_exit(&pshot->lock);
2109 cmn_err(CE_CONT, "pshot%d devctl:"
2112 mutex_enter(&pshot->lock);
2113 pshot->level = 0;
2114 if (pm_power_has_changed(pshot->dip, 0, 0) != DDI_SUCCESS) {
2118 cmn_err(CE_CONT, "pshot%d:"
2120 " level %d\n", instance, pshot->level);
2123 mutex_exit(&pshot->lock);
2132 cmn_err(CE_CONT, "pshot%d devctl:"
2135 mutex_enter(&pshot->lock);
2136 pshot->level = MAXPWR;
2137 if (pm_power_has_changed(pshot->dip, 0, MAXPWR)
2142 cmn_err(CE_CONT, "pshot%d:"
2144 " level %d\n", instance, pshot->level);
2147 mutex_exit(&pshot->lock);
2156 cmn_err(CE_CONT, "pshot%d devctl:"
2159 mutex_enter(&pshot->lock);
2160 state = (pshot->state & POWER_FLAG) ? 1 : 0;
2163 cmn_err(CE_WARN, "pshot%d devctl:"
2169 cmn_err(CE_CONT, "pshot%d: DEVCTL_PM_POWER:"
2172 pshot->state &= ~POWER_FLAG;
2173 mutex_exit(&pshot->lock);
2181 cmn_err(CE_CONT, "pshot%d devctl:"
2184 mutex_enter(&pshot->lock);
2185 pshot->state |= FAIL_SUSPEND_FLAG;
2186 mutex_exit(&pshot->lock);
2188 cmn_err(CE_CONT, "pshot%d: DEVCTL_PM_FAIL_SUSPEND\n",
2199 mutex_enter(&pshot->lock);
2200 state = (pshot->state & STRICT_PARENT) ? 1 : 0;
2203 cmn_err(CE_WARN, "pshot%d devctl:"
2209 cmn_err(CE_CONT, "pshot%d devctl:"
2213 mutex_exit(&pshot->lock);
2225 cmn_err(CE_CONT, "pshot%d devctl:"
2228 mutex_enter(&pshot->lock);
2229 pshot->state |= NO_INVOL_FLAG;
2230 mutex_exit(&pshot->lock);
2251 pshot_testctl(pshot_t *pshot, minor_t nodenum, int cmd, intptr_t arg, int mode,
2264 self = pshot->dip;
2265 instance = pshot->instance;
2274 cmn_err(CE_CONT, "pshot%d devctl: %s",
2281 cmn_err(CE_CONT, "pshot%d testctl:"
2283 rv = pshot_event(pshot, PSHOT_EVENT_TAG_DEV_RESET,
2290 cmn_err(CE_CONT, "pshot%d testctl:"
2298 rv = pshot_event(pshot, PSHOT_EVENT_TAG_BUS_QUIESCE,
2306 cmn_err(CE_CONT, "pshot%d testctl:"
2318 rv = pshot_event(pshot, PSHOT_EVENT_TAG_BUS_UNQUIESCE,
2329 rv = pshot_event(pshot, PSHOT_EVENT_TAG_BUS_RESET,
2349 pshot_t *pshot = ddi_get_soft_state(pshot_softstatep, instance);
2352 cmn_err(CE_CONT, "pshot%d: "
2360 return (ndi_event_retrieve_cookie(pshot->ndi_event_hdl,
2370 pshot_t *pshot = ddi_get_soft_state(pshot_softstatep, instance);
2373 cmn_err(CE_CONT, "pshot%d: "
2382 return (ndi_event_add_callback(pshot->ndi_event_hdl, rdip,
2393 pshot_t *pshot = ddi_get_soft_state(pshot_softstatep, instance);
2398 cmn_err(CE_CONT, "pshot%d: "
2407 return (ndi_event_remove_callback(pshot->ndi_event_hdl, cb_id));
2415 pshot_t *pshot = ddi_get_soft_state(pshot_softstatep, instance);
2419 cmn_err(CE_CONT, "pshot%d: "
2428 cmn_err(CE_CONT, "pshot%d: "
2437 return (ndi_event_run_callbacks(pshot->ndi_event_hdl, rdip,
2446 pshot_event(pshot_t *pshot, int event_tag, dev_info_t *child,
2450 pshot->ndi_event_hdl, event_tag);
2454 cmn_err(CE_CONT, "pshot%d: "
2457 pshot->instance, event_tag,
2458 ndi_event_tag_to_name(pshot->ndi_event_hdl,
2465 cmn_err(CE_CONT, "pshot%d: "
2468 pshot->instance, event_tag,
2469 ndi_event_tag_to_name(pshot->ndi_event_hdl,
2477 return (ndi_event_run_callbacks(pshot->ndi_event_hdl,
2483 * the pshot driver event notification callback
2489 pshot_t *pshot = (pshot_t *)arg;
2496 cmn_err(CE_CONT, "pshot%d: "
2500 pshot->instance, (void *)dip, (void *)cookie,
2512 (void) ndi_event_run_callbacks(pshot->ndi_event_hdl,
2515 cmn_err(CE_CONT, "pshot%d: event=%s\n\t"
2516 "pshot_event_cb\n", pshot->instance,
2536 pshot_t *pshot;
2542 "pshot%d: bus_config %s flags=0x%x\n",
2547 pshot = ddi_get_soft_state(pshot_softstatep, instance);
2548 if (pshot == NULL) {
2579 "pshot%d: malformed name %s (no bus address)",
2596 if (strcmp(cname, "pshot") == 0) {
2624 cmn_err(CE_CONT, "pshot%d: bus_config %s\n",
2642 "pshot%d: bus_unconfig %s flags=0x%x\n",
2658 cmn_err(CE_CONT, "pshot%d: bus_unconfig:"
2667 "pshot%d: BUS_UNCONFIG_DRIVER: %s\n",
2675 cmn_err(CE_CONT, "pshot%d: bus_unconfig:"
2682 cmn_err(CE_CONT, "pshot%d: bus_unconfig: DEFAULT\n",
2694 cmn_err(CE_CONT, "pshot%d: bus_unconfig %s\n",
2760 cmn_err(CE_CONT, "pshot%d:"
2769 cmn_err(CE_WARN, "pshot%d:"
2788 cmn_err(CE_CONT, "pshot%d:"
2797 cmn_err(CE_WARN, "pshot%d:"
2832 cmn_err(CE_CONT, "pshot%d:"
2842 cmn_err(CE_WARN, "pshot%d:"
2861 cmn_err(CE_CONT, "pshot%d:"
2870 cmn_err(CE_WARN, "pshot%d:"
2897 "pshot%d: bus_config one %s@%s found\n",
2915 cmn_err(CE_WARN, "pshot%d: _prop_update %s@%s failed",
2923 cmn_err(CE_WARN, "pshot%d: bind_driver %s failed",
2996 cmn_err(CE_CONT, "pshot%d: %s %s %s\n",
3018 cmn_err(CE_WARN, "pshot%d: bind_driver %s failed",
3034 * Handle some special cases for testing bus_config via pshot
3058 "pshot%d: %s forced failure\n",
3078 "pshot%d: %s delay %d second\n",
3084 "pshot%d: %s delay 1 second\n",
3094 "pshot%d: %s wait %d second\n",
3100 "pshot%d: %s wait 1 second\n",
3188 * property structure (i.e. pshot.conf) for pshot:
3386 rv = ndi_devi_alloc(devi, "pshot", DEVI_SID_NODEID, &l1child);
3540 pshot_t *pshot = (pshot_t *)arg;
3545 (void) ndi_event_alloc_hdl(pshot->dip, NULL, &hdl, NDI_SLEEP);
3551 cmn_err(CE_CONT, "pshot: binding set of 8 events\n");
3554 cmn_err(CE_CONT, "pshot: ndi_event_bind_set rval = %d\n", rval);
3556 cmn_err(CE_CONT, "pshot: binding the same set of 8 events\n");
3559 cmn_err(CE_CONT, "pshot: ndi_event_bind_set rval = %d\n", rval);
3561 cmn_err(CE_CONT, "pshot: unbinding all events\n");
3564 cmn_err(CE_CONT, "pshot: ndi_event_unbind_set rval = %d\n", rval);
3567 cmn_err(CE_CONT, "pshot: binding one highlevel event\n");
3572 cmn_err(CE_CONT, "pshot: ndi_event_bind_set rval = %d\n", rval);
3574 cmn_err(CE_CONT, "pshot: binding the same set of 8 events\n");
3579 cmn_err(CE_CONT, "pshot: ndi_event_bind_set rval = %d\n", rval);
3581 cmn_err(CE_CONT, "pshot: unbinding one highlevel event\n");
3586 cmn_err(CE_CONT, "pshot: ndi_event_bind_set rval = %d\n", rval);
3588 cmn_err(CE_CONT, "pshot: binding one highlevel event\n");
3593 cmn_err(CE_CONT, "pshot: ndi_event_bind_set rval = %d\n", rval);
3595 cmn_err(CE_CONT, "pshot: unbinding one highlevel event\n");
3600 cmn_err(CE_CONT, "pshot: ndi_event_bind_set rval = %d\n", rval);
3602 cmn_err(CE_CONT, "pshot: binding the same set of 8 events\n");
3607 cmn_err(CE_CONT, "pshot: ndi_event_bind_set rval = %d\n", rval);
3609 cmn_err(CE_CONT, "pshot: unbinding first 2 events\n");
3614 cmn_err(CE_CONT, "pshot: ndi_event_unbind_set rval = %d\n", rval);
3616 cmn_err(CE_CONT, "pshot: unbinding first 2 events again\n");
3621 cmn_err(CE_CONT, "pshot: ndi_event_unbind_set rval = %d\n", rval);
3623 cmn_err(CE_CONT, "pshot: unbinding middle 2 events\n");
3628 cmn_err(CE_CONT, "pshot: ndi_event_unbind_set rval = %d\n", rval);
3630 cmn_err(CE_CONT, "pshot: binding those 2 events back\n");
3635 cmn_err(CE_CONT, "pshot: ndi_event_bind_set rval = %d\n", rval);
3637 cmn_err(CE_CONT, "pshot: unbinding 2 events\n");
3642 cmn_err(CE_CONT, "pshot: ndi_event_unbind_set rval = %d\n", rval);
3644 cmn_err(CE_CONT, "pshot: unbinding all events\n");
3649 cmn_err(CE_CONT, "pshot: ndi_event_unbind_set rval = %d\n", rval);
3651 cmn_err(CE_CONT, "pshot: unbinding 1 event\n");
3656 cmn_err(CE_CONT, "pshot: ndi_event_unbind_set rval = %d\n", rval);
3658 cmn_err(CE_CONT, "pshot: unbinding 1 event\n");
3663 cmn_err(CE_CONT, "pshot: ndi_event_unbind_set rval = %d\n", rval);
3665 cmn_err(CE_CONT, "pshot: unbinding 1 event\n");
3670 cmn_err(CE_CONT, "pshot: ndi_event_unbind_set rval = %d\n", rval);
3672 cmn_err(CE_CONT, "pshot: unbinding 1 event\n");
3677 cmn_err(CE_CONT, "pshot: ndi_event_unbind_set rval = %d\n", rval);
3682 cmn_err(CE_CONT, "pshot: binding set of 8 events\n");
3685 cmn_err(CE_CONT, "pshot: ndi_event_bind_set rval = %d\n", rval);
3687 cmn_err(CE_CONT, "pshot: adding 8 callbacks\n");
3690 rval = ndi_event_add_callback(hdl, pshot->dip,
3695 NDI_SLEEP, &pshot->test_callback_cache[i]);
3699 cmn_err(CE_CONT, "pshot: event callbacks\n");
3704 rval = ndi_event_run_callbacks(hdl, pshot->dip, cookie,
3707 cmn_err(CE_CONT, "pshot: callback, tag=%d rval=%d\n",
3712 cmn_err(CE_CONT, "pshot: redo event callbacks\n");
3718 pshot->dip, cookie, (void *)hdl);
3720 cmn_err(CE_CONT, "pshot: callback, tag=%d rval=%d\n",
3725 cmn_err(CE_CONT, "pshot: removing 8 callbacks\n");
3730 pshot->test_callback_cache[i]);
3732 pshot->test_callback_cache[i] = 0;
3735 cmn_err(CE_CONT, "pshot: freeing handle with bound set\n");
3747 pshot_t *pshot = (pshot_t *)arg;
3751 cmn_err(CE_CONT, "pshot%d: pshot_event_post_one event\n",
3752 pshot->instance);
3754 if (ddi_get_eventcookie(pshot->dip, PSHOT_EVENT_NAME_BUS_TEST_POST,
3760 rval = ndi_post_event(pshot->dip, pshot->dip, cookie, NULL);
3762 cmn_err(CE_CONT, "pshot%d: pshot_event_post_one rval=%d\n",
3763 pshot->instance, rval);
3765 (void) timeout(pshot_event_test_post_one, (void *)pshot,
3766 pshot->instance * drv_usectohz(60000000));