ftp.nice.ch/pub/next/developer/languages/c/gcc.2.7.2.2.N.b.tar.gz#/lib/gcc-lib/m68k-next-nextstep3/2.7.2.2.f.2/include/driverkit/IOSCSIController.h

This is IOSCSIController.h in view mode; [Download] [Up]

/*
 * 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

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.