home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NeXTSTEP 3.2 (Developer)
/
NS_dev_3.2.iso
/
NextDeveloper
/
Headers
/
driverkit
/
IOSCSIController.h
< prev
next >
Wrap
Text File
|
1993-08-06
|
2KB
|
79 lines
/*
* Copyright (c) 1991, 1992, 1993 NeXT Computer, Inc.
*
* Abstract superclass for SCSI controllers.
*
* HISTORY
*
* 25 June 1993 David E. Bohman at NeXT
* Cleaned up some (made machine independent).
*
* 11/9/92 Brian Pinkerton at NeXT
* Created.
*/
#import <driverkit/IODirectDevice.h>
#import <driverkit/return.h>
#import <driverkit/scsiTypes.h>
@interface IOSCSIController : IODirectDevice<IOSCSIControllerExported>
{
@private
/*
* Target/lun reservation array. We reserve target SC_HOST_ID for
* ourself. We keep track of how many active devices are on the bus
* in _reserveCount.
*/
id _reserveArray[SCSI_NTARGETS][SCSI_NLUNS];
unsigned int _reserveCount;
id _reserveLock; // NXSpinLock. Protects _reserveArray.
unsigned _worstCaseAlign; // worst case DMA alignment.
int _IOSCSIController_reserved[4];
}
- initFromDeviceDescription : deviceDescription;
- (unsigned int)numReserved;
- (IOReturn)getIntValues : (unsigned *)parameterArray
forParameter : (IOParameterName)parameterName
count : (unsigned int *)count;
- (IOReturn)setIntValues : (unsigned *)parameterArray
forParameter : (IOParameterName)parameterName
count : (unsigned int)count;
- (unsigned int) numQueueSamples; /* simple statistics */
- (unsigned int) sumQueueLengths;
- (unsigned int) maxQueueLength;
- (void)resetStats; /* zero the above counters */
/*
* Subclasses of SCSIController must implement the following two
* methods of the SCSIControllerExported protocol.
* SCSIController's versions of these return SR_IOST_INVALID.
*
* - (sc_status_t) executeRequest : (IOSCSIRequest *)scsiReq
* buffer : (void *)buffer
* client : (vm_task_t)client;
*
* - (sc_status_t) resetSCSIBus;
*
*
* May optionally be overridden by subclass.
*
* - (unsigned) maxTransfer;
* - (void)getDMAAlignment : (IODMAAlignment *)alignment;
*/
@end
#define IO_IS_A_SCSI_CONTROLLER "IOIsASCSIController"
#define IO_SCSI_CONTROLLER_STATS "IOSCSIControllerStatistics"
#define IO_SCSI_CONTROLLER_STAT_ARRAY_SIZE 3
#define IO_SCSI_CONTROLLER_MAX_QUEUE_LENGTH 0
#define IO_SCSI_CONTROLLER_QUEUE_SAMPLES 1
#define IO_SCSI_CONTROLLER_QUEUE_TOTAL 2