|
|
1.1 root 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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.