Annotation of ntddk/src/scsi/qic117/q117data.h, revision 1.1.1.1

1.1       root        1: /*++
                      2: 
                      3: Copyright (c) 1993 - Colorado Memory Systems, Inc.
                      4: All Rights Reserved
                      5: 
                      6: Module Name:
                      7: 
                      8:     q117data.h
                      9: 
                     10: Abstract:
                     11: 
                     12: 
                     13: Revision History:
                     14: 
                     15: 
                     16: 
                     17: 
                     18: --*/
                     19: 
                     20: 
                     21: 
                     22: //
                     23: // Define the maximum number of controllers and floppies per controller
                     24: // that this driver will support.
                     25: //
                     26: // The number of floppies per controller is fixed at 4, since the
                     27: // controllers don't have enough bits to select more than that (and
                     28: // actually, many controllers will only support 2).  The number of
                     29: // controllers per machine is arbitrary; 3 should be more than enough.
                     30: //
                     31: 
                     32: #define MAXIMUM_CONTROLLERS_PER_MACHINE    3
                     33: 
                     34: //
                     35: // Macros to access the controller.  Note that the *_PORT_UCHAR macros
                     36: // work on all machines, whether the I/O ports are separate or in
                     37: // memory space.
                     38: //
                     39: 
                     40: #define READ_CONTROLLER( Address )                         \
                     41:     READ_PORT_UCHAR( ( PUCHAR )Address )
                     42: 
                     43: #define WRITE_CONTROLLER( Address, Value )                 \
                     44:     WRITE_PORT_UCHAR( ( PUCHAR )Address, ( UCHAR )Value )
                     45: 
                     46: 
                     47: //
                     48: // Floppy register structure.  The base address of the controller is
                     49: // passed in by configuration management.  Note that this is the 82077
                     50: // structure, which is a superset of the PD765 structure.  Not all of
                     51: // the registers are used.
                     52: //
                     53: 
                     54: typedef struct _TAPE_ADDRESS {
                     55:     UCHAR StatusA;
                     56:     UCHAR StatusB;
                     57:     UCHAR dor;
                     58:     UCHAR tdr;
                     59:     union {
                     60:         UCHAR msr;
                     61:         UCHAR dsr;
                     62:     } MSDSR;
                     63:     UCHAR dr;
                     64:     UCHAR Reserved2;
                     65:     UCHAR dcr;
                     66: } TAPE_ADDRESS, *PTAPE_ADDRESS;
                     67: 
                     68: 
                     69: //
                     70: // Define the maximum number of tape drives per controller
                     71: // that this driver will support.
                     72: //
                     73: // The number of tape drives per controller is fixed at 1, since the
                     74: // software select schemes generally work for one drive only.
                     75: //
                     76: 
                     77: #define MAXIMUM_TAPE_DRIVES_PER_CONTROLLER 1
                     78: 
                     79: 
                     80: //
                     81: // This structure holds all of the configuration data.  It is filled in
                     82: // by FlGetConfigurationInformation(), which gets the information from
                     83: // the configuration manager or the hardware architecture layer (HAL).
                     84: //
                     85: 
                     86: typedef struct _CONFIG_CONTROLLER_DATA {
                     87:     PHYSICAL_ADDRESS OriginalBaseAddress;
                     88:     PTAPE_ADDRESS   ControllerBaseAddress;
                     89:     PADAPTER_OBJECT AdapterObject;
                     90:     ULONG           SpanOfControllerAddress;
                     91:     ULONG           NumberOfMapRegisters;
                     92:     ULONG           BusNumber;
                     93:     ULONG           OriginalIrql;
                     94:     ULONG           OriginalVector;
                     95:     ULONG           OriginalDmaChannel;
                     96:     PKEVENT         ControllerEvent;
                     97:     LONG            ActualControllerNumber;
                     98:     INTERFACE_TYPE  InterfaceType;
                     99:     KINTERRUPT_MODE InterruptMode;
                    100:     KAFFINITY       ProcessorMask;
                    101:     KIRQL           ControllerIrql;
                    102:     BOOLEAN         SaveFloatState;
                    103:     BOOLEAN         SharableVector;
                    104:     BOOLEAN         MappedAddress;
                    105:     BOOLEAN         OkToUseThisController;
                    106:     ULONG           ControllerVector;
                    107:     UCHAR           NumberOfTapeDrives;
                    108:     UCHAR           DriveType[MAXIMUM_TAPE_DRIVES_PER_CONTROLLER];
                    109: } CONFIG_CONTROLLER_DATA,*PCONFIG_CONTROLLER_DATA;
                    110: 
                    111: typedef struct _CONFIG_DATA {
                    112:     ULONG           FloppyTapeCount;
                    113:     UCHAR           NumberOfControllers;
                    114:     CONFIG_CONTROLLER_DATA Controller[MAXIMUM_CONTROLLERS_PER_MACHINE];
                    115: } CONFIG_DATA;
                    116: 
                    117: typedef CONFIG_DATA *PCONFIG_DATA;
                    118: 
                    119: 
                    120: 
                    121: 
                    122: typedef struct _TAPE_CONTROLLER_DATA {
                    123:     LIST_ENTRY          ListEntry;
                    124:     KEVENT              ClearQueueEvent;
                    125:     KEVENT              InterruptEvent;
                    126:     KEVENT              AllocateAdapterChannelEvent;
                    127:     HANDLE              ControllerEventHandle;
                    128:     PKEVENT             ControllerEvent;
                    129:     KSEMAPHORE          RequestSemaphore;
                    130:     KSPIN_LOCK          ListSpinLock;
                    131:     PKINTERRUPT         InterruptObject;
                    132:     PVOID               MapRegisterBase;
                    133:     LONG                ActualControllerNumber;
                    134:     PADAPTER_OBJECT     AdapterObject;
                    135:     ULONG               NumberOfMapRegisters;
                    136:     PDEVICE_OBJECT      CurrentDeviceObject;
                    137:     PTAPE_ADDRESS       FDC_Addr;
                    138:     LONG                FloppyControllerEventTimer;
                    139:     PVOID               TapeExtension;
                    140:     INTERFACE_TYPE      InterfaceType;
                    141:     DRIVE_SELECT        DriveSelect;
                    142:     FORMAT_CMD          FmtCmd;
                    143:     FDC_STATUS          FdcStat;
                    144:     BOOLEAN             CommandHasResultPhase;
                    145:     BOOLEAN             UnloadingDriver;
                    146:     UCHAR               NumberOfTapeDrives;
                    147:     UCHAR               FDC_Pcn;
                    148:     UCHAR               FifoByte;
                    149:     BOOLEAN             QueueEmpty;
                    150:     BOOLEAN             ClearQueue;
                    151:     BOOLEAN             AbortRequested;
                    152:     BOOLEAN             CurrentInterrupt;
                    153:     BOOLEAN             PerpendicularMode;
                    154:     BOOLEAN             StartFormatMode;
                    155:     BOOLEAN             EndFormatMode;
                    156:     BOOLEAN             AdapterLocked;
                    157:     UCHAR               PerpModeSelect;
                    158: } TAPE_CONTROLLER_DATA;
                    159: 
                    160: typedef TAPE_CONTROLLER_DATA *PTAPE_CONTROLLER_DATA;
                    161: 
                    162: typedef struct _TAPE_OPERATION_STATUS {
                    163:     ULONG               BytesTransferredSoFar;
                    164:     ULONG               TotalBytesOfTransfer;
                    165:     ULONG               CurLst;
                    166:     SHORT               DataAmount;
                    167:     SHORT               Scount;
                    168:     SHORT               NoDat;
                    169:     SHORT               D_Amt;
                    170:     SHORT               RetryCount;
                    171:     SHORT               RetryTimes;
                    172:     UCHAR               D_FTK;
                    173:     UCHAR               D_Sect;
                    174:     CHAR                D_Head;
                    175:     UCHAR               RetrySectorId;
                    176:     CHAR                SeekFlag;
                    177:     UCHAR               S_Sect;
                    178: } TAPE_OPERATION_STATUS,*PTAPE_OPERATION_STATUS;
                    179: 
                    180: 
                    181: typedef struct _TAPE_EXTENSION {
                    182:     PDEVICE_OBJECT          QDeviceObject;
                    183:     PTAPE_CONTROLLER_DATA   QControllerData;
                    184:     ULONG                   BytesPerSector;
                    185:     ULONG                   ByteCapacity;
                    186:     ULONG                   ErrorSequence;
                    187:     ULONG                   TapeNumber;
                    188:     MEDIA_TYPE              MediaType;
                    189:     DRIVE_PARAMETERS        DriveParms;
                    190:     TRANSFER_RATE           XferRate;
                    191:     TAPE_PARAMETERS         TapeParms;
                    192:     TAPE_POSITION           TapePosition;
                    193:     MISC_DRIVE_INFO         MiscDriveInfo;
                    194:     TAPE_OPERATION_STATUS   RdWrOp;
                    195:     FMT_PARAMETERS          FmtOp;
                    196:     SHORT                   RetrySeqNum;
                    197:     USHORT                  NumTracks;
                    198:     FIRMWARE_ERROR          FirmwareError;
                    199:     UCHAR                   DriveType;
                    200:     UCHAR                   DeviceUnit;
                    201:     UCHAR                   DriveOnValue;
                    202:     BOOLEAN                 NoPause;
                    203:     BOOLEAN                 PersistentNewCart;
                    204:     BOOLEAN                 NewCart;
                    205:     BOOLEAN                 NoCart;
                    206:     BOOLEAN                 SpeedChangeOK;
                    207:     BOOLEAN                 Found;
                    208:     BOOLEAN                 PegasusSupported;
                    209: #if DBG
                    210: #define DBG_SIZE  4096
                    211:     ULONG DbgCommand[DBG_SIZE];
                    212:     int DbgHead;
                    213:     int DbgTail;
                    214:     BOOLEAN DbgLockout;
                    215: #define DbgAddEntry(data) \
                    216:         TapeExtension->DbgCommand[TapeExtension->DbgTail] = (data); \
                    217: \
                    218:         if (!TapeExtension->DbgLockout) \
                    219:             ++TapeExtension->DbgTail; \
                    220: \
                    221:         if (TapeExtension->DbgTail >= DBG_SIZE) { \
                    222:             TapeExtension->DbgTail = 0; \
                    223:         }
                    224: 
                    225: #else
                    226: #define DbgAddEntry(data)
                    227: #endif
                    228: 
                    229: } TAPE_EXTENSION;
                    230: 
                    231: typedef TAPE_EXTENSION *PTAPE_EXTENSION;
                    232: 
                    233: //
                    234: // Prototypes of driver routines.
                    235: //
                    236: 
                    237: NTSTATUS
                    238: DriverEntry(
                    239:     IN OUT PDRIVER_OBJECT DriverObject,
                    240:     IN PUNICODE_STRING RegistryPath
                    241:     );
                    242: 
                    243: NTSTATUS
                    244: Q117iConfigCallBack(
                    245:     IN PVOID Context,
                    246:     IN PUNICODE_STRING PathName,
                    247:     IN INTERFACE_TYPE BusType,
                    248:     IN ULONG BusNumber,
                    249:     IN PKEY_VALUE_FULL_INFORMATION *BusInformation,
                    250:     IN CONFIGURATION_TYPE ControllerType,
                    251:     IN ULONG ControllerNumber,
                    252:     IN PKEY_VALUE_FULL_INFORMATION *ControllerInformation,
                    253:     IN CONFIGURATION_TYPE PeripheralType,
                    254:     IN ULONG PeripheralNumber,
                    255:     IN PKEY_VALUE_FULL_INFORMATION *PeripheralInformation
                    256:     );
                    257: 
                    258: NTSTATUS
                    259: Q117iGetConfigurationInformation(
                    260:     OUT PCONFIG_DATA *ConfigData
                    261:     );
                    262: 
                    263: NTSTATUS
                    264: Q117iInitializeController(
                    265:     IN PCONFIG_DATA ConfigData,
                    266:     IN UCHAR ControllerNumber,
                    267:    IN PDRIVER_OBJECT DriverObject,
                    268:    IN PUNICODE_STRING RegistryPath
                    269:     );
                    270: 
                    271: BOOLEAN
                    272: Q117iReportResources(
                    273:     IN PDRIVER_OBJECT DriverObject,
                    274:     IN PCONFIG_DATA ConfigData,
                    275:     IN UCHAR ControllerNumber
                    276:     );
                    277: 
                    278: NTSTATUS
                    279: Q117iInitializeControllerHardware(
                    280:    IN PTAPE_CONTROLLER_DATA ControllerData,
                    281:     IN PDEVICE_OBJECT DeviceObject
                    282:     );
                    283: 
                    284: NTSTATUS
                    285: Q117iInitializeDrive(
                    286:     IN PCONFIG_DATA ConfigData,
                    287:    IN PTAPE_CONTROLLER_DATA ControllerData,
                    288:     IN UCHAR ControllerNum,
                    289:     IN PDRIVER_OBJECT DriverObject,
                    290:    IN PUNICODE_STRING RegistryPath
                    291:     );
                    292: 
                    293: NTSTATUS
                    294: Q117iTapeDispatchInternalDeviceControl(
                    295:     IN PDEVICE_OBJECT DeviceObject,
                    296:     IN OUT PIRP Irp
                    297:     );
                    298: 
                    299: NTSTATUS
                    300: Q117iTapeDispatchReadWrite(
                    301:     IN PDEVICE_OBJECT DeviceObject,
                    302:     IN OUT PIRP Irp
                    303:     );
                    304: 
                    305: BOOLEAN
                    306: Q117iTapeInterruptService(
                    307:     IN PKINTERRUPT Interrupt,
                    308:     IN OUT PVOID Context
                    309:     );
                    310: 
                    311: VOID
                    312: Q117iTapeDeferredProcedure(
                    313:     IN PKDPC Dpc,
                    314:     IN PVOID DeferredContext,
                    315:     IN PVOID SystemArgument1,
                    316:     IN PVOID SystemArgument2
                    317:     );
                    318: 
                    319: VOID
                    320: Q117iTapeUnloadDriver(
                    321:     IN PDRIVER_OBJECT DriverObject
                    322:     );
                    323: 
                    324: VOID
                    325: Q117iTapeMotorOffDpc(
                    326:     IN PDEVICE_OBJECT DeviceObject,
                    327:     IN OUT PVOID InterruptTimer
                    328:     );
                    329: 
                    330: NTSTATUS
                    331: Q117iRecalibrateDrive(
                    332:     IN PTAPE_EXTENSION TapeExtension
                    333:     );
                    334: 
                    335: NTSTATUS
                    336: Q117iDatarateSpecifyConfigure(
                    337:     IN PTAPE_EXTENSION TapeExtension
                    338:     );
                    339: 
                    340: NTSTATUS
                    341: Q117iResetController(
                    342:     IN OUT PTAPE_CONTROLLER_DATA ControllerData,
                    343:     IN UCHAR DataRate
                    344:     );
                    345: 
                    346: NTSTATUS
                    347: Q117iStartDrive(
                    348:     IN OUT PTAPE_EXTENSION TapeExtension,
                    349:     IN BOOLEAN WriteOperation,
                    350:     IN BOOLEAN SetUpMedia
                    351:     );
                    352: 
                    353: NTSTATUS
                    354: Q117iDetermineMediaType(
                    355:     IN OUT PTAPE_EXTENSION TapeExtension
                    356:     );
                    357: 
                    358: VOID
                    359: Q117iTapeThread(
                    360:     IN OUT PTAPE_CONTROLLER_DATA ControllerData
                    361:     );
                    362: 
                    363: IO_ALLOCATION_ACTION
                    364: Q117iTapeAllocateAdapterChannel(
                    365:     IN PDEVICE_OBJECT DeviceObject,
                    366:     IN PIRP Irp,
                    367:     IN PVOID MapRegisterBase,
                    368:     IN PVOID Context
                    369:     );
                    370: 
                    371: NTSTATUS
                    372: Q117iFormat(
                    373:     IN PTAPE_EXTENSION TapeExtension,
                    374:     IN PIRP Irp
                    375:     );
                    376: 
                    377: NTSTATUS
                    378: Q117iIssueCommand(
                    379:     IN DRIVER_COMMAND Command,
                    380:     IN OUT PTAPE_EXTENSION TapeExtension
                    381:     );
                    382: 
                    383: ULONG
                    384: Q117iGetControllerBase(
                    385:     IN INTERFACE_TYPE BusType,
                    386:     IN ULONG BusNumber,
                    387:     IN PHYSICAL_ADDRESS IoAddress,
                    388:     IN ULONG NumberOfBytes,
                    389:     IN BOOLEAN InIoSpace,
                    390:     OUT PBOOLEAN MappedAddress
                    391:     );
                    392: 
                    393: NTSTATUS
                    394: Q117iProcessItem(
                    395:     IN OUT PIRP Irp
                    396:     );
                    397: 
                    398: NTSTATUS
                    399: Q117iClearIO(
                    400:     IN OUT PIRP Irp
                    401:     );
                    402: 
                    403: NTSTATUS
                    404: Q117iTranslateError(
                    405:     IN PDEVICE_OBJECT DeviceObject,
                    406:     IN STATUS Retval
                    407:     );
                    408: 
                    409: VOID
                    410: Q117iResetInterruptEvent(
                    411:     IN PTAPE_EXTENSION TapeExtension
                    412:     );
                    413: 
                    414: VOID
                    415: Q117iResetFDC(
                    416:     IN PTAPE_EXTENSION TapeExtension
                    417:     );
                    418: 
                    419: VOID
                    420: Q117iDLockUnlockDMA(
                    421:     IN PTAPE_EXTENSION TapeExtension,
                    422:     IN BOOLEAN Lock
                    423:     );
                    424: 
                    425: VOID
                    426: hio_ProgramDMA(
                    427:     IN PTAPE_EXTENSION TapeExtension,
                    428:     IN PIRP Irp,
                    429:     IN BOOLEAN WriteOperation
                    430:     );
                    431: 
                    432: VOID
                    433: hio_FlushDMA(
                    434:     IN PTAPE_EXTENSION TapeExtension,
                    435:     IN PIRP Irp,
                    436:     IN BOOLEAN WriteOperation
                    437:     );
                    438: 
                    439: VOID
                    440: Q117iShortTimer(
                    441:     IN QIC_TIME StallTime
                    442:     );
                    443: 
                    444: STATUS
                    445: Q117iSleep(
                    446:     IN PTAPE_EXTENSION TapeExtension,
                    447:     IN QIC_TIME WaitTime,
                    448:     IN BOOLEAN InterruptSleep
                    449:     );
                    450: 
                    451: STATUS
                    452: Q117iDLocateDrv(
                    453:     IN PTAPE_EXTENSION TapeExtension
                    454:     );
                    455: 
                    456: STATUS
                    457: Q117iDDeselect(
                    458:     IN PTAPE_EXTENSION TapeExtension
                    459:     );
                    460: 
                    461: STATUS
                    462: Q117iConvertFirmwareError(
                    463:     IN FIRMWARE_ERROR FirmwareError
                    464:     );
                    465: 
                    466: STATUS
                    467: Q117iSetDriveMode(
                    468:     IN PTAPE_EXTENSION TapeExtension,
                    469:     IN CHAR Mode
                    470:     );
                    471: 
                    472: STATUS
                    473: Q117iProgramFDC(
                    474:     IN PTAPE_EXTENSION TapeExtension,
                    475:     IN UCHAR *Command,
                    476:     IN SHORT Length,
                    477:     IN BOOLEAN Result
                    478:     );
                    479: 
                    480: STATUS
                    481: Q117iConfigureDrive(
                    482:     IN PTAPE_EXTENSION TapeExtension
                    483:     );
                    484: 
                    485: STATUS
                    486: Q117iConfigureFDC(
                    487:     IN PTAPE_EXTENSION TapeExtension
                    488:     );
                    489: 
                    490: STATUS
                    491: Q117iSelectDrive(
                    492:     IN PTAPE_EXTENSION TapeExtension
                    493:     );
                    494: 
                    495: STATUS
                    496: Q117iDeselectDrive(
                    497:     IN PTAPE_EXTENSION TapeExtension
                    498:     );
                    499: 
                    500: STATUS
                    501: Q117iDFmt(
                    502:     IN PTAPE_EXTENSION TapeExtension,
                    503:     IN PIRP Irp,
                    504:     IN OUT PIO_REQUEST Ioqucrnt
                    505:     );
                    506: 
                    507: STATUS
                    508: Q117iFormatTrack(
                    509:     IN PTAPE_EXTENSION TapeExtension,
                    510:     IN PIRP Irp,
                    511:     IN SHORT Track,
                    512:     IN OUT PIO_REQUEST Ioqucrnt
                    513:     );
                    514: 
                    515: STATUS
                    516: Q117iFormatSegment(
                    517:     IN PTAPE_EXTENSION TapeExtension,
                    518:     IN PIRP Irp,
                    519:     IN OUT PIO_REQUEST Ioqucrnt,
                    520:     IN UCHAR Cylinder,
                    521:     IN UCHAR Head,
                    522:     IN UCHAR Sector
                    523:     );
                    524: 
                    525: STATUS
                    526: Q117iWriteReferenceBurst(
                    527:     IN PTAPE_EXTENSION TapeExtension
                    528:     );
                    529: 
                    530: STATUS
                    531: Q117iReadWrite(
                    532:     IN PTAPE_EXTENSION TapeExtension,
                    533:     IN OUT PIO_REQUEST Ioqucrnt,
                    534:     IN OUT PIRP Irp
                    535:     );
                    536: 
                    537: STATUS
                    538: Q117iCalcPosition(
                    539:     IN PTAPE_EXTENSION TapeExtension,
                    540:     IN ULONG Block,
                    541:     IN UCHAR Number
                    542:     );
                    543: 
                    544: VOID
                    545: Q117iGetRetryCounts(
                    546:     IN PTAPE_EXTENSION TapeExtension,
                    547:     IN DRIVER_COMMAND Command
                    548:     );
                    549: 
                    550: VOID
                    551: Q117iNextGoodSectors(
                    552:     IN PTAPE_EXTENSION TapeExtension
                    553:     );
                    554: 
                    555: STATUS
                    556: Q117iRW_Timeout(
                    557:     IN PTAPE_EXTENSION TapeExtension,
                    558:     IN OUT PIO_REQUEST Ioqucrnt,
                    559:     IN STATUS *Status
                    560:     );
                    561: 
                    562: STATUS
                    563: Q117iRW_Normal(
                    564:     IN PTAPE_EXTENSION TapeExtension,
                    565:     IN OUT PIO_REQUEST Ioqucrnt,
                    566:     OUT STATUS *Status
                    567:     );
                    568: 
                    569: STATUS
                    570: Q117iRetryCode(
                    571:     IN PTAPE_EXTENSION TapeExtension,
                    572:     IN OUT PIO_REQUEST Ioqucrnt,
                    573:     OUT FDC_STATUS *FdcStatus,
                    574:     OUT STATUS *Status
                    575:     );
                    576: 
                    577: STATUS
                    578: Q117iNextTry(
                    579:     IN PTAPE_EXTENSION TapeExtension,
                    580:     IN DRIVER_COMMAND Command
                    581:     );
                    582: 
                    583: STATUS
                    584: Q117iSetBack(
                    585:     IN PTAPE_EXTENSION TapeExtension,
                    586:     IN DRIVER_COMMAND Command
                    587:     );
                    588: 
                    589: STATUS
                    590: Q117iStartTape(
                    591:     IN PTAPE_EXTENSION TapeExtension
                    592:     );
                    593: 
                    594: STATUS
                    595: Q117iReadFDC(
                    596:     IN PTAPE_EXTENSION TapeExtension,
                    597:     OUT UCHAR *Status,
                    598:     OUT SHORT *Length
                    599:     );
                    600: 
                    601: VOID
                    602: Q117iResetFDC(
                    603:     IN PTAPE_EXTENSION TapeExtension
                    604:     );
                    605: 
                    606: STATUS
                    607: Q117iGetDriveError(
                    608:     IN PTAPE_EXTENSION TapeExtension
                    609:     );
                    610: 
                    611: STATUS
                    612: Q117iReport(
                    613:     IN PTAPE_EXTENSION TapeExtension,
                    614:     IN CHAR Command,
                    615:     OUT USHORT  *ReportData,
                    616:     IN SHORT   ReportSize,
                    617:     OUT CHAR *ESDRetry
                    618:     );
                    619: 
                    620: STATUS
                    621: Q117iWaitCommandComplete(
                    622:     IN PTAPE_EXTENSION TapeExtension,
                    623:     IN QIC_TIME WaitTime
                    624:     );
                    625: 
                    626: 
                    627: STATUS
                    628: Q117iGetStatus(
                    629:     IN PTAPE_EXTENSION TapeExtension,
                    630:     OUT UCHAR *StatReg3
                    631:     );
                    632: 
                    633: STATUS
                    634: Q117iPauseTape(
                    635:     IN PTAPE_EXTENSION TapeExtension
                    636:     );
                    637: 
                    638: STATUS
                    639: Q117iSeek(
                    640:     IN PTAPE_EXTENSION TapeExtension
                    641:     );
                    642: 
                    643: STATUS
                    644: Q117iChangeTrack(
                    645:     IN PTAPE_EXTENSION TapeExtension,
                    646:     IN SHORT dest_track
                    647:     );
                    648: 
                    649: STATUS
                    650: Q117iReadIDRepeat(
                    651:     IN PTAPE_EXTENSION TapeExtension
                    652:     );
                    653: 
                    654: STATUS
                    655: Q117iDoReadID(
                    656:     IN PTAPE_EXTENSION TapeExtension,
                    657:     IN QIC_TIME ReadIdDelay,
                    658:     OUT FDC_STATUS *ReadIdStatus
                    659:     );
                    660: 
                    661: VOID
                    662: Q117iGetComFirmStr(
                    663:     IN PTAPE_EXTENSION TapeExtension,
                    664:     OUT CHAR **ptr,
                    665:     IN SHORT index
                    666:     );
                    667: 
                    668: STATUS
                    669: Q117iLogicalBOT(
                    670:     IN PTAPE_EXTENSION TapeExtension
                    671:     );
                    672: 
                    673: STATUS
                    674: Q117iAdjustTapeZone(
                    675:     IN PTAPE_EXTENSION TapeExtension,
                    676:     IN SHORT TapePosition
                    677:     );
                    678: 
                    679: STATUS
                    680: Q117iHighSpeedSeek(
                    681:     IN PTAPE_EXTENSION TapeExtension
                    682:     );
                    683: 
                    684: STATUS
                    685: Q117iWaitSeek(
                    686:     IN PTAPE_EXTENSION TapeExtension,
                    687:     IN SHORT SeekDelay
                    688:     );
                    689: 
                    690: STATUS
                    691: Q117iReceiveByte(
                    692:     IN PTAPE_EXTENSION TapeExtension,
                    693:     IN SHORT ReceiveLength,
                    694:     OUT USHORT *ReceiveData
                    695:     );
                    696: 
                    697: STATUS
                    698: Q117iWaitActive(
                    699:     IN PTAPE_EXTENSION TapeExtension
                    700:     );
                    701: 
                    702: STATUS
                    703: Q117iTapeCommands(
                    704:     IN PTAPE_EXTENSION TapeExtension,
                    705:     IN OUT PIO_REQUEST Ioqucrnt,
                    706:     IN OUT PIRP Irp
                    707:     );
                    708: 
                    709: STATUS
                    710: Q117iDEject(
                    711:     IN PTAPE_EXTENSION TapeExtension
                    712:     );
                    713: 
                    714: STATUS
                    715: Q117iDReten(
                    716:     IN PTAPE_EXTENSION TapeExtension
                    717:     );
                    718: 
                    719: STATUS
                    720: Q117iDFast_DSlow(
                    721:     IN PTAPE_EXTENSION TapeExtension,
                    722:     IN DRIVER_COMMAND Command
                    723:     );
                    724: 
                    725: STATUS
                    726: Q117iDGetRev(
                    727:     IN PTAPE_EXTENSION TapeExtension,
                    728:     OUT PUCHAR Version
                    729:     );
                    730: 
                    731: STATUS
                    732: Q117iDGetCap(
                    733:     IN PTAPE_EXTENSION TapeExtension,
                    734:     OUT struct S_O_DGetCap *Capacity
                    735:     );
                    736: 
                    737: STATUS
                    738: Q117iDComFirm(
                    739:     IN PTAPE_EXTENSION TapeExtension,
                    740:     IN OUT PUCHAR CommandString
                    741:     );
                    742: 
                    743: STATUS
                    744: Q117iDSndWPro(
                    745:     IN PTAPE_EXTENSION TapeExtension
                    746:     );
                    747: 
                    748: STATUS
                    749: Q117iDSndReel(
                    750:     IN PTAPE_EXTENSION TapeExtension
                    751:     );
                    752: 
                    753: STATUS
                    754: Q117iDGetCart(
                    755:     IN PTAPE_EXTENSION TapeExtension,
                    756:     OUT PUCHAR TapeType
                    757:     );
                    758: 
                    759: STATUS
                    760: Q117iDChkDrv(
                    761:     IN PTAPE_EXTENSION TapeExtension,
                    762:     OUT PUCHAR DriveType
                    763:     );
                    764: 
                    765: STATUS
                    766: Q117iDGetSpeed(
                    767:     IN PTAPE_EXTENSION TapeExtension,
                    768:     OUT struct S_O_DGetSpeed *XferRate
                    769:     );
                    770: 
                    771: STATUS
                    772: Q117iDStatus(
                    773:     IN PTAPE_EXTENSION TapeExtension,
                    774:     OUT struct S_O_DStatus *DriveStatus
                    775:     );
                    776: 
                    777: STATUS
                    778: Q117iDGetFDC(
                    779:     IN PTAPE_EXTENSION TapeExtension,
                    780:     OUT PUCHAR FdcType
                    781:     );
                    782: 
                    783: STATUS
                    784: Q117iDGetDriveInfo(
                    785:     IN PTAPE_EXTENSION TapeExtension,
                    786:     OUT struct S_O_DMiscInfo *MiscInfoPtr
                    787:     );
                    788: 
                    789: STATUS
                    790: Q117iDChkFmt(
                    791:     IN PTAPE_EXTENSION TapeExtension
                    792:     );
                    793: 
                    794: STATUS
                    795: Q117iDReportProtoVer(
                    796:     IN PTAPE_EXTENSION TapeExtension,
                    797:     OUT PUCHAR  ProtoVer
                    798:     );
                    799: 
                    800: STATUS Q117iDFndDrv(
                    801:     IN PTAPE_EXTENSION TapeExtension
                    802:     );
                    803: 
                    804: STATUS
                    805: Q117iClearTapeError(
                    806:     IN PTAPE_EXTENSION TapeExtension
                    807:     );
                    808: 
                    809: STATUS Q117iLookForDrive(
                    810:     IN PTAPE_EXTENSION TapeExtension,
                    811:     IN UCHAR DriveSelector,
                    812:     IN BOOLEAN WaitForTape
                    813:     );
                    814: 
                    815: STATUS Q117iGetDriveType(
                    816:     IN PTAPE_EXTENSION TapeExtension
                    817:     );
                    818: 
                    819: STATUS Q117iGetDriveSize(
                    820:     IN PTAPE_EXTENSION TapeExtension,
                    821:     IN BOOLEAN ReportFailed,
                    822:     IN USHORT VendorId,
                    823:     IN UCHAR Signature
                    824:     );
                    825: 
                    826: STATUS Q117iNewTape(
                    827:     IN PTAPE_EXTENSION TapeExtension
                    828:     );
                    829: 
                    830: STATUS
                    831: Q117iReadWrtProtect(
                    832:     IN PTAPE_EXTENSION TapeExtension,
                    833:     OUT SHORT *WriteProtect
                    834:     );
                    835: 
                    836: STATUS
                    837: Q117iGetTapeParameters(
                    838:     IN PTAPE_EXTENSION TapeExtension
                    839:     );
                    840: 
                    841: VOID
                    842: Q117iCalcFmtSegmentsAndTracks(
                    843:     IN PTAPE_EXTENSION TapeExtension
                    844:     );
                    845: 
                    846: STATUS
                    847: Q117iMtnPreamble(
                    848:     IN PTAPE_EXTENSION TapeExtension,
                    849:     IN BOOLEAN Select
                    850:     );
                    851: 
                    852: STATUS
                    853: Q117iGetDriveInfo(
                    854:     IN PTAPE_EXTENSION TapeExtension
                    855:     );
                    856: 
                    857: STATUS
                    858: Q117iStopTape(
                    859:     IN PTAPE_EXTENSION TapeExtension
                    860:     );
                    861: 
                    862: STATUS
                    863: Q117iSendByte(
                    864:     IN PTAPE_EXTENSION TapeExtension,
                    865:     IN FIRMWARE_CMD Command
                    866:     );
                    867: 
                    868: STATUS
                    869: Q117iSenseSpeed(
                    870:     IN PTAPE_EXTENSION TapeExtension
                    871:     );
                    872: 
                    873: VOID
                    874: Q117iDCR_Out(
                    875:     IN PTAPE_EXTENSION TapeExtension,
                    876:     IN SHORT Speed
                    877:     );
                    878: 
                    879: VOID
                    880: Q117iExtractFloppyConfig(
                    881:     IN OUT PCONFIG_DATA ConfigData,
                    882:     IN PDEVICE_OBJECT DeviceObject
                    883:     );
                    884: 
                    885: STATUS
                    886: Q117iRecalibrateFDC(
                    887:     IN PTAPE_EXTENSION TapeExtension
                    888:     );
                    889: 
                    890: VOID
                    891: q117iUpdateRegistryInfo(
                    892:     IN PTAPE_EXTENSION TapeExtension
                    893:     );

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.