File:  [NeXTSTEP 3.3 examples] / Examples / DriverKit / SCSITape / SCSITape_reloc.tproj / SCSITape.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:49:02 2018 UTC (8 years, 1 month ago) by root
Branches: NeXT, MAIN
CVS tags: NeXTSTEP33, HEAD
Sample Programs from NeXSTEP 3.3


/* 	Copyright (c) 1993 NeXT Computer, Inc.  All rights reserved. 
 *
 * SCSITape.h - Interface for SCSI Tape device class. 
 *
 * HISTORY
 * 31-Mar-93    Phillip Dibner at NeXT
 *      Created.
 */
 
#import <driverkit/return.h>
#import <driverkit/scsiTypes.h>
#import <driverkit/generalFuncs.h>
#import <dev/scsireg.h>
#import <machkit/NXLock.h>
#import <objc/Protocol.h>
#import "SCSITapeTypes.h"


@interface SCSITape: IODevice
{
@private
    /*
     * Configuration information
     */
    id 		_controller;	// the SCSIController object which does
				// our SCSI transactions
    u_char	_target;	// target/lun of this device
    u_char	_lun;

    int		_majorDevNum;

    int		_blockSize;

    /*
     * Driver state
     */
    esense_reply_t	*_senseDataPtr;	// for MTIOCGET 
    id			_devLock;	// NXLock for exclusive open
    BOOL		_isInitialized;	// Object has been initialized
    BOOL		_devAcquired;	// device reserved by some task
    BOOL		_didWrite;	// last command was a write 
    BOOL		_suppressIllegalLength;	// Suppress IL errors
    BOOL		_senseDataValid;// *_senseDataPtr from last command OK
    BOOL		_reservedTargetLun; // Controller has reserved t & l
    BOOL		_ignoreCheckCondition; // during Test Ready in open()
};


/* Class methods */

+ (BOOL)probe: deviceDescription;
+ (IODeviceStyle) deviceStyle;
+ (Protocol **) requiredProtocols;

- (stInitReturn_t) initSCSITape: (int) stUnit
    target:		(u_char) stTarget
    lun:		(u_char) stLun
    controller:		stController
    majorDeviceNumber:	(int) major;
		   
- (int)target;
- (int)lun;
- controller;
- (BOOL) isInitialized;
- (BOOL) isFixedBlock;
- (BOOL) senseDataValid;
- (BOOL) didWrite;
- forceSenseDataInvalid;
- (struct esense_reply *) senseDataPtr;
- (int) blockSize;
- (BOOL) suppressIllegalLength;
- setSuppressIllegalLength: (BOOL) condition;
- setReservedTargetLun: (BOOL) condition;
- (BOOL) ignoreCheckCondition;
- setIgnoreCheckCondition: (BOOL) condition;
- (BOOL) reservedTargetLun;
- (int) majorDevNum;
- (IOReturn) acquireDevice;
- (IOReturn) releaseDevice;

- (sc_status_t) stInquiry: (inquiry_reply_t *) inquiryReply;
- (BOOL) stTestReady;
- (sc_status_t) stCloseFile;
- (sc_status_t) stRewind;
- (sc_status_t) requestSense: (esense_reply_t *)senseBuf;
- (sc_status_t) stModeSelect: (struct modesel_parms *) modeSelectParmsPtr;
- (sc_status_t) stModeSense: (struct modesel_parms *) modeSenseParmsPtr;
- (sc_status_t) executeMTOperation: (struct mtop *) mtopp;
- (IOReturn) setBlockSize: (int) blockSize;
- (sc_status_t) executeRequest: (IOSCSIRequest *)scsiReq
    buffer:(void *) buffer
    client:(vm_task_t) client
    senseBuf:(esense_reply_t *) senseBuf;

@end



unix.superglobalmegacorp.com

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