|
|
1.1 ! root 1: /*++ ! 2: ! 3: Copyright (c) 1993 - Colorado Memory Systems, Inc. ! 4: All Rights Reserved ! 5: ! 6: Module Name: ! 7: ! 8: waitcc.c ! 9: ! 10: Abstract: ! 11: ! 12: Waits for the drive to become ready (command complete) ! 13: ! 14: ! 15: Revision History: ! 16: ! 17: ! 18: ! 19: ! 20: --*/ ! 21: ! 22: // ! 23: // include files ! 24: // ! 25: ! 26: #include <ntddk.h> // various NT definitions ! 27: #include <ntdddisk.h> // disk device driver I/O control codes ! 28: #include <ntiologc.h> ! 29: #include "common.h" ! 30: #include "drvtask.h" // this driver's data declarations ! 31: #include "mt1defs.h" // this driver's data declarations ! 32: #include "mt1strc.h" // this driver's data declarations ! 33: #include "q117data.h" // this driver's data declarations ! 34: ! 35: ! 36: STATUS ! 37: Q117iWaitCommandComplete( ! 38: IN PTAPE_EXTENSION TapeExtension, ! 39: IN QIC_TIME WaitTime ! 40: ) ! 41: ! 42: /*++ ! 43: ! 44: Routine Description: ! 45: ! 46: Wait a specified amount of time for the tape drive to become ready after ! 47: executing a command. ! 48: ! 49: Read the Drive Status byte from the tape drive. ! 50: ! 51: If the drive is not ready then wait 1/2 second and try again until ! 52: the specified time has elapsed. ! 53: ! 54: Arguments: ! 55: ! 56: TapeExtension - ! 57: ! 58: WaitTime - ! 59: ! 60: Return Value: ! 61: ! 62: ! 63: --*/ ! 64: { ! 65: STATUS retval; ! 66: ! 67: do { ! 68: ! 69: Q117iSleep(TapeExtension, mt_wt2ticks, FALSE); ! 70: ! 71: if ((retval = Q117iGetDriveError(TapeExtension)) != NotRdy) { ! 72: ! 73: return(retval); ! 74: ! 75: } ! 76: ! 77: WaitTime -= mt_wt200ms; ! 78: ! 79: } while (WaitTime > 0l); ! 80: ! 81: retval = TimeOut; ! 82: ! 83: if (TapeExtension->DriveParms.Status.NewCart) { ! 84: ! 85: retval = NewCart; ! 86: ! 87: } ! 88: ! 89: return(retval); ! 90: } ! 91:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.