Lines Matching refs:cmp

798 	ccid_minor_t *cmp;  in ccid_slot_excl_maybe_signal()  local
808 cmp = list_head(&slot->cs_excl_waiters); in ccid_slot_excl_maybe_signal()
809 if (cmp == NULL) in ccid_slot_excl_maybe_signal()
811 cv_signal(&cmp->cm_excl_cv); in ccid_slot_excl_maybe_signal()
817 ccid_minor_t *cmp; in ccid_slot_excl_rele() local
823 cmp = slot->cs_excl_minor; in ccid_slot_excl_rele()
843 while ((cmp->cm_flags & CCID_MINOR_F_READ_WAITING) != 0 || in ccid_slot_excl_rele()
845 cv_wait(&cmp->cm_iowait_cv, &ccid->ccid_mutex); in ccid_slot_excl_rele()
857 cmp->cm_flags &= ~CCID_MINOR_F_HAS_EXCL; in ccid_slot_excl_rele()
872 pollwakeup(&cmp->cm_pollhead, POLLERR); in ccid_slot_excl_rele()
879 if ((cmp->cm_flags & CCID_MINOR_F_TXN_RESET) != 0) { in ccid_slot_excl_rele()
882 cmp->cm_flags &= ~CCID_MINOR_F_TXN_RESET; in ccid_slot_excl_rele()
889 ccid_slot_excl_req(ccid_slot_t *slot, ccid_minor_t *cmp, boolean_t nosleep) in ccid_slot_excl_req() argument
893 if (slot->cs_excl_minor == cmp) { in ccid_slot_excl_req()
894 VERIFY((cmp->cm_flags & CCID_MINOR_F_HAS_EXCL) != 0); in ccid_slot_excl_req()
898 if ((cmp->cm_flags & CCID_MINOR_F_WAITING) != 0) { in ccid_slot_excl_req()
918 cmp->cm_flags |= CCID_MINOR_F_WAITING; in ccid_slot_excl_req()
919 list_insert_tail(&slot->cs_excl_waiters, cmp); in ccid_slot_excl_req()
922 if (cv_wait_sig(&cmp->cm_excl_cv, &slot->cs_ccid->ccid_mutex) == in ccid_slot_excl_req()
928 list_remove(&slot->cs_excl_waiters, cmp); in ccid_slot_excl_req()
929 cmp->cm_flags &= ~CCID_MINOR_F_WAITING; in ccid_slot_excl_req()
939 list_remove(&slot->cs_excl_waiters, cmp); in ccid_slot_excl_req()
940 cmp->cm_flags &= ~CCID_MINOR_F_WAITING; in ccid_slot_excl_req()
946 list_remove(&slot->cs_excl_waiters, cmp); in ccid_slot_excl_req()
948 cmp->cm_flags &= ~CCID_MINOR_F_WAITING; in ccid_slot_excl_req()
949 cmp->cm_flags |= CCID_MINOR_F_HAS_EXCL; in ccid_slot_excl_req()
950 slot->cs_excl_minor = cmp; in ccid_slot_excl_req()
967 ccid_minor_t *cmp = slot->cs_excl_minor; in ccid_slot_pollin_signal() local
969 if (cmp == NULL) in ccid_slot_pollin_signal()
977 pollwakeup(&cmp->cm_pollhead, POLLIN | POLLRDNORM); in ccid_slot_pollin_signal()
996 ccid_minor_t *cmp = slot->cs_excl_minor; in ccid_slot_pollout_signal() local
998 if (cmp == NULL) in ccid_slot_pollout_signal()
1009 pollwakeup(&cmp->cm_pollhead, POLLOUT); in ccid_slot_pollout_signal()
3082 ccid_minor_t *cmp; in ccid_disconnect_cb() local
3085 for (cmp = list_head(&slot->cs_excl_waiters); cmp != NULL; in ccid_disconnect_cb()
3086 cmp = list_next(&slot->cs_excl_waiters, cmp)) { in ccid_disconnect_cb()
3087 cv_signal(&cmp->cm_excl_cv); in ccid_disconnect_cb()
3415 ccid_minor_free(ccid_minor_t *cmp) in ccid_minor_free() argument
3417 VERIFY3U(cmp->cm_idx.cmi_minor, ==, CCID_MINOR_INVALID); in ccid_minor_free()
3418 crfree(cmp->cm_opener); in ccid_minor_free()
3419 cv_destroy(&cmp->cm_iowait_cv); in ccid_minor_free()
3420 cv_destroy(&cmp->cm_read_cv); in ccid_minor_free()
3421 cv_destroy(&cmp->cm_excl_cv); in ccid_minor_free()
3422 kmem_free(cmp, sizeof (ccid_minor_t)); in ccid_minor_free()
3430 ccid_minor_t *cmp; in ccid_open() local
3473 cmp = kmem_zalloc(sizeof (ccid_minor_t), KM_SLEEP); in ccid_open()
3475 cmp->cm_idx.cmi_minor = CCID_MINOR_INVALID; in ccid_open()
3476 cmp->cm_idx.cmi_isslot = B_FALSE; in ccid_open()
3477 cmp->cm_idx.cmi_data.cmi_user = cmp; in ccid_open()
3478 if (!ccid_minor_idx_alloc(&cmp->cm_idx, B_FALSE)) { in ccid_open()
3479 kmem_free(cmp, sizeof (ccid_minor_t)); in ccid_open()
3482 cv_init(&cmp->cm_excl_cv, NULL, CV_DRIVER, NULL); in ccid_open()
3483 cv_init(&cmp->cm_read_cv, NULL, CV_DRIVER, NULL); in ccid_open()
3484 cv_init(&cmp->cm_iowait_cv, NULL, CV_DRIVER, NULL); in ccid_open()
3485 cmp->cm_opener = crdup(credp); in ccid_open()
3486 cmp->cm_slot = slot; in ccid_open()
3487 *devp = makedevice(getmajor(*devp), cmp->cm_idx.cmi_minor); in ccid_open()
3490 cmp->cm_flags |= CCID_MINOR_F_WRITABLE; in ccid_open()
3494 list_insert_tail(&slot->cs_minors, cmp); in ccid_open()
3533 ccid_minor_t *cmp; in ccid_user_io_done() local
3539 cmp = slot->cs_excl_minor; in ccid_user_io_done()
3540 if (cmp != NULL) { in ccid_user_io_done()
3542 cv_signal(&cmp->cm_read_cv); in ccid_user_io_done()
3685 ccid_minor_t *cmp; in ccid_read() local
3698 cmp = idx->cmi_data.cmi_user; in ccid_read()
3699 slot = cmp->cm_slot; in ccid_read()
3711 if ((cmp->cm_flags & CCID_MINOR_F_HAS_EXCL) == 0) { in ccid_read()
3739 if ((cmp->cm_flags & CCID_MINOR_F_READ_WAITING) != 0) { in ccid_read()
3766 cmp->cm_flags |= CCID_MINOR_F_READ_WAITING; in ccid_read()
3767 ret = cv_wait_sig(&cmp->cm_read_cv, &ccid->ccid_mutex); in ccid_read()
3768 cmp->cm_flags &= ~CCID_MINOR_F_READ_WAITING; in ccid_read()
3769 cv_signal(&cmp->cm_iowait_cv); in ccid_read()
3826 ccid_minor_t *cmp; in ccid_write() local
3845 cmp = idx->cmi_data.cmi_user; in ccid_write()
3846 slot = cmp->cm_slot; in ccid_write()
3863 if ((cmp->cm_flags & (CCID_MINOR_F_WRITABLE | CCID_MINOR_F_HAS_EXCL)) != in ccid_write()
4003 ccid_ioctl_txn_begin(ccid_slot_t *slot, ccid_minor_t *cmp, intptr_t arg, in ccid_ioctl_txn_begin() argument
4026 if ((cmp->cm_flags & CCID_MINOR_F_WRITABLE) == 0) { in ccid_ioctl_txn_begin()
4031 ret = ccid_slot_excl_req(slot, cmp, nowait); in ccid_ioctl_txn_begin()
4038 ccid_ioctl_txn_end(ccid_slot_t *slot, ccid_minor_t *cmp, intptr_t arg, int mode) in ccid_ioctl_txn_end() argument
4056 if (slot->cs_excl_minor != cmp) { in ccid_ioctl_txn_end()
4060 VERIFY3S(cmp->cm_flags & CCID_MINOR_F_HAS_EXCL, !=, 0); in ccid_ioctl_txn_end()
4067 cmp->cm_flags |= CCID_MINOR_F_TXN_RESET; in ccid_ioctl_txn_end()
4084 ccid_ioctl_fionread(ccid_slot_t *slot, ccid_minor_t *cmp, intptr_t arg, in ccid_ioctl_fionread() argument
4095 if ((cmp->cm_flags & CCID_MINOR_F_HAS_EXCL) == 0) { in ccid_ioctl_fionread()
4100 if ((cmp->cm_flags & CCID_MINOR_F_WRITABLE) == 0) { in ccid_ioctl_fionread()
4135 ccid_ioctl_icc_modify(ccid_slot_t *slot, ccid_minor_t *cmp, intptr_t arg, in ccid_ioctl_icc_modify() argument
4166 if ((cmp->cm_flags & CCID_MINOR_F_WRITABLE) == 0) { in ccid_ioctl_icc_modify()
4196 ccid_minor_t *cmp; in ccid_ioctl() local
4203 cmp = idx->cmi_data.cmi_user; in ccid_ioctl()
4204 slot = cmp->cm_slot; in ccid_ioctl()
4208 return (ccid_ioctl_txn_begin(slot, cmp, arg, mode)); in ccid_ioctl()
4210 return (ccid_ioctl_txn_end(slot, cmp, arg, mode)); in ccid_ioctl()
4214 return (ccid_ioctl_fionread(slot, cmp, arg, mode)); in ccid_ioctl()
4216 return (ccid_ioctl_icc_modify(slot, cmp, arg, mode)); in ccid_ioctl()
4230 ccid_minor_t *cmp; in ccid_chpoll() local
4239 cmp = idx->cmi_data.cmi_user; in ccid_chpoll()
4240 slot = cmp->cm_slot; in ccid_chpoll()
4249 if (!(cmp->cm_flags & CCID_MINOR_F_HAS_EXCL) != 0) { in ccid_chpoll()
4272 *phpp = &cmp->cm_pollhead; in ccid_chpoll()
4284 ccid_minor_t *cmp; in ccid_close() local
4295 cmp = idx->cmi_data.cmi_user; in ccid_close()
4296 slot = cmp->cm_slot; in ccid_close()
4307 if ((cmp->cm_flags & CCID_MINOR_F_HAS_EXCL) != 0) { in ccid_close()
4308 cmp->cm_flags |= CCID_MINOR_F_TXN_RESET; in ccid_close()
4312 list_remove(&slot->cs_minors, cmp); in ccid_close()
4315 pollhead_clean(&cmp->cm_pollhead); in ccid_close()
4316 ccid_minor_free(cmp); in ccid_close()