home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Examples / DriverKit / SCSITape / SCSITape_reloc.tproj / SCSITape.h < prev    next >
Encoding:
Text File  |  1994-07-13  |  2.6 KB  |  99 lines

  1.  
  2. /*     Copyright (c) 1993 NeXT Computer, Inc.  All rights reserved. 
  3.  *
  4.  * SCSITape.h - Interface for SCSI Tape device class. 
  5.  *
  6.  * HISTORY
  7.  * 31-Mar-93    Phillip Dibner at NeXT
  8.  *      Created.
  9.  */
  10.  
  11. #import <driverkit/return.h>
  12. #import <driverkit/scsiTypes.h>
  13. #import <driverkit/generalFuncs.h>
  14. #import <dev/scsireg.h>
  15. #import <machkit/NXLock.h>
  16. #import <objc/Protocol.h>
  17. #import "SCSITapeTypes.h"
  18.  
  19.  
  20. @interface SCSITape: IODevice
  21. {
  22. @private
  23.     /*
  24.      * Configuration information
  25.      */
  26.     id         _controller;    // the SCSIController object which does
  27.                 // our SCSI transactions
  28.     u_char    _target;    // target/lun of this device
  29.     u_char    _lun;
  30.  
  31.     int        _majorDevNum;
  32.  
  33.     int        _blockSize;
  34.  
  35.     /*
  36.      * Driver state
  37.      */
  38.     esense_reply_t    *_senseDataPtr;    // for MTIOCGET 
  39.     id            _devLock;    // NXLock for exclusive open
  40.     BOOL        _isInitialized;    // Object has been initialized
  41.     BOOL        _devAcquired;    // device reserved by some task
  42.     BOOL        _didWrite;    // last command was a write 
  43.     BOOL        _suppressIllegalLength;    // Suppress IL errors
  44.     BOOL        _senseDataValid;// *_senseDataPtr from last command OK
  45.     BOOL        _reservedTargetLun; // Controller has reserved t & l
  46.     BOOL        _ignoreCheckCondition; // during Test Ready in open()
  47. };
  48.  
  49.  
  50. /* Class methods */
  51.  
  52. + (BOOL)probe: deviceDescription;
  53. + (IODeviceStyle) deviceStyle;
  54. + (Protocol **) requiredProtocols;
  55.  
  56. - (stInitReturn_t) initSCSITape: (int) stUnit
  57.     target:        (u_char) stTarget
  58.     lun:        (u_char) stLun
  59.     controller:        stController
  60.     majorDeviceNumber:    (int) major;
  61.            
  62. - (int)target;
  63. - (int)lun;
  64. - controller;
  65. - (BOOL) isInitialized;
  66. - (BOOL) isFixedBlock;
  67. - (BOOL) senseDataValid;
  68. - (BOOL) didWrite;
  69. - forceSenseDataInvalid;
  70. - (struct esense_reply *) senseDataPtr;
  71. - (int) blockSize;
  72. - (BOOL) suppressIllegalLength;
  73. - setSuppressIllegalLength: (BOOL) condition;
  74. - setReservedTargetLun: (BOOL) condition;
  75. - (BOOL) ignoreCheckCondition;
  76. - setIgnoreCheckCondition: (BOOL) condition;
  77. - (BOOL) reservedTargetLun;
  78. - (int) majorDevNum;
  79. - (IOReturn) acquireDevice;
  80. - (IOReturn) releaseDevice;
  81.  
  82. - (sc_status_t) stInquiry: (inquiry_reply_t *) inquiryReply;
  83. - (BOOL) stTestReady;
  84. - (sc_status_t) stCloseFile;
  85. - (sc_status_t) stRewind;
  86. - (sc_status_t) requestSense: (esense_reply_t *)senseBuf;
  87. - (sc_status_t) stModeSelect: (struct modesel_parms *) modeSelectParmsPtr;
  88. - (sc_status_t) stModeSense: (struct modesel_parms *) modeSenseParmsPtr;
  89. - (sc_status_t) executeMTOperation: (struct mtop *) mtopp;
  90. - (IOReturn) setBlockSize: (int) blockSize;
  91. - (sc_status_t) executeRequest: (IOSCSIRequest *)scsiReq
  92.     buffer:(void *) buffer
  93.     client:(vm_task_t) client
  94.     senseBuf:(esense_reply_t *) senseBuf;
  95.  
  96. @end
  97.  
  98.  
  99.