|
|
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.