Root/
Source at commit 1580 created 12 years 9 months ago. By blackosx, Attempted to enable 'exclusive' choices in auto generated boot options, but it's not working at present. I've added notes to remind me to look again at some point. | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 1998-2001 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 | #ifndef _IOKIT_IOFIREWIREAVCCONSTS_H␊ |
23 | #define _IOKIT_IOFIREWIREAVCCONSTS_H␊ |
24 | ␊ |
25 | // Fields of AVC frame␊ |
26 | typedef enum {␊ |
27 | kAVCCommandResponse = 0,␊ |
28 | kAVCAddress = 1,␊ |
29 | kAVCOpcode = 2,␊ |
30 | kAVCOperand0 = 3,␊ |
31 | kAVCOperand1 = 4,␊ |
32 | kAVCOperand2 = 5,␊ |
33 | kAVCOperand3 = 6,␊ |
34 | kAVCOperand4 = 7,␊ |
35 | kAVCOperand5 = 8,␊ |
36 | kAVCOperand6 = 9,␊ |
37 | kAVCOperand7 = 10,␊ |
38 | kAVCOperand8 = 11␊ |
39 | } IOAVCFrameFields;␊ |
40 | ␊ |
41 | // Command/Response values␊ |
42 | typedef enum {␊ |
43 | kAVCControlCommand = 0x00,␊ |
44 | kAVCStatusInquiryCommand = 0x01,␊ |
45 | kAVCSpecificInquiryCommand␉␉␉␉= 0x02,␊ |
46 | kAVCNotifyCommand␉␉␉␉␉␉= 0x03,␊ |
47 | kAVCGeneralInquiryCommand␉␉␉␉= 0x04,␊ |
48 | kAVCNotImplementedStatus␉␉␉␉= 0x08,␊ |
49 | kAVCAcceptedStatus␉␉␉␉␉␉= 0x09,␊ |
50 | kAVCRejectedStatus␉␉␉␉␉␉= 0x0a,␊ |
51 | kAVCInTransitionStatus␉␉␉␉␉= 0x0b,␊ |
52 | kAVCImplementedStatus␉␉␉␉␉= 0x0c,␊ |
53 | kAVCChangedStatus␉␉␉␉␉␉= 0x0d,␊ |
54 | kAVCInterimStatus␉␉␉␉␉␉= 0x0f␊ |
55 | } IOAVCCommandResponse;␊ |
56 | ␊ |
57 | // Opcodes␊ |
58 | typedef enum {␊ |
59 | ␊ |
60 | // Unit commands␊ |
61 | kAVCPlugInfoOpcode␉␉␉␉␉␉= 0x02,␊ |
62 | kAVCOutputPlugSignalFormatOpcode␉␉= 0x18,␊ |
63 | kAVCInputPlugSignalFormatOpcode␉␉␉= 0x19,␊ |
64 | kAVCUnitInfoOpcode␉␉␉␉␉␉= 0x30,␊ |
65 | kAVCSubunitInfoOpcode␉␉␉␉␉= 0x31,␊ |
66 | kAVCConnectionsOpcode␉␉␉␉␉= 0x22,␊ |
67 | kAVCConnectOpcode␉␉␉␉␉␉= 0x24,␊ |
68 | kAVCDisconnectOpcode␉␉␉␉␉= 0x25,␊ |
69 | kAVCPowerOpcode␉␉␉␉␉␉␉= 0xB2,␊ |
70 | ␉kAVCSignalSourceOpcode␉␉␉␉␉= 0x1A,␊ |
71 | ␉␊ |
72 | // Vendor dependent commands␊ |
73 | kAVCVendorDependentOpcode␉␉␉␉= 0x00,␊ |
74 | ␊ |
75 | // Subunit commands␊ |
76 | kAVCOutputSignalModeOpcode = 0x78,␊ |
77 | kAVCInputSignalModeOpcode = 0x79, ␊ |
78 | kAVCSignalModeSD525_60 = 0x00,␊ |
79 | kAVCSignalModeSDL525_60 = 0x04,␊ |
80 | kAVCSignalModeHD1125_60 = 0x08,␊ |
81 | kAVCSignalModeSD625_50 = 0x80, ␊ |
82 | kAVCSignalModeSDL625_50 = 0x84, ␊ |
83 | kAVCSignalModeHD1250_50 = 0x88,␊ |
84 | kAVCSignalModeDVCPro525_60␉␉␉␉= 0x78,␊ |
85 | kAVCSignalModeDVCPro625_50␉␉␉␉= 0xf8,␊ |
86 | ␊ |
87 | kAVCSignalModeDummyOperand = 0xff,␊ |
88 | kAVCSignalModeMask_50␉␉␉␉␉= 0x80,␊ |
89 | kAVCSignalModeMask_STYPE␉␉␉␉= 0x7c, ␊ |
90 | kAVCSignalModeMask_SDL␉␉␉␉␉= 0x04, ␊ |
91 | kAVCSignalModeMask_DVCPro25␉␉␉␉= 0x78 ␊ |
92 | ␊ |
93 | } IOAVCOpcodes;␊ |
94 | ␊ |
95 | // Unit/Subunit types␊ |
96 | typedef enum {␊ |
97 | kAVCVideoMonitor␉␉␉␉␉␉= 0x00,␊ |
98 | kAVCAudio␉␉␉␉␉␉␉␉= 0x01,␊ |
99 | kAVCPrinter␉␉␉␉␉␉␉␉= 0x02,␊ |
100 | kAVCDiskRecorder␉␉␉␉␉␉= 0x03,␊ |
101 | kAVCTapeRecorder␉␉␉␉␉␉= 0x04,␊ |
102 | kAVCTuner␉␉␉␉␉␉␉␉= 0x05,␊ |
103 | kAVCVideoCamera␉␉␉␉␉␉␉= 0x07,␊ |
104 | kAVCCameraStorage␉␉␉␉␉␉= 0x0b,␊ |
105 | kAVCVendorUnique␉␉␉␉␉␉= 0x1c,␊ |
106 | kAVCNumSubUnitTypes␉␉␉␉␉␉= 0x20␊ |
107 | } IOAVCUnitTypes;␊ |
108 | ␊ |
109 | #define kAVCAllOpcodes 0xFF␊ |
110 | #define kAVCAllSubunitsAndUnit 0xEE␊ |
111 | #define kAVCMaxNumPlugs 31␊ |
112 | #define kAVCAnyAvailableIsochPlug 0x7F␊ |
113 | #define kAVCAnyAvailableExternalPlug 0xFF␊ |
114 | #define kAVCAnyAvailableSubunitPlug 0xFF␊ |
115 | #define kAVCMultiplePlugs 0xFD␊ |
116 | #define kAVCInvalidPlug 0xFE␊ |
117 | ␊ |
118 | ␊ |
119 | #define IOAVCAddress(type, id) (((type) << 3) | (id))␊ |
120 | #define kAVCUnitAddress 0xff␊ |
121 | #define IOAVCType(address) ((address) >> 3)␊ |
122 | #define IOAVCId(address) ((address) & 0x7)␊ |
123 | ␊ |
124 | // Macros for Plug Control Register field manipulation␊ |
125 | ␊ |
126 | // Master control registers␊ |
127 | #define kIOFWPCRDataRate FWBitRange(0,1)␊ |
128 | #define kIOFWPCRDataRatePhase FWBitRangePhase(0,1)␊ |
129 | #define kIOFWPCRExtension FWBitRange(8,15)␊ |
130 | #define kIOFWPCRExtensionPhase FWBitRangePhase(8,15)␊ |
131 | #define kIOFWPCRNumPlugs FWBitRange(27,31)␊ |
132 | #define kIOFWPCRNumPlugsPhase FWBitRangePhase(27,31)␊ |
133 | ␊ |
134 | // master output register␊ |
135 | #define kIOFWPCRBroadcastBase FWBitRange(2,7)␊ |
136 | #define kIOFWPCRBroadcastBasePhase FWBitRangePhase(2,7)␊ |
137 | ␊ |
138 | // plug registers␊ |
139 | #define kIOFWPCROnline FWBitRange(0,0)␊ |
140 | #define kIOFWPCROnlinePhase FWBitRangePhase(0,0)␊ |
141 | #define kIOFWPCRBroadcast FWBitRange(1,1)␊ |
142 | #define kIOFWPCRBroadcastPhase FWBitRangePhase(1,1)␊ |
143 | #define kIOFWPCRP2PCount FWBitRange(2,7)␊ |
144 | #define kIOFWPCRP2PCountPhase FWBitRangePhase(2,7)␊ |
145 | #define kIOFWPCRChannel FWBitRange(10,15)␊ |
146 | #define kIOFWPCRChannelPhase FWBitRangePhase(10,15)␊ |
147 | ␊ |
148 | // Extra fields for output plug registers␊ |
149 | #define kIOFWPCROutputDataRate FWBitRange(16,17)␊ |
150 | #define kIOFWPCROutputDataRatePhase FWBitRangePhase(16,17)␊ |
151 | #define kIOFWPCROutputOverhead FWBitRange(18,21)␊ |
152 | #define kIOFWPCROutputOverheadPhase FWBitRangePhase(18,21)␊ |
153 | #define kIOFWPCROutputPayload FWBitRange(22,31)␊ |
154 | #define kIOFWPCROutputPayloadPhase FWBitRangePhase(22,31)␊ |
155 | ␊ |
156 | // async plug numbers␊ |
157 | ␊ |
158 | enum␊ |
159 | {␊ |
160 | ␉kFWAVCAsyncPlug0 ␉= 0xa0,␊ |
161 | ␉kFWAVCAsyncPlug1 ␉= 0xa1,␊ |
162 | ␉kFWAVCAsyncPlug2 ␉= 0xa2,␊ |
163 | ␉kFWAVCAsyncPlug3 ␉= 0xa3,␊ |
164 | ␉kFWAVCAsyncPlug4 ␉= 0xa4,␊ |
165 | ␉kFWAVCAsyncPlug5 ␉= 0xa5,␊ |
166 | ␉kFWAVCAsyncPlug6 ␉= 0xa6,␊ |
167 | ␉kFWAVCAsyncPlug7 ␉= 0xa7,␊ |
168 | ␉kFWAVCAsyncPlug8 ␉= 0xa8,␊ |
169 | ␉kFWAVCAsyncPlug9 ␉= 0xa9,␊ |
170 | ␉kFWAVCAsyncPlug10 ␉= 0xa1,␊ |
171 | ␉kFWAVCAsyncPlug11␉= 0xab,␊ |
172 | ␉kFWAVCAsyncPlug12 ␉= 0xac,␊ |
173 | ␉kFWAVCAsyncPlug13␉= 0xad,␊ |
174 | ␉kFWAVCAsyncPlug14␉= 0xae,␊ |
175 | ␉kFWAVCAsyncPlug15 ␉= 0xaf,␊ |
176 | ␉kFWAVCAsyncPlug16 ␉= 0xb0,␊ |
177 | ␉kFWAVCAsyncPlug17 ␉= 0xb1,␊ |
178 | ␉kFWAVCAsyncPlug18␉= 0xb2,␊ |
179 | ␉kFWAVCAsyncPlug19 ␉= 0xb3,␊ |
180 | ␉kFWAVCAsyncPlug20 ␉= 0xb4,␊ |
181 | ␉kFWAVCAsyncPlug21 ␉= 0xb5,␊ |
182 | ␉kFWAVCAsyncPlug22 ␉= 0xb6,␊ |
183 | ␉kFWAVCAsyncPlug23 ␉= 0xb7,␊ |
184 | ␉kFWAVCAsyncPlug24 ␉= 0xb8,␊ |
185 | ␉kFWAVCAsyncPlug25 ␉= 0xb9,␊ |
186 | ␉kFWAVCAsyncPlug26 ␉= 0xba,␊ |
187 | ␉kFWAVCAsyncPlug27 ␉= 0xbb,␊ |
188 | ␉kFWAVCAsyncPlug28 ␉= 0xbc,␊ |
189 | ␉kFWAVCAsyncPlug29 ␉= 0xbd,␊ |
190 | ␉kFWAVCAsyncPlug30␉= 0xbe,␊ |
191 | ␉kFWAVCAsyncPlugAny␉= 0xbf␊ |
192 | };␊ |
193 | ␊ |
194 | enum␊ |
195 | {␊ |
196 | kFWAVCStateBusSuspended ␉= 0,␊ |
197 | kFWAVCStateBusResumed ␉␉= 1,␊ |
198 | kFWAVCStatePlugReconnected ␉= 2,␊ |
199 | kFWAVCStatePlugDisconnected = 3,␊ |
200 | kFWAVCStateDeviceRemoved␉= 4␊ |
201 | };␊ |
202 | ␊ |
203 | enum␊ |
204 | {␊ |
205 | kFWAVCConsumerMode_MORE␉␉= 1,␊ |
206 | kFWAVCConsumerMode_LAST␉␉= 4,␊ |
207 | kFWAVCConsumerMode_LESS␉␉= 5,␊ |
208 | kFWAVCConsumerMode_JUNK␉␉= 6,␊ |
209 | kFWAVCConsumerMode_LOST␉␉= 7␊ |
210 | };␊ |
211 | ␊ |
212 | enum␊ |
213 | {␊ |
214 | kFWAVCProducerMode_SEND␉␉= 5,␊ |
215 | kFWAVCProducerMode_TOSS␉␉= 7␊ |
216 | };␊ |
217 | ␊ |
218 | ␊ |
219 | typedef enum␊ |
220 | {␊ |
221 | ␉IOFWAVCPlugSubunitSourceType,␊ |
222 | ␉IOFWAVCPlugSubunitDestType,␊ |
223 | ␉IOFWAVCPlugIsochInputType,␊ |
224 | ␉IOFWAVCPlugIsochOutputType,␊ |
225 | ␉IOFWAVCPlugAsynchInputType,␊ |
226 | ␉IOFWAVCPlugAsynchOutputType,␊ |
227 | ␉IOFWAVCPlugExternalInputType,␊ |
228 | ␉IOFWAVCPlugExternalOutputType␊ |
229 | } IOFWAVCPlugTypes;␊ |
230 | ␊ |
231 | typedef enum␊ |
232 | {␊ |
233 | ␉kIOFWAVCSubunitPlugMsgConnected,␊ |
234 | ␉kIOFWAVCSubunitPlugMsgDisconnected,␊ |
235 | ␉kIOFWAVCSubunitPlugMsgConnectedPlugModified,␊ |
236 | ␉kIOFWAVCSubunitPlugMsgSignalFormatModified␊ |
237 | } IOFWAVCSubunitPlugMessages;␊ |
238 | ␊ |
239 | // Some plug signal formats␊ |
240 | #define kAVCPlugSignalFormatNTSCDV 0x80000000␊ |
241 | #define kAVCPlugSignalFormatPalDV 0x80800000 ␊ |
242 | #define kAVCPlugSignalFormatMPEGTS 0xA0000000␊ |
243 | ␊ |
244 | // Possible states of an AVCAsynchronousCommand␊ |
245 | typedef enum␊ |
246 | {␊ |
247 | ␉kAVCAsyncCommandStatePendingRequest,␊ |
248 | ␉kAVCAsyncCommandStateRequestSent,␊ |
249 | ␉kAVCAsyncCommandStateRequestFailed,␊ |
250 | ␉kAVCAsyncCommandStateWaitingForResponse,␊ |
251 | ␉kAVCAsyncCommandStateReceivedInterimResponse,␊ |
252 | ␉kAVCAsyncCommandStateReceivedFinalResponse,␊ |
253 | ␉kAVCAsyncCommandStateTimeOutBeforeResponse,␊ |
254 | ␉kAVCAsyncCommandStateBusReset,␊ |
255 | ␉kAVCAsyncCommandStateOutOfMemory,␊ |
256 | ␉kAVCAsyncCommandStateCanceled␊ |
257 | } IOFWAVCAsyncCommandState;␊ |
258 | ␊ |
259 | #endif // _IOKIT_IOFIREWIREAVCCONSTS_H␊ |
260 |