Lines Matching refs:sysmcache
144 static devicecache_t sysmcache[MAXDEVS]; variable
209 rw_init(&sysmcache[i].dca_lock, NULL, RW_DRIVER, NULL); in sysm_attach()
232 rw_destroy(&sysmcache[i].dca_lock); in sysm_detach()
397 rw_enter(&sysmcache[i].dca_lock, RW_WRITER); in sysmopen()
398 if ((sysmcache[i].dca_flags & SYSM_ENABLED) && in sysmopen()
399 sysmcache[i].dca_vp == NULL) { in sysmopen()
413 if (vn_open(sysmcache[i].dca_name, UIO_SYSSPACE, in sysmopen()
415 sysmcache[i].dca_vp = vp; in sysmopen()
417 rw_exit(&sysmcache[i].dca_lock); in sysmopen()
458 rw_enter(&sysmcache[i].dca_lock, RW_WRITER); in sysmclose()
459 if (sysmcache[i].dca_vp != NULL) { in sysmclose()
460 (void) VOP_CLOSE(sysmcache[i].dca_vp, flag, in sysmclose()
462 VN_RELE(sysmcache[i].dca_vp); in sysmclose()
463 sysmcache[i].dca_vp = NULL; in sysmclose()
465 rw_exit(&sysmcache[i].dca_lock); in sysmclose()
493 rw_enter(&sysmcache[i].dca_lock, RW_READER); in sysmwrite()
494 if (sysmcache[i].dca_vp != NULL && in sysmwrite()
495 (sysmcache[i].dca_flags & SYSM_ENABLED)) { in sysmwrite()
499 (void) VOP_WRITE(sysmcache[i].dca_vp, &tuio, 0, cred, in sysmwrite()
502 rw_exit(&sysmcache[i].dca_lock); in sysmwrite()
524 if (sysmcache[i].dca_flags & SYSM_ENABLED) in sysmioctl()
526 size += strlen(sysmcache[i].dca_name) + 1; in sysmioctl()
533 size = sizeof (sysmcache[0].dca_name); in sysmioctl()
614 rw_enter(&sysmcache[i].dca_lock, RW_READER); in sysmioctl()
615 if (sysmcache[i].dca_flags & SYSM_ENABLED) { in sysmioctl()
618 (void) strcat(infop, sysmcache[i].dca_name); in sysmioctl()
620 rw_exit(&sysmcache[i].dca_lock); in sysmioctl()
634 rw_enter(&sysmcache[i].dca_lock, RW_WRITER); in sysmioctl()
635 if (sysmcache[i].dca_devt == newdevt && in sysmioctl()
636 (sysmcache[i].dca_flags & SYSM_ENABLED)) { in sysmioctl()
637 (void) strcpy(sysmcache[i].dca_name, infop); in sysmioctl()
639 rw_exit(&sysmcache[i].dca_lock); in sysmioctl()
641 } else if (sysmcache[i].dca_devt == newdevt && in sysmioctl()
642 sysmcache[i].dca_flags == SYSM_DISABLED) { in sysmioctl()
643 sysmcache[i].dca_flags |= SYSM_ENABLED; in sysmioctl()
644 (void) strcpy(sysmcache[i].dca_name, infop); in sysmioctl()
645 rw_exit(&sysmcache[i].dca_lock); in sysmioctl()
648 } else if (sysmcache[i].dca_devt == 0) { in sysmioctl()
649 ASSERT(sysmcache[i].dca_vp == NULL && in sysmioctl()
650 sysmcache[i].dca_flags == SYSM_DISABLED); in sysmioctl()
651 (void) strcpy(sysmcache[i].dca_name, infop); in sysmioctl()
652 sysmcache[i].dca_flags = SYSM_ENABLED; in sysmioctl()
653 sysmcache[i].dca_devt = newdevt; in sysmioctl()
654 rw_exit(&sysmcache[i].dca_lock); in sysmioctl()
658 rw_exit(&sysmcache[i].dca_lock); in sysmioctl()
666 rw_enter(&sysmcache[i].dca_lock, RW_WRITER); in sysmioctl()
667 if (sysmcache[i].dca_devt == newdevt) { in sysmioctl()
668 sysmcache[i].dca_flags = SYSM_DISABLED; in sysmioctl()
669 sysmcache[i].dca_name[0] = '\0'; in sysmioctl()
670 rw_exit(&sysmcache[i].dca_lock); in sysmioctl()
674 rw_exit(&sysmcache[i].dca_lock); in sysmioctl()