This is SCSI.h in view mode; [Download] [Up]
// // SCSI.h // // SCSI generic driver object library // Version 3 (Revision 3.0) // // The SCSI class source, header, and documentation are all: // Copyright (c) 1990 by Jiro Nakamura and Canon, Inc. // Copyright (c) 1991 by Jiro Nakamura and Canon, Inc. // Copyright (c) 1992 by Jiro Nakamura // All Rights Reserved. // // // See Class Documentation for information. I am not a great comment-person, // although I am not too proud of that fact.... // // Original Author: Jiro Nakamura // Created: June 12, 1990 // // RCS Information // Revision Number-> $Revision: 3.1 $ // Last Revised-> $Date: 92/11/13 02:31:45 $ // ------------------ // History: // 16-May-92 Jiro // Cleaned up for commercial release (Rev 3.0) // 12-Jul-91 Jiro // Added all the stuff from SCSICommander and such. (Rev 2.0) // Version 2 of the class. // 6-Aug-90 Jiro // Cleaned up code. Removed dead fragments (Rev. 1.1) // 3-Aug-90 Jiro // Added READ CAPACITY. (Rev. 1.0.1) // 12-Jul-90 Jiro Nakamura // Fixed up for Revision 1.0 (Version 1). // 12-Jun-90 Jiro Nakamura // Created. #import <objc/Object.h> #import <sys/types.h> #import <bsd/dev/scsireg.h> #import "scsi2reg.h" #ifndef KILOBYTE #define KILOBYTE (1024.0) #define MEGABYTE (1024.0 * 1024.0) #endif @interface SCSI: Object { BOOL scsiOpen; // TRUE if SCSI device open int target, lun; // Target/ logical unit int fd; // File descriptor char *dev_name; // Generic SCSI Device struct scsi_req sr; // SCSI command request parameters struct scsi_adr sa; // SCSI address parameters char errorString[100]; // English error information } // Factory methods + new; // Overrides superclass + (void) clearCommandBlock: (union cdb *) cdbp; // Opening and closing the driver - (int) openSCSI; - (int) openSCSIAt: (int) trg lun: (int) ln; - (int) closeSCSI; // Setting the target SCSI ID and logical unit - (int) setTarget: (int) target lun: (int)lun; // Returning English error information - (char *) errorString; // Subclass modifies this appropriately - (char *) returnError: sender; // Bus level error messages - (char *) returnDriverStatus: (char **) driverStatus scsiStatus: (char **) scsiSctatus andExtendedSense: (char **) esense; // User Macro Commands - (int) findDevice; // Just [self findDevice: 0]; - (int) findDevice: (int) trg; // Wrap on findDeviceSCSI: - (BOOL) isDevice; // Wrap on isDeviceSCSI - (int) inquiry: (struct inquiry_reply *) ibuffer; - (int) modeSensePage: (int) page pc: (int) pc dbd: (BOOL) dbd mpbuf: (struct mode_parameters *) mpbuf; - (int) readCapacity: (struct capacity_reply *) rbuffer; - (int) receiveDiagnosticAlloc: (int) alloc buffer: (char *) buf; - (int) requestSense: (union esenseReply *) rbuffer; - (int) sendDiagnosticPf: (BOOL) pf selfTest: (BOOL) st deviceOffLine: (BOOL) dol unitOffLine: (BOOL) uol parameterListLength: (int) pll parameterBuffer: (char *) pbuf; - (int) testUnitReady; // Pseudo-basic SCSI commands - (BOOL) isDeviceSCSI; // Subclass Responsibility - (int) findDeviceSCSI: (int) trg; // Is this our device? // Basic SCSI commands. Structures are in <nextdev/scsireg.h> - (int) inquirySCSI: (struct inquiry_reply *) ibuffer; - (int) modeSenseSCSIPage: (int) page pc: (int) pc dbd: (BOOL) dbd mpbuf: (struct mode_parameters *) mpbuf; - (int) readCapacitySCSI: (struct capacity_reply *) rbuffer; - (int) receiveDiagnosticSCSIAlloc: (int) alloc buffer: (char *) buf; - (int) requestSenseSCSI: (union esenseReply *) rbuffer; - (int) sendDiagnosticSCSIPf: (BOOL) pf selfTest: (BOOL) st deviceOffLine: (BOOL) dol unitOffLine: (BOOL) uol parameterListLength: (int) pll parameterBuffer: (char *) pbuf; - (int) testUnitReadySCSI; // Variable accessors - (struct scsi_req *) statusReq; - (BOOL) scsiOpen; // Accessory Methods (use at own risk) - (const char *) identifyDeviceType: (struct inquiry_reply *) ibuffer; // Archiving methods - write: (NXTypedStream *) stream; - read: (NXTypedStream *) stream; // For use by professionals only - (int) executeRequest: (struct scsi_req *) sp; - (int) executeBusReset; // Internal Routines -- Only subclasses should use these - (int) performSCSIRequest; @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.