Lines Matching refs:srn

83 } srn = { NULL, -1};  variable
178 if (srn.srn_instance != -1) /* Only allow one instance */ in srn_attach()
180 srn.srn_instance = ddi_get_instance(dip); in srn_attach()
182 (srn.srn_instance << 8) + 0, DDI_PSEUDO, 0) in srn_attach()
186 srn.srn_dip = dip; /* srn_init and getinfo depend on it */ in srn_attach()
191 srn.srn_instance = ddi_get_instance(dip); in srn_attach()
227 srn.srn_instance = -1; in srn_detach()
284 if (srn.srn_instance == -1) in srn_getinfo()
286 *result = srn.srn_dip; in srn_getinfo()
312 if (!srn.srn_clones[clone]) in srn_open()
319 srn.srn_cred[clone] = cr; in srn_open()
322 srn.srn_type[clone] = SRN_TYPE_APM; in srn_open()
325 *devp = makedevice(getmajor(*devp), (srn.srn_instance << 8) + in srn_open()
327 srn.srn_clones[clone] = 1; in srn_open()
328 srn.srn_cred[clone] = cr; in srn_open()
348 crfree(srn.srn_cred[clone]); in srn_close()
349 srn.srn_cred[clone] = 0; in srn_close()
351 srn.srn_fault[clone] = 0; in srn_close()
352 if (srn.srn_pending[clone].ae_type || srn.srn_delivered[clone]) { in srn_close()
353 srn.srn_pending[clone].ae_type = 0; in srn_close()
354 srn.srn_delivered[clone] = 0; in srn_close()
357 switch (srn.srn_type[clone]) { in srn_close()
370 srn.srn_clones[clone] = 0; in srn_close()
393 if (!srn_perms(SU | SG, srn.srn_cred[clone])) { in srn_ioctl()
400 if (!srn.srn_clones[clone]) { in srn_ioctl()
405 if (srn.srn_pending[clone].ae_type) { in srn_ioctl()
410 if (srn.srn_type[clone] == SRN_TYPE_AUTOSX) { in srn_ioctl()
415 ASSERT(srn.srn_type[clone] == SRN_TYPE_APM); in srn_ioctl()
416 srn.srn_type[clone] = SRN_TYPE_AUTOSX; in srn_ioctl()
417 srn.srn_fault[clone] = 0; in srn_ioctl()
434 if (srn.srn_fault[clone]) { in srn_ioctl()
437 srn.srn_fault[clone] = 0; in srn_ioctl()
446 ASSERT(srn.srn_pending[clone].ae_type); in srn_ioctl()
447 if (ddi_copyout(&srn.srn_pending[clone], (void *)arg, in srn_ioctl()
454 if (srn.srn_type[clone] == SRN_TYPE_APM) in srn_ioctl()
455 srn.srn_delivered[clone] = in srn_ioctl()
456 srn.srn_pending[clone].ae_type; in srn_ioctl()
458 clone, srn.srn_pending[clone].ae_type)) in srn_ioctl()
466 if (srn.srn_fault[clone]) { in srn_ioctl()
469 srn.srn_fault[clone] = 0; in srn_ioctl()
472 if (srn.srn_delivered[clone] != SRN_SUSPEND_REQ) { in srn_ioctl()
477 srn.srn_delivered[clone] = 0; in srn_ioctl()
478 srn.srn_pending[clone].ae_type = 0; in srn_ioctl()
488 if (srn.srn_fault[clone]) { in srn_ioctl()
491 srn.srn_fault[clone] = 0; in srn_ioctl()
494 if (srn.srn_delivered[clone] != SRN_NORMAL_RESUME) { in srn_ioctl()
499 srn.srn_delivered[clone] = 0; in srn_ioctl()
500 srn.srn_pending[clone].ae_type = 0; in srn_ioctl()
548 if (srn.srn_type[clone] == type) { in srn_notify()
550 if (type == SRN_TYPE_APM && !srn.srn_fault[clone]) { in srn_notify()
551 ASSERT(srn.srn_pending[clone].ae_type == 0); in srn_notify()
553 ASSERT(srn.srn_delivered[clone] == 0); in srn_notify()
556 srn.srn_pending[clone].ae_type = event; in srn_notify()
578 if (srn.srn_clones[clone] == 0 || in srn_notify()
579 srn.srn_type[clone] != SRN_TYPE_APM) in srn_notify()
581 if (srn.srn_pending[clone].ae_type && !srn.srn_fault[clone]) { in srn_notify()
595 srn.srn_fault[clone] = 1; in srn_notify()