|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * The contents of this file constitute Original Code as defined in and ! 7: * are subject to the Apple Public Source License Version 1.1 (the ! 8: * "License"). You may not use this file except in compliance with the ! 9: * License. Please obtain a copy of the License at ! 10: * http://www.apple.com/publicsource and read it before using this file. ! 11: * ! 12: * This Original Code and all software distributed under the License are ! 13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 17: * License for the specific language governing rights and limitations ! 18: * under the License. ! 19: * ! 20: * @APPLE_LICENSE_HEADER_END@ ! 21: */ ! 22: /* ! 23: * ! 24: * SCSIDevice.h ! 25: * ! 26: */ ! 27: ! 28: #ifndef _SCSIDEVICE_H ! 29: #define _SCSIDEVICE_H ! 30: ! 31: #define kDefaultInquirySize 255 ! 32: ! 33: typedef struct SCSITargetLun ! 34: { ! 35: UInt8 target; ! 36: UInt8 lun; ! 37: UInt8 reserved[2]; ! 38: } SCSITargetLun; ! 39: ! 40: typedef struct SCSILunParms ! 41: { ! 42: bool disableDisconnect; ! 43: ! 44: UInt32 reserved[16]; ! 45: } SCSILunParms; ! 46: ! 47: typedef struct SCSITargetParms ! 48: { ! 49: UInt32 transferPeriodpS; ! 50: UInt32 transferOffset; ! 51: UInt32 transferWidth; ! 52: ! 53: bool enableTagQueuing; ! 54: bool disableParity; ! 55: ! 56: UInt32 reserved[16]; ! 57: } SCSITargetParms; ! 58: ! 59: enum SCSIDeviceTimeouts ! 60: { ! 61: kSCSITimerIntervalmS = 500, ! 62: kSCSIProbeTimeoutmS = 5000, ! 63: kSCSIResetIntervalmS = 3000, ! 64: kSCSIAbortTimeoutmS = 5000, ! 65: kSCSIReqSenseTimeoutmS = 5000, ! 66: kSCSIDisableTimeoutmS = 5000, ! 67: }; ! 68: ! 69: enum SCSIClientMessage ! 70: { ! 71: kSCSIClientMsgNone = 0x00005000, ! 72: kSCSIClientMsgDeviceAbort, ! 73: kSCSIClientMsgDeviceReset, ! 74: kSCSIClientMsgBusReset, ! 75: ! 76: kSCSIClientMsgDone = 0x80000000, ! 77: }; ! 78: ! 79: enum SCSIQueueType ! 80: { ! 81: kQTypeNormalQ = 0, ! 82: kQTypeBypassQ = 1, ! 83: }; ! 84: ! 85: enum SCSIQueuePosition ! 86: { ! 87: kQPositionTail = 0, ! 88: kQPositionHead = 1, ! 89: }; ! 90: ! 91: ! 92: #define kSCSIMaxProperties 8 ! 93: ! 94: #define kSCSIPropertyTarget "SCSI Target" /* IOOffset */ ! 95: #define kSCSIPropertyLun "SCSI LUN" /* IOOffset */ ! 96: #define kSCSIPropertyIOUnit "IOUnit" /* IOOffset */ ! 97: #define kSCSIPropertyDeviceTypeID "SCSI Type ID" /* IOOffset */ ! 98: #define kSCSIPropertyDeviceTypeName "SCSI Type Name" /* IOString */ ! 99: #define kSCSIPropertyDeviceRemovable "SCSI Removable Device" /* IOBoolean */ ! 100: #define kSCSIPropertyVendorName "SCSI Vendor Name" /* IOString */ ! 101: #define kSCSIPropertyProductName "SCSI Product Name" /* IOString */ ! 102: #define kSCSIPropertyProductRevision "SCSI Product Revision" /* IOString */ ! 103: ! 104: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.