/* ARGSUSED */ int hubspc_open(devfs_handle_t *devp, mode_t oflag, int otyp, cred_t *crp) { int errcode = 0; switch ((hubspc_subdevice_t)(ulong)device_info_get(*devp)) { case HUBSPC_REFCOUNTERS: errcode = mem_refcnt_open(devp, oflag, otyp, crp); break; case HUBSPC_PROM: /* Check if the user has proper access rights to * read/write the prom space. */ if (!cap_able(CAP_DEVICE_MGT)) { errcode = EPERM; } break; default: errcode = ENODEV; } #ifdef HUBSPC_DEBUG printf("hubspc_open: Completed open for type %d\n", (hubspc_subdevice_t)(ulong)device_info_get(*devp)); #endif /* HUBSPC_DEBUG */ return (errcode); }
/* ARGSUSED */ int hubspc_open(devfs_handle_t *devp, mode_t oflag, int otyp, cred_t *crp) { int errcode = 0; switch ((hubspc_subdevice_t)(ulong)device_info_get(*devp)) { case HUBSPC_REFCOUNTERS: errcode = mem_refcnt_open(devp, oflag, otyp, crp); break; case HUBSPC_PROM: break; default: errcode = ENODEV; } #ifdef HUBSPC_DEBUG printf("hubspc_open: Completed open for type %d\n", (hubspc_subdevice_t)(ulong)device_info_get(*devp)); #endif /* HUBSPC_DEBUG */ return (errcode); }