61:
62: UnlockDM();
63:
350: /* Wait for synchronization for concurrent open/close */
351: UnlockDM();
352: SyncWaitDM();
359: /* Device driver call */
360: UnlockDM();
361: ercd = call_openfn(devcb, DEVID(devcb, unitno), omode);
371: leaveSyncWait(&devcb->syncq, &waiq);
372: UnlockDM();
373:
379: err_ret2:
380: UnlockDM();
381: err_ret1:
402: LockDAbort();
403: UnlockDM();
404:
442: /* Device driver waitfn call */
443: UnlockDM();
444: call_waitfn(devcb, &reqcb->req, 1, TMO_FEVR);
449: }
450: UnlockDM();
451: }
476: /* Wait for synchronization for concurrent open/close */
477: UnlockDM();
478: SyncWaitDM();
489: /* Device driver call */
490: UnlockDM();
491: ercd = call_closefn(devcb, DEVID(devcb, unitno), option);
500:
501: UnlockDM();
502:
519: if ( ercd < E_OK ) {
520: UnlockDM();
521: goto err_ret;
525:
526: UnlockDM();
527:
638: /* Device driver call */
639: UnlockDM();
640: ercd = call_execfn(devcb, &reqcb->req, tmout);
658:
659: UnlockDM();
660:
669: err_ret1:
670: UnlockDM();
671: DEBUG_PRINT(("request ercd = %d\n", ercd));
759: /* Device driver call */
760: UnlockDM();
761: reqno = call_waitfn(devcb, devreq, nreq, tmout);
812:
813: UnlockDM();
814:
820: }
821: UnlockDM();
822: DEBUG_PRINT(("waitcomplete ercd = %d\n", ercd));
1034: /* Resume accepting requests */
1035: UnlockDM();
1036:
1105:
1106: UnlockDM();
1107:
1118: err_ret2:
1119: UnlockDM();
1120: err_ret1:
1176: }
1177: UnlockDM();
1178: if ( nreq > 0 ) {
1203:
1204: UnlockDM();
1205:
1245: /* Device close processing */
1246: UnlockDM();
1247: close_device(opncb, 0);
1249: }
1250: UnlockDM();
1251: