1/*
2 * Copyright (c) 1998-2013 Apple Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24#ifndef _IOKIT_IO_STORAGE_PROTOCOL_CHARACTERISTICS_H_
25#define _IOKIT_IO_STORAGE_PROTOCOL_CHARACTERISTICS_H_
26
27
28/*
29 *	Protocol Characteristics - Characteristics defined for protocols.
30 */
31
32
33/*!
34@defined kIOPropertyProtocolCharacteristicsKey
35@discussion This key is used to define Protocol Characteristics for a particular
36protocol and it has an associated dictionary which lists the
37protocol characteristics.
38
39Requirement: Mandatory
40
41Example:
42<pre>
43@textblock
44<dict>
45	<key>Protocol Characteristics</key>
46	<dict>
47		<key>Physical Interconnect</key>
48		<string>ATAPI</string>
49		<key>Physical Interconnect Location</key>
50		<string>Internal</string>
51	</dict>
52</dict>
53@/textblock
54</pre>
55*/
56#define	kIOPropertyProtocolCharacteristicsKey		"Protocol Characteristics"
57
58
59/*!
60@defined kIOPropertySCSIInitiatorIdentifierKey
61@discussion An identifier that will uniquely identify this SCSI Initiator for the
62SCSI Domain.
63
64Requirement: Mandatory for SCSI Parallel Interface, SAS,
65and Fibre Channel Interface.
66
67Example:
68<pre>
69@textblock
70<dict>
71	<key>Protocol Characteristics</key>
72	<dict>
73		<key>Physical Interconnect</key>
74		<string>SCSI Parallel Interface</string>
75		<key>Physical Interconnect Location</key>
76		<string>Internal</string>
77		<key>SCSI Initiator Identifier</key>
78		<integer>7</integer>
79	</dict>
80</dict>
81@/textblock
82</pre>
83*/
84#define kIOPropertySCSIInitiatorIdentifierKey		"SCSI Initiator Identifier"
85
86
87/*!
88@defined kIOPropertySCSIDomainIdentifierKey
89@discussion An identifier that will uniquely identify this SCSI Domain for the
90Physical Interconnect type. This identifier is only guaranteed to be unique for
91any given Physical Interconnect and is not guaranteed to be the same across
92restarts or shutdowns.
93
94Requirement: Mandatory for SCSI Parallel Interface and Fibre Channel Interface.
95
96Example:
97<pre>
98@textblock
99<dict>
100	<key>Protocol Characteristics</key>
101	<dict>
102		<key>Physical Interconnect</key>
103		<string>SCSI Parallel Interface</string>
104		<key>Physical Interconnect Location</key>
105		<string>Internal</string>
106		<key>SCSI Domain Identifier</key>
107		<integer>0</integer>
108	</dict>
109</dict>
110@/textblock
111</pre>
112*/
113#define kIOPropertySCSIDomainIdentifierKey			"SCSI Domain Identifier"
114
115
116/*!
117@defined kIOPropertySCSITargetIdentifierKey
118@discussion This is the SCSI Target Identifier for a given SCSI Target Device.
119
120Requirement: Mandatory for SCSI Parallel Interface and Fibre Channel Interface.
121
122Example:
123<pre>
124@textblock
125<dict>
126	<key>Protocol Characteristics</key>
127	<dict>
128		<key>Physical Interconnect</key>
129		<string>SCSI Parallel Interface</string>
130		<key>Physical Interconnect Location</key>
131		<string>Internal</string>
132		<key>SCSI Target Identifier</key>
133		<integer>3</integer>
134	</dict>
135</dict>
136@/textblock
137</pre>
138*/
139#define kIOPropertySCSITargetIdentifierKey			"SCSI Target Identifier"
140
141
142/*!
143@defined kIOPropertySCSILogicalUnitNumberKey
144@discussion This key is the SCSI Logical Unit Number for the device server
145controlled by the driver.
146
147Requirement: Mandatory for SCSI Parallel Interface, SAS, and Fibre Channel Interface.
148
149Example:
150<pre>
151@textblock
152<dict>
153	<key>Protocol Characteristics</key>
154	<dict>
155		<key>Physical Interconnect</key>
156		<string>SCSI Parallel Interface</string>
157		<key>Physical Interconnect Location</key>
158		<string>Internal</string>
159		<key>SCSI Logical Unit Number</key>
160		<integer>2</integer>
161	</dict>
162</dict>
163@/textblock
164</pre>
165*/
166#define kIOPropertySCSILogicalUnitNumberKey			"SCSI Logical Unit Number"
167
168
169/*!
170@defined kIOPropertySASAddressKey
171@discussion This key is the unique 64-bit SAS Address for the device server
172node located at this port, or for the initiating host port.
173
174Requirement: Mandatory for SAS.
175
176Example:
177<pre>
178@textblock
179<dict>
180	<key>Protocol Characteristics</key>
181	<dict>
182		<key>Physical Interconnect</key>
183		<string>SAS</string>
184		<key>Physical Interconnect Location</key>
185		<string>External</string>
186		<key>SAS Address</key>
187		<data>0011223344556677</data>
188	</dict>
189</dict>
190@/textblock
191</pre>
192
193Example2:
194<pre>
195@textblock
196<dict>
197	<key>Controller Characteristics</key>
198	<dict>
199		<key>SAS Address</key>
200		<data>0011223344556677</data>
201	</dict>
202</dict>
203@/textblock
204</pre>
205*/
206#define kIOPropertySASAddressKey					"SAS Address"
207
208
209/*!
210@defined kIOPropertySCSIPortIdentifierKey
211@discussion This key is the unique port identifier for the device server
212node located at this port, or for the initiating host port.  The format for
213this data is allowed to be vendor-specific, as long as it is guaranteed to
214be unique.  Length is arbitrary, to allow for itnerfaces with non-standard
215identifier rules.  It is recommended to have this be a copy of an existing
216standard unique identifier for this port, should one  already exist for your
217interface type
218
219Requirement: Mandatory.
220
221Example:
222<pre>
223@textblock
224<dict>
225	<key>Protocol Characteristics</key>
226	<dict>
227		<key>Physical Interconnect</key>
228		<string>Fibre Channel Interface</string>
229		<key>Physical Interconnect Location</key>
230		<string>External</string>
231		<key>Node World Wide Name</key>
232		<data>0011223344556677</data>
233		<key>Unique SCSI Port Identifier</key>
234		<data>0011223344556677</data>
235	</dict>
236</dict>
237@/textblock
238</pre>
239
240Example2:
241<pre>
242@textblock
243<dict>
244	<key>Controller Characteristics</key>
245	<dict>
246		<key>Unique SCSI Port Identifier</key>
247		<data>0011223344556677</data>
248	</dict>
249</dict>
250@/textblock
251</pre>
252*/
253#define kIOPropertySCSIPortIdentifierKey		"Unique SCSI Port Identifier"
254
255
256/*!
257@defined kIOPropertyFibreChannelNodeWorldWideNameKey
258@discussion This key is the unique 64-bit World Wide Name for the device server
259node located at this port, or for the initiating host port.
260
261Requirement: Mandatory for Fibre Channel Interface.
262
263Example:
264<pre>
265@textblock
266<dict>
267	<key>Protocol Characteristics</key>
268	<dict>
269		<key>Physical Interconnect</key>
270		<string>Fibre Channel Interface</string>
271		<key>Physical Interconnect Location</key>
272		<string>External</string>
273		<key>Node World Wide Name</key>
274		<data>0011223344556677</data>
275	</dict>
276</dict>
277@/textblock
278</pre>
279
280Example2:
281<pre>
282@textblock
283<dict>
284	<key>Controller Characteristics</key>
285	<dict>
286		<key>Node World Wide Name</key>
287		<data>0011223344556677</data>
288	</dict>
289</dict>
290@/textblock
291</pre>
292*/
293#define kIOPropertyFibreChannelNodeWorldWideNameKey		"Node World Wide Name"
294
295
296/*!
297@defined kIOPropertyFibreChannelPortWorldWideNameKey
298@discussion This key is the unique 64-bit World Wide Name for the port.
299
300Requirement: Mandatory for Fibre Channel Interface.
301
302Example:
303<pre>
304@textblock
305<dict>
306	<key>Protocol Characteristics</key>
307	<dict>
308		<key>Physical Interconnect</key>
309		<string>Fibre Channel Interface</string>
310		<key>Physical Interconnect Location</key>
311		<string>External</string>
312		<key>Port World Wide Name</key>
313		<data>0011223344556677</data>
314	</dict>
315</dict>
316@/textblock
317</pre>
318
319Example2:
320<pre>
321@textblock
322<dict>
323	<key>Controller Characteristics</key>
324	<dict>
325		<key>Port World Wide Name</key>
326		<data>0011223344556677</data>
327	</dict>
328</dict>
329@/textblock
330</pre>
331*/
332#define kIOPropertyFibreChannelPortWorldWideNameKey		"Port World Wide Name"
333
334
335/*!
336@defined kIOPropertyFibreChannelAddressIdentifierKey
337@discussion This key is the 24-bit Address Identifier (S_ID or D_ID) as
338defined in the FC-FS specification. It contains the address identifier
339of the source or destination Nx_Port.
340
341Note: This value can change. It is not a static value.
342
343Requirement: Optional (only necessary for Fibre Channel Interface).
344
345Example:
346<pre>
347@textblock
348<dict>
349	<key>Protocol Characteristics</key>
350	<dict>
351		<key>Physical Interconnect</key>
352		<string>Fibre Channel Interface</string>
353		<key>Physical Interconnect Location</key>
354		<string>External</string>
355		<key>Address Identifier</key>
356		<data>001122</data>
357	</dict>
358</dict>
359@/textblock
360</pre>
361
362Example2:
363<pre>
364@textblock
365<dict>
366	<key>Controller Characteristics</key>
367	<dict>
368		<key>Address Identifier</key>
369		<data>001122</data>
370	</dict>
371</dict>
372@/textblock
373</pre>
374*/
375#define kIOPropertyFibreChannelAddressIdentifierKey		"Address Identifier"
376
377
378/*!
379@defined kIOPropertyFibreChannelALPAKey
380@discussion This key is the 8-bit Arbitrated Loop Physical Address
381(AL_PA) value as defined in the FC-AL-2 specification.
382
383Note: This value can change. It is not a static value.
384
385Requirement: Optional (only necessary for Fibre Channel Interface).
386
387Example:
388<pre>
389@textblock
390<dict>
391	<key>Protocol Characteristics</key>
392	<dict>
393		<key>Physical Interconnect</key>
394		<string>Fibre Channel Interface</string>
395		<key>Physical Interconnect Location</key>
396		<string>External</string>
397		<key>AL_PA</key>
398		<data>04</data>
399	</dict>
400</dict>
401@/textblock
402</pre>
403
404Example2:
405<pre>
406@textblock
407<dict>
408	<key>Controller Characteristics</key>
409	<dict>
410		<key>AL_PA</key>
411		<data>04</data>
412	</dict>
413</dict>
414@/textblock
415</pre>
416*/
417#define kIOPropertyFibreChannelALPAKey					"AL_PA"
418
419
420/*!
421@defined kIOPropertyPortStatusKey
422@discussion This key is associated with the current port
423status of the physical link. The port status is either
424"Link Established", "No Link Established", or "Link Failed".
425
426Note: This value can change when the port status changes. It
427is not a static value.
428
429Requirement: Optional for any interconnect.
430
431Example:
432<pre>
433@textblock
434<dict>
435	<key>Controller Characteristics</key>
436	<dict>
437		<key>Port Status</key>
438		<string>Link Established</string>
439	</dict>
440</dict>
441@/textblock
442</pre>
443*/
444#define kIOPropertyPortStatusKey						"Port Status"
445
446
447/*!
448@defined kIOPropertyPortSpeedKey
449@discussion This key is associated with the current port
450speed. The port speed can be any valid speed for the interconnect.
451
452Note: This value can change. It is not a static value.
453
454Requirement: Optional for any interconnect.
455
456Example:
457<pre>
458@textblock
459<dict>
460	<key>Controller Characteristics</key>
461	<dict>
462		<key>Port Speed</key>
463		<string>Automatic (1 Gigabit)</string>
464	</dict>
465</dict>
466@/textblock
467</pre>
468*/
469#define kIOPropertyPortSpeedKey							"Port Speed"
470
471
472/*!
473@defined kIOPropertyPortTopologyKey
474@discussion This key is associated with the current port
475topology. The port topology can be any valid topology for the interconnect.
476
477Note: This value can change. It is not a static value.
478
479Requirement: Optional for any interconnect.
480
481Example:
482<pre>
483@textblock
484<dict>
485	<key>Controller Characteristics</key>
486	<dict>
487		<key>Port Topology</key>
488		<string>Automatic (N_Port)</string>
489	</dict>
490</dict>
491@/textblock
492</pre>
493*/
494#define kIOPropertyPortTopologyKey						"Port Topology"
495
496
497/*!
498@defined kIOPropertyPortDescriptionKey
499@discussion This key is associated with an human
500readable port description. Examples include
501"Channel A", "Port 1", etc.
502
503Requirement: Optional for all interconnects.
504
505Example:
506<pre>
507@textblock
508<dict>
509	<key>Controller Characteristics</key>
510	<dict>
511		<key>Port Description</key>
512		<string>Channel A</string>
513	</dict>
514</dict>
515@/textblock
516</pre>
517*/
518#define kIOPropertyPortDescriptionKey					"Port Description"
519
520
521/*!
522@defined kIOPropertySCSIParallelSignalingTypeKey
523@discussion This key is associated with the signaling type
524used for this SCSI Parallel bus. Valid values include
525"High Voltage Differential", "Low Voltage Differential",
526and "Single Ended".
527
528Requirement: Optional for SCSI Parallel Interface. Not
529defined for any other physical interconnect.
530
531Example:
532<pre>
533@textblock
534<dict>
535	<key>Controller Characteristics</key>
536	<dict>
537		<key>SCSI Parallel Signaling Type</key>
538		<string>High Voltage Differential</string>
539	</dict>
540</dict>
541@/textblock
542</pre>
543*/
544#define kIOPropertySCSIParallelSignalingTypeKey			"SCSI Parallel Signaling Type"
545
546
547/*!
548@defined kIOPropertyFibreChannelCableDescriptionKey
549@discussion This key is associated with the cabling type
550used for this Fibre Channel port. Valid values include
551"Copper" and "Fiber Optic".
552
553Requirement: Optional for Fibre Channel Interface. Not
554defined for any other physical interconnect.
555
556Example:
557<pre>
558@textblock
559<dict>
560	<key>Controller Characteristics</key>
561	<dict>
562		<key>Fibre Channel Cabling Type</key>
563		<string>Copper</string>
564	</dict>
565</dict>
566@/textblock
567</pre>
568*/
569#define kIOPropertyFibreChannelCableDescriptionKey		"Fibre Channel Cabling Type"
570
571
572/*!
573@defined kIOPropertyPhysicalInterconnectTypeKey
574@discussion This key is used to define the Physical Interconnect to which
575a device is attached.
576
577Requirement: Mandatory.
578
579Example:
580<pre>
581@textblock
582<dict>
583	<key>Protocol Characteristics</key>
584	<dict>
585		<key>Physical Interconnect</key>
586		<string>SCSI Parallel Interface</string>
587		<key>Physical Interconnect Location</key>
588		<string>Internal</string>
589	</dict>
590</dict>
591@/textblock
592</pre>
593*/
594#define kIOPropertyPhysicalInterconnectTypeKey		"Physical Interconnect"
595
596
597/*!
598@defined kIOPropertyPhysicalInterconnectLocationKey
599@discussion This key is used to define the Physical Interconnect
600Location.
601
602Requirement: Mandatory.
603
604Example:
605<pre>
606@textblock
607<dict>
608	<key>Protocol Characteristics</key>
609	<dict>
610		<key>Physical Interconnect</key>
611		<string>SCSI Parallel Interface</string>
612		<key>Physical Interconnect Location</key>
613		<string>Internal</string>
614	</dict>
615</dict>
616@/textblock
617</pre>
618*/
619#define kIOPropertyPhysicalInterconnectLocationKey	"Physical Interconnect Location"
620
621
622/*!
623@defined kIOPropertySCSIProtocolMultiInitKey
624@discussion This protocol characteristics key is used to inform the system
625that the protocol supports having multiple devices that act as initiators.
626
627Requirement: Optional.
628
629Example:
630<pre>
631@textblock
632<dict>
633	<key>Protocol Characteristics</key>
634	<dict>
635		<key>Physical Interconnect</key>
636		<string>Fibre Channel Interface</string>
637		<key>Physical Interconnect Location</key>
638		<string>External</string>
639		<key>Multiple Initiators</key>
640		<string>True</string>
641	</dict>
642</dict>
643@/textblock
644</pre>
645*/
646#define kIOPropertySCSIProtocolMultiInitKey			"Multiple Initiators"
647
648
649/*
650 *	Values - Values for the characteristics defined above.
651 */
652
653
654/*!
655@defined kIOPropertyInternalKey
656@discussion This key defines the value of Internal for the key
657kIOPropertyPhysicalInterconnectLocationKey. If the device is
658connected to an internal bus, this key should be set.
659
660Example:
661<pre>
662@textblock
663<dict>
664	<key>Protocol Characteristics</key>
665	<dict>
666		<key>Physical Interconnect</key>
667		<string>ATA</string>
668		<key>Physical Interconnect Location</key>
669		<string>Internal</string>
670	</dict>
671</dict>
672@/textblock
673</pre>
674*/
675#define kIOPropertyInternalKey						"Internal"
676
677
678/*!
679@defined kIOPropertyExternalKey
680@discussion This key defines the value of External for the key
681kIOPropertyPhysicalInterconnectLocationKey. If the device is
682connected to an external bus, this key should be set.
683
684Example:
685<pre>
686@textblock
687<dict>
688	<key>Protocol Characteristics</key>
689	<dict>
690		<key>Physical Interconnect</key>
691		<string>Fibre Channel Interface</string>
692		<key>Physical Interconnect Location</key>
693		<string>External</string>
694	</dict>
695</dict>
696@/textblock
697</pre>
698*/
699#define kIOPropertyExternalKey						"External"
700
701
702/*!
703@defined kIOPropertyInternalExternalKey
704@discussion This key defines the value of Internal/External for the key
705kIOPropertyPhysicalInterconnectLocationKey. If the device is connected
706to a bus and it is indeterminate whether it is internal or external,
707this key should be set.
708
709Example:
710<pre>
711@textblock
712<dict>
713	<key>Protocol Characteristics</key>
714	<dict>
715		<key>Physical Interconnect</key>
716		<string>SCSI Parallel Interface</string>
717		<key>Physical Interconnect Location</key>
718		<string>Internal/External</string>
719	</dict>
720</dict>
721@/textblock
722</pre>
723*/
724#define kIOPropertyInternalExternalKey				"Internal/External"
725
726
727/*!
728@defined kIOPropertyInterconnectFileKey
729@discussion This key defines the value of File for the key
730kIOPropertyPhysicalInterconnectLocationKey. If the device is a file
731that is being represented as a storage device, this key should be set.
732
733NOTE: This key should only be used when the Physical Interconnect is set to
734Virtual Interface.
735
736Example:
737<pre>
738@textblock
739<dict>
740	<key>Protocol Characteristics</key>
741	<dict>
742		<key>Physical Interconnect</key>
743		<string>Virtual Interface</string>
744		<key>Physical Interconnect Location</key>
745		<string>File</string>
746	</dict>
747</dict>
748@/textblock
749</pre>
750*/
751#define kIOPropertyInterconnectFileKey						"File"
752
753
754/*!
755@defined kIOPropertyInterconnectRAMKey
756@discussion This key defines the value of RAM for the key
757kIOPropertyPhysicalInterconnectLocationKey. If the device is system memory
758that is being represented as a storage device, this key should be set.
759
760NOTE: This key should only be used when the Physical Interconnect is set to
761Virtual Interface.
762
763Example:
764<pre>
765@textblock
766<dict>
767	<key>Protocol Characteristics</key>
768	<dict>
769		<key>Physical Interconnect</key>
770		<string>Virtual Interface</string>
771		<key>Physical Interconnect Location</key>
772		<string>RAM</string>
773	</dict>
774</dict>
775@/textblock
776</pre>
777*/
778#define kIOPropertyInterconnectRAMKey						"RAM"
779
780
781/*!
782@defined kIOPropertyPhysicalInterconnectTypeATA
783@discussion This key defines the value of ATA for the key
784kIOPropertyPhysicalInterconnectTypeKey. If the device is connected
785to an ATA bus, this key should be set.
786
787Example:
788<pre>
789@textblock
790<dict>
791	<key>Protocol Characteristics</key>
792	<dict>
793		<key>Physical Interconnect</key>
794		<string>ATA</string>
795		<key>Physical Interconnect Location</key>
796		<string>Internal</string>
797	</dict>
798</dict>
799@/textblock
800</pre>
801*/
802#define kIOPropertyPhysicalInterconnectTypeATA				"ATA"
803
804
805/*!
806@defined kIOPropertyPhysicalInterconnectTypeSerialATA
807@discussion This key defines the value of SATA for the key
808kIOPropertyPhysicalInterconnectTypeKey. If the device is connected
809to a SATA bus, this key should be set.
810
811Example:
812<pre>
813@textblock
814<dict>
815	<key>Protocol Characteristics</key>
816	<dict>
817		<key>Physical Interconnect</key>
818		<string>SATA</string>
819		<key>Physical Interconnect Location</key>
820		<string>Internal</string>
821	</dict>
822</dict>
823@/textblock
824</pre>
825*/
826#define kIOPropertyPhysicalInterconnectTypeSerialATA		"SATA"
827
828
829/*!
830@defined kIOPropertyPhysicalInterconnectTypeSerialAttachedSCSI
831@discussion This key defines the value of SAS for the key
832kIOPropertyPhysicalInterconnectTypeKey. If the device is connected
833to a SAS bus, this key should be set.
834
835Example:
836<pre>
837@textblock
838<dict>
839	<key>Protocol Characteristics</key>
840	<dict>
841		<key>Physical Interconnect</key>
842		<string>SAS</string>
843		<key>Physical Interconnect Location</key>
844		<string>External</string>
845	</dict>
846</dict>
847@/textblock
848</pre>
849*/
850#define kIOPropertyPhysicalInterconnectTypeSerialAttachedSCSI	"SAS"
851
852
853/*!
854@defined kIOPropertyPhysicalInterconnectTypeATAPI
855@discussion This key defines the value of ATAPI for the key
856kIOPropertyPhysicalInterconnectTypeKey. If the device is connected
857to an ATA bus and follows the ATAPI command specification, this key
858should be set.
859
860Example:
861<pre>
862@textblock
863<dict>
864	<key>Protocol Characteristics</key>
865	<dict>
866		<key>Physical Interconnect</key>
867		<string>ATAPI</string>
868		<key>Physical Interconnect Location</key>
869		<string>Internal</string>
870	</dict>
871</dict>
872@/textblock
873</pre>
874*/
875#define kIOPropertyPhysicalInterconnectTypeATAPI			"ATAPI"
876
877
878/*!
879@defined kIOPropertyPhysicalInterconnectTypeUSB
880@discussion This key defines the value of USB for the key
881kIOPropertyPhysicalInterconnectTypeKey. If the device is connected
882to a USB port, this key should be set.
883
884Example:
885<pre>
886@textblock
887<dict>
888	<key>Protocol Characteristics</key>
889	<dict>
890		<key>Physical Interconnect</key>
891		<string>USB</string>
892		<key>Physical Interconnect Location</key>
893		<string>External</string>
894	</dict>
895</dict>
896@/textblock
897</pre>
898*/
899#define kIOPropertyPhysicalInterconnectTypeUSB				"USB"
900
901
902/*!
903@defined kIOPropertyPhysicalInterconnectTypeFireWire
904@discussion This key defines the value of USB for the key
905kIOPropertyPhysicalInterconnectTypeKey. If the device is connected
906to a FireWire port, this key should be set.
907
908Example:
909<pre>
910@textblock
911<dict>
912	<key>Protocol Characteristics</key>
913	<dict>
914		<key>Physical Interconnect</key>
915		<string>FireWire</string>
916		<key>Physical Interconnect Location</key>
917		<string>External</string>
918	</dict>
919</dict>
920@/textblock
921</pre>
922*/
923#define kIOPropertyPhysicalInterconnectTypeFireWire			"FireWire"
924
925
926/*!
927 @defined kIOPropertyPhysicalInterconnectTypeSecureDigital
928 @discussion This key defines the value of Secure Digital for the key
929 kIOPropertyPhysicalInterconnectTypeSecureDigital. If the device is
930 connected to a Secure Digital port and follows the Secure Digital
931 specification, this key should be set.
932
933 Example:
934 <pre>
935 @textblock
936 <dict>
937    <key>Protocol Characteristics</key>
938    <dict>
939        <key>Physical Interconnect</key>
940        <string>Secure Digital</string>
941        <key>Physical Interconnect Location</key>
942        <string>Internal</string>
943    </dict>
944 </dict>
945 @/textblock
946 </pre>
947 */
948#define kIOPropertyPhysicalInterconnectTypeSecureDigital	"Secure Digital"
949
950
951/*!
952@defined kIOPropertyPhysicalInterconnectTypeSCSIParallel
953@discussion This key defines the value of SCSI Parallel Interface for the key
954kIOPropertyPhysicalInterconnectTypeKey. If the device is connected
955to a SCSI Parallel port, this key should be set.
956
957Example:
958<pre>
959@textblock
960<dict>
961	<key>Protocol Characteristics</key>
962	<dict>
963		<key>Physical Interconnect</key>
964		<string>SCSI Parallel Interface</string>
965		<key>Physical Interconnect Location</key>
966		<string>External</string>
967	</dict>
968</dict>
969@/textblock
970</pre>
971*/
972#define kIOPropertyPhysicalInterconnectTypeSCSIParallel		"SCSI Parallel Interface"
973
974
975/*!
976@defined kIOPropertyPhysicalInterconnectTypeFibreChannel
977@discussion This key defines the value of Fibre Channel Interface for the key
978kIOPropertyPhysicalInterconnectTypeKey. If the device is connected
979to a Fibre Channel port, this key should be set.
980
981Example:
982<pre>
983@textblock
984<dict>
985	<key>Protocol Characteristics</key>
986	<dict>
987		<key>Physical Interconnect</key>
988		<string>Fibre Channel Interface</string>
989		<key>Physical Interconnect Location</key>
990		<string>External</string>
991	</dict>
992</dict>
993@/textblock
994</pre>
995*/
996#define kIOPropertyPhysicalInterconnectTypeFibreChannel		"Fibre Channel Interface"
997
998
999/*!
1000@defined kIOPropertyPhysicalInterconnectTypeVirtual
1001@discussion This key defines the value of Virtual Interface for the key
1002kIOPropertyPhysicalInterconnectTypeVirtual. If the device is being made to look
1003like a storage device, but is not such in actuality, such as a File or RAM, this
1004key should be set.
1005
1006Example:
1007<pre>
1008@textblock
1009<dict>
1010	<key>Protocol Characteristics</key>
1011	<dict>
1012		<key>Physical Interconnect</key>
1013		<string>Virtual Interface</string>
1014		<key>Physical Interconnect Location</key>
1015		<string>File</string>
1016	</dict>
1017</dict>
1018@/textblock
1019</pre>
1020*/
1021#define kIOPropertyPhysicalInterconnectTypeVirtual		"Virtual Interface"
1022
1023
1024/*!
1025@defined kIOPropertyPhysicalInterconnectTypePCI
1026@discussion This key defines the value of PCI for the key
1027kIOPropertyPhysicalInterconnectTypePCI. If the device is connected
1028via PCI, this key should be set.
1029
1030Example:
1031<pre>
1032@textblock
1033<dict>
1034	<key>Protocol Characteristics</key>
1035	<dict>
1036		<key>Physical Interconnect</key>
1037		<string>PCI</string>
1038		<key>Physical Interconnect Location</key>
1039		<string>Internal</string>
1040	</dict>
1041</dict>
1042@/textblock
1043</pre>
1044*/
1045#define kIOPropertyPhysicalInterconnectTypePCI		"PCI"
1046
1047
1048/*!
1049@defined kIOPropertyPortStatusLinkEstablishedKey
1050@discussion This key defines the value of Link Established for the key
1051kIOPropertyPortStatusKey.
1052
1053Example:
1054<pre>
1055@textblock
1056<dict>
1057	<key>Controller Characteristics</key>
1058	<dict>
1059		<key>Port Status</key>
1060		<string>Link Established</string>
1061	</dict>
1062</dict>
1063@/textblock
1064</pre>
1065*/
1066#define kIOPropertyPortStatusLinkEstablishedKey			"Link Established"
1067
1068
1069/*!
1070@defined kIOPropertyPortStatusNoLinkEstablishedKey
1071@discussion This key defines the value of No Link Established for the key
1072kIOPropertyPortStatusKey.
1073
1074Example:
1075<pre>
1076@textblock
1077<dict>
1078	<key>Controller Characteristics</key>
1079	<dict>
1080		<key>Port Status</key>
1081		<string>No Link Established</string>
1082	</dict>
1083</dict>
1084@/textblock
1085</pre>
1086*/
1087#define kIOPropertyPortStatusNoLinkEstablishedKey		"No Link Established"
1088
1089
1090/*!
1091@defined kIOPropertyPortStatusLinkFailedKey
1092@discussion This key defines the value of Link Failed for the key
1093kIOPropertyPortStatusKey.
1094
1095Example:
1096<pre>
1097@textblock
1098<dict>
1099	<key>Controller Characteristics</key>
1100	<dict>
1101		<key>Port Status</key>
1102		<string>Link Failed</string>
1103	</dict>
1104</dict>
1105@/textblock
1106</pre>
1107*/
1108#define kIOPropertyPortStatusLinkFailedKey				"Link Failed"
1109
1110
1111/*!
1112@defined kIOPropertyPortSpeedAutomaticKey
1113@discussion This key defines the value of Automatic for the key
1114kIOPropertyPortSpeedKey. If the speed of the port is automatically
1115adjusted by the host/device and a definitive speed is not known,
1116this key should be used.
1117
1118Note: This value can change. It is not a static value.
1119
1120Requirement: Optional for any interconnect.
1121
1122Example:
1123<pre>
1124@textblock
1125<dict>
1126	<key>Controller Characteristics</key>
1127	<dict>
1128		<key>Port Speed</key>
1129		<string>Automatic</string>
1130	</dict>
1131</dict>
1132@/textblock
1133</pre>
1134*/
1135#define kIOPropertyPortSpeedAutomaticKey				"Automatic"
1136
1137
1138/*!
1139@defined kIOPropertyPortSpeed1GigabitKey
1140@discussion This key defines the value of 1 Gigabit for the key
1141kIOPropertyPortSpeedKey. If the speed of the port is 1 Gigabit
1142per second and is not automatically determined (i.e. the user
1143configured the port to be exactly this speed),
1144this key should be used.
1145
1146Note: This value can change. It is not a static value.
1147
1148Requirement: Optional for any interconnect.
1149
1150Example:
1151<pre>
1152@textblock
1153<dict>
1154	<key>Controller Characteristics</key>
1155	<dict>
1156		<key>Port Speed</key>
1157		<string>1 Gigabit</string>
1158	</dict>
1159</dict>
1160@/textblock
1161</pre>
1162*/
1163#define kIOPropertyPortSpeed1GigabitKey					"1 Gigabit"
1164
1165/*!
1166@defined kIOPropertyPortSpeed1_5GigabitKey
1167@discussion This key defines the value of 1.5 Gigabit for the key
1168kIOPropertyPortSpeedKey. If the speed of the port is 1.5 Gigabits
1169per second and is not automatically determined (i.e. the user
1170configured the port to be exactly this speed),
1171this key should be used.
1172
1173Note: This value can change. It is not a static value.
1174
1175Requirement: Optional for any interconnect.
1176
1177Example:
1178<pre>
1179@textblock
1180<dict>
1181	<key>Controller Characteristics</key>
1182	<dict>
1183		<key>Port Speed</key>
1184		<string>1.5 Gigabit</string>
1185	</dict>
1186</dict>
1187@/textblock
1188</pre>
1189*/
1190#define kIOPropertyPortSpeed1_5GigabitKey				"1.5 Gigabit"
1191
1192
1193/*!
1194@defined kIOPropertyPortSpeed2GigabitKey
1195@discussion This key defines the value of 2 Gigabit for the key
1196kIOPropertyPortSpeedKey. If the speed of the port is 2 Gigabits
1197per second and is not automatically determined (i.e. the user
1198configured the port to be exactly this speed),
1199this key should be used.
1200
1201Note: This value can change. It is not a static value.
1202
1203Requirement: Optional for any interconnect.
1204
1205Example:
1206<pre>
1207@textblock
1208<dict>
1209	<key>Controller Characteristics</key>
1210	<dict>
1211		<key>Port Speed</key>
1212		<string>2 Gigabit</string>
1213	</dict>
1214</dict>
1215@/textblock
1216</pre>
1217*/
1218#define kIOPropertyPortSpeed2GigabitKey					"2 Gigabit"
1219
1220
1221/*!
1222@defined kIOPropertyPortSpeed3GigabitKey
1223@discussion This key defines the value of 3 Gigabit for the key
1224kIOPropertyPortSpeedKey. If the speed of the port is 3 Gigabits
1225per second and is not automatically determined (i.e. the user
1226configured the port to be exactly this speed),
1227this key should be used.
1228
1229Note: This value can change. It is not a static value.
1230
1231Requirement: Optional for any interconnect.
1232
1233Example:
1234<pre>
1235@textblock
1236<dict>
1237	<key>Controller Characteristics</key>
1238	<dict>
1239		<key>Port Speed</key>
1240		<string>3 Gigabit</string>
1241	</dict>
1242</dict>
1243@/textblock
1244</pre>
1245*/
1246#define kIOPropertyPortSpeed3GigabitKey					"3 Gigabit"
1247
1248
1249/*!
1250@defined kIOPropertyPortSpeed4GigabitKey
1251@discussion This key defines the value of 4 Gigabit for the key
1252kIOPropertyPortSpeedKey. If the speed of the port is 4 Gigabits
1253per second and is not automatically determined (i.e. the user
1254configured the port to be exactly this speed),
1255this key should be used.
1256
1257Note: This value can change. It is not a static value.
1258
1259Requirement: Optional for any interconnect.
1260
1261Example:
1262<pre>
1263@textblock
1264<dict>
1265	<key>Controller Characteristics</key>
1266	<dict>
1267		<key>Port Speed</key>
1268		<string>4 Gigabit</string>
1269	</dict>
1270</dict>
1271@/textblock
1272</pre>
1273*/
1274#define kIOPropertyPortSpeed4GigabitKey					"4 Gigabit"
1275
1276/*!
1277@defined kIOPropertyPortSpeed6GigabitKey
1278@discussion This key defines the value of 6 Gigabit for the key
1279kIOPropertyPortSpeedKey. If the speed of the port is 6 Gigabits
1280per second and is not automatically determined (i.e. the user
1281configured the port to be exactly this speed),
1282this key should be used.
1283
1284Note: This value can change. It is not a static value.
1285
1286Requirement: Optional for any interconnect.
1287
1288Example:
1289<pre>
1290@textblock
1291<dict>
1292	<key>Controller Characteristics</key>
1293	<dict>
1294		<key>Port Speed</key>
1295		<string>6 Gigabit</string>
1296	</dict>
1297</dict>
1298@/textblock
1299</pre>
1300*/
1301#define kIOPropertyPortSpeed6GigabitKey					"6 Gigabit"
1302
1303
1304/*!
1305@defined kIOPropertyPortSpeed8GigabitKey
1306@discussion This key defines the value of 8 Gigabit for the key
1307kIOPropertyPortSpeedKey. If the speed of the port is 8 Gigabits
1308per second and is not automatically determined (i.e. the user
1309configured the port to be exactly this speed),
1310this key should be used.
1311
1312Note: This value can change. It is not a static value.
1313
1314Requirement: Optional for any interconnect.
1315
1316Example:
1317<pre>
1318@textblock
1319<dict>
1320	<key>Controller Characteristics</key>
1321	<dict>
1322		<key>Port Speed</key>
1323		<string>8 Gigabit</string>
1324	</dict>
1325</dict>
1326@/textblock
1327</pre>
1328*/
1329#define kIOPropertyPortSpeed8GigabitKey					"8 Gigabit"
1330
1331
1332/*!
1333@defined kIOPropertyPortSpeed10GigabitKey
1334@discussion This key defines the value of 10 Gigabit for the key
1335kIOPropertyPortSpeedKey. If the speed of the port is 10 Gigabits
1336per second and is not automatically determined (i.e. the user
1337configured the port to be exactly this speed),
1338this key should be used.
1339
1340Note: This value can change. It is not a static value.
1341
1342Requirement: Optional for any interconnect.
1343
1344Example:
1345<pre>
1346@textblock
1347<dict>
1348	<key>Controller Characteristics</key>
1349	<dict>
1350		<key>Port Speed</key>
1351		<string>10 Gigabit</string>
1352	</dict>
1353</dict>
1354@/textblock
1355</pre>
1356*/
1357#define kIOPropertyPortSpeed10GigabitKey				"10 Gigabit"
1358
1359
1360/*!
1361 @defined kIOPropertyPortSpeed12GigabitKey
1362 @discussion This key defines the value of 12 Gigabit for the key
1363 kIOPropertyPortSpeedKey. If the speed of the port is 12 Gigabits
1364 per second and is not automatically determined (i.e. the user
1365 configured the port to be exactly this speed),
1366 this key should be used.
1367
1368 Note: This value can change. It is not a static value.
1369
1370 Requirement: Optional for any interconnect.
1371
1372 Example:
1373 <pre>
1374 @textblock
1375 <dict>
1376 <key>Controller Characteristics</key>
1377 <dict>
1378 <key>Port Speed</key>
1379 <string>12 Gigabit</string>
1380 </dict>
1381 </dict>
1382 @/textblock
1383 </pre>
1384 */
1385#define kIOPropertyPortSpeed12GigabitKey				"12 Gigabit"
1386
1387
1388/*!
1389 @defined kIOPropertyPortSpeed16GigabitKey
1390 @discussion This key defines the value of 16 Gigabit for the key
1391 kIOPropertyPortSpeedKey. If the speed of the port is 16 Gigabits
1392 per second and is not automatically determined (i.e. the user
1393 configured the port to be exactly this speed),
1394 this key should be used.
1395
1396 Note: This value can change. It is not a static value.
1397
1398 Requirement: Optional for any interconnect.
1399
1400 Example:
1401 <pre>
1402 @textblock
1403 <dict>
1404 <key>Controller Characteristics</key>
1405 <dict>
1406 <key>Port Speed</key>
1407 <string>16 Gigabit</string>
1408 </dict>
1409 </dict>
1410 @/textblock
1411 </pre>
1412 */
1413#define kIOPropertyPortSpeed16GigabitKey				"16 Gigabit"
1414
1415
1416/*!
1417 @defined kIOPropertyPortSpeed40GigabitKey
1418 @discussion This key defines the value of 40 Gigabit for the key
1419 kIOPropertyPortSpeedKey. If the speed of the port is 40 Gigabits
1420 per second and is not automatically determined (i.e. the user
1421 configured the port to be exactly this speed),
1422 this key should be used.
1423
1424 Note: This value can change. It is not a static value.
1425
1426 Requirement: Optional for any interconnect.
1427
1428 Example:
1429 <pre>
1430 @textblock
1431 <dict>
1432 <key>Controller Characteristics</key>
1433 <dict>
1434 <key>Port Speed</key>
1435 <string>40 Gigabit</string>
1436 </dict>
1437 </dict>
1438 @/textblock
1439 </pre>
1440 */
1441#define kIOPropertyPortSpeed40GigabitKey				"40 Gigabit"
1442
1443
1444/*!
1445@defined kIOPropertyPortSpeedAutomatic1GigabitKey
1446@discussion This key defines the value of Automatic (1 Gigabit)
1447for the key kIOPropertyPortSpeedKey. If the speed of the port is
14481 Gigabit per second and is automatically determined by host
1449software, this key should be used.
1450
1451Note: This value can change. It is not a static value.
1452
1453Requirement: Optional for any interconnect.
1454
1455Example:
1456<pre>
1457@textblock
1458<dict>
1459	<key>Controller Characteristics</key>
1460	<dict>
1461		<key>Port Speed</key>
1462		<string>Automatic (1 Gigabit)</string>
1463	</dict>
1464</dict>
1465@/textblock
1466</pre>
1467*/
1468#define kIOPropertyPortSpeedAutomatic1GigabitKey		"Automatic (1 Gigabit)"
1469
1470
1471/*!
1472@defined kIOPropertyPortSpeedAutomatic1_5GigabitKey
1473@discussion This key defines the value of Automatic (1.5 Gigabit) for the key
1474kIOPropertyPortSpeedKey. If the speed of the port is
14751.5 Gigabits per second and is automatically determined by host
1476software, this key should be used.
1477
1478Note: This value can change. It is not a static value.
1479
1480Requirement: Optional for any interconnect.
1481
1482Example:
1483<pre>
1484@textblock
1485<dict>
1486	<key>Controller Characteristics</key>
1487	<dict>
1488		<key>Port Speed</key>
1489		<string>Automatic (1.5 Gigabit)</string>
1490	</dict>
1491</dict>
1492@/textblock
1493</pre>
1494*/
1495#define kIOPropertyPortSpeedAutomatic1_5GigabitKey		"Automatic (1.5 Gigabit)"
1496
1497
1498/*!
1499@defined kIOPropertyPortSpeedAutomatic2GigabitKey
1500@discussion This key defines the value of Automatic (2 Gigabit)
1501for the key kIOPropertyPortSpeedKey. If the speed of the port is
15022 Gigabits per second and is automatically determined by host
1503software, this key should be used.
1504
1505Note: This value can change. It is not a static value.
1506
1507Requirement: Optional for any interconnect.
1508
1509Example:
1510<pre>
1511@textblock
1512<dict>
1513	<key>Controller Characteristics</key>
1514	<dict>
1515		<key>Port Speed</key>
1516		<string>Automatic (2 Gigabit)</string>
1517	</dict>
1518</dict>
1519@/textblock
1520</pre>
1521*/
1522#define kIOPropertyPortSpeedAutomatic2GigabitKey		"Automatic (2 Gigabit)"
1523
1524
1525/*!
1526@defined kIOPropertyPortSpeedAutomatic3GigabitKey
1527@discussion This key defines the value of Automatic (3 Gigabit)
1528for the key kIOPropertyPortSpeedKey. If the speed of the port is
15293 Gigabits per second and is automatically determined by host
1530software, this key should be used.
1531
1532Note: This value can change. It is not a static value.
1533
1534Requirement: Optional for any interconnect.
1535
1536Example:
1537<pre>
1538@textblock
1539<dict>
1540	<key>Controller Characteristics</key>
1541	<dict>
1542		<key>Port Speed</key>
1543		<string>Automatic (3 Gigabit)</string>
1544	</dict>
1545</dict>
1546@/textblock
1547</pre>
1548*/
1549#define kIOPropertyPortSpeedAutomatic3GigabitKey		"Automatic (3 Gigabit)"
1550
1551
1552/*!
1553@defined kIOPropertyPortSpeedAutomatic4GigabitKey
1554@discussion This key defines the value of Automatic (4 Gigabit)
1555for the key kIOPropertyPortSpeedKey. If the speed of the port is
15564 Gigabits per second and is automatically determined by host
1557software, this key should be used.
1558
1559Note: This value can change. It is not a static value.
1560
1561Requirement: Optional for any interconnect.
1562
1563Example:
1564<pre>
1565@textblock
1566<dict>
1567	<key>Controller Characteristics</key>
1568	<dict>
1569		<key>Port Speed</key>
1570		<string>Automatic (4 Gigabit)</string>
1571	</dict>
1572</dict>
1573@/textblock
1574</pre>
1575*/
1576#define kIOPropertyPortSpeedAutomatic4GigabitKey		"Automatic (4 Gigabit)"
1577
1578
1579/*!
1580@defined kIOPropertyPortSpeedAutomatic6GigabitKey
1581@discussion This key defines the value of Automatic (6 Gigabit)
1582for the key kIOPropertyPortSpeedKey. If the speed of the port is
15836 Gigabits per second and is automatically determined by host
1584software, this key should be used.
1585
1586Note: This value can change. It is not a static value.
1587
1588Requirement: Optional for any interconnect.
1589
1590Example:
1591<pre>
1592@textblock
1593<dict>
1594	<key>Controller Characteristics</key>
1595	<dict>
1596		<key>Port Speed</key>
1597		<string>Automatic (6 Gigabit)</string>
1598	</dict>
1599</dict>
1600@/textblock
1601</pre>
1602*/
1603#define kIOPropertyPortSpeedAutomatic6GigabitKey		"Automatic (6 Gigabit)"
1604
1605
1606/*!
1607@defined kIOPropertyPortSpeedAutomatic8GigabitKey
1608@discussion This key defines the value of Automatic (8 Gigabit)
1609for the key kIOPropertyPortSpeedKey. If the speed of the port is
16108 Gigabits per second and is automatically determined by host
1611software, this key should be used.
1612
1613Note: This value can change. It is not a static value.
1614
1615Requirement: Optional for any interconnect.
1616
1617Example:
1618<pre>
1619@textblock
1620<dict>
1621	<key>Controller Characteristics</key>
1622	<dict>
1623		<key>Port Speed</key>
1624		<string>Automatic (8 Gigabit)</string>
1625	</dict>
1626</dict>
1627@/textblock
1628</pre>
1629*/
1630#define kIOPropertyPortSpeedAutomatic8GigabitKey		"Automatic (8 Gigabit)"
1631
1632
1633/*!
1634@defined kIOPropertyPortSpeedAutomatic10GigabitKey
1635@discussion This key defines the value of Automatic (10 Gigabit)
1636for the key kIOPropertyPortSpeedKey. If the speed of the port is
163710 Gigabits per second and is automatically determined by host
1638software, this key should be used.
1639
1640Note: This value can change. It is not a static value.
1641
1642Requirement: Optional for any interconnect.
1643
1644Example:
1645<pre>
1646@textblock
1647<dict>
1648	<key>Controller Characteristics</key>
1649	<dict>
1650		<key>Port Speed</key>
1651		<string>Automatic (10 Gigabit)</string>
1652	</dict>
1653</dict>
1654@/textblock
1655</pre>
1656*/
1657#define kIOPropertyPortSpeedAutomatic10GigabitKey		"Automatic (10 Gigabit)"
1658
1659
1660/*!
1661@defined kIOPropertyPortTopologyAutomaticKey
1662@discussion This key defines the value of Automatic for the key
1663kIOPropertyPortTopologyKey. If the topology of the port is automatically
1664adjusted by the host/device and a definitive topology is not known,
1665this key should be used.
1666
1667Note: This value can change. It is not a static value.
1668
1669Requirement: Optional for any interconnect.
1670
1671Example:
1672<pre>
1673@textblock
1674<dict>
1675	<key>Controller Characteristics</key>
1676	<dict>
1677		<key>Port Topology</key>
1678		<string>Automatic</string>
1679	</dict>
1680</dict>
1681@/textblock
1682</pre>
1683*/
1684#define kIOPropertyPortTopologyAutomaticKey				"Automatic"
1685
1686
1687/*!
1688@defined kIOPropertyPortTopologyNPortKey
1689@discussion This key defines the value of N_Port for the key
1690kIOPropertyPortTopologyKey. If the topology of the port is an N_Port,
1691this key should be used.
1692
1693Note: This value can change. It is not a static value.
1694
1695Requirement: Optional for any interconnect.
1696
1697Example:
1698<pre>
1699@textblock
1700<dict>
1701	<key>Controller Characteristics</key>
1702	<dict>
1703		<key>Port Topology</key>
1704		<string>N_Port</string>
1705	</dict>
1706</dict>
1707@/textblock
1708</pre>
1709*/
1710#define kIOPropertyPortTopologyNPortKey					"N_Port"
1711
1712
1713/*!
1714@defined kIOPropertyPortTopologyNLPortKey
1715@discussion This key defines the value of NL_Port for the key
1716kIOPropertyPortTopologyKey. If the topology of the port is an NL_Port,
1717this key should be used.
1718
1719Note: This value can change. It is not a static value.
1720
1721Requirement: Optional for any interconnect.
1722
1723Example:
1724<pre>
1725@textblock
1726<dict>
1727	<key>Controller Characteristics</key>
1728	<dict>
1729		<key>Port Topology</key>
1730		<string>NL_Port</string>
1731	</dict>
1732</dict>
1733@/textblock
1734</pre>
1735*/
1736#define kIOPropertyPortTopologyNLPortKey				"NL_Port"
1737
1738
1739/*!
1740@defined kIOPropertyPortTopologyAutomaticNPortKey
1741@discussion This key defines the value of Automatic (N_Port) for the key
1742kIOPropertyPortTopologyKey. If the topology of the port is
1743N_Port and is automatically determined by host software, this
1744key should be used.
1745
1746Note: This value can change. It is not a static value.
1747
1748Requirement: Optional for any interconnect.
1749
1750Example:
1751<pre>
1752@textblock
1753<dict>
1754	<key>Controller Characteristics</key>
1755	<dict>
1756		<key>Port Topology</key>
1757		<string>Automatic (N_Port)</string>
1758	</dict>
1759</dict>
1760@/textblock
1761</pre>
1762*/
1763#define kIOPropertyPortTopologyAutomaticNPortKey		"Automatic (N_Port)"
1764
1765
1766/*!
1767@defined kIOPropertyPortTopologyAutomaticNLPortKey
1768@discussion This key defines the value of Automatic (NL_Port) for the key
1769kIOPropertyPortTopologyKey. If the topology of the port is
1770NL_Port and is automatically determined by host software, this
1771key should be used.
1772
1773Note: This value can change. It is not a static value.
1774
1775Requirement: Optional for any interconnect.
1776
1777Example:
1778<pre>
1779@textblock
1780<dict>
1781	<key>Controller Characteristics</key>
1782	<dict>
1783		<key>Port Topology</key>
1784		<string>Automatic (NL_Port)</string>
1785	</dict>
1786</dict>
1787@/textblock
1788</pre>
1789*/
1790#define kIOPropertyPortTopologyAutomaticNLPortKey		"Automatic (NL_Port)"
1791
1792
1793/*!
1794@defined kIOPropertySCSIParallelSignalingTypeHVDKey
1795@discussion This key defines the value of High Voltage Differential for the key
1796kIOPropertySCSIParallelSignalingTypeKey. If the signaling type of the port is
1797High Voltage Differential, this key should be used.
1798
1799Requirement: Optional for SCSI Parallel Interface interconnect.
1800
1801Example:
1802<pre>
1803@textblock
1804<dict>
1805	<key>Controller Characteristics</key>
1806	<dict>
1807		<key>SCSI Parallel Signaling Type</key>
1808		<string>High Voltage Differential</string>
1809	</dict>
1810</dict>
1811@/textblock
1812</pre>
1813*/
1814#define kIOPropertySCSIParallelSignalingTypeHVDKey		"High Voltage Differential"
1815
1816
1817/*!
1818@defined kIOPropertySCSIParallelSignalingTypeLVDKey
1819@discussion This key defines the value of Low Voltage Differential for the key
1820kIOPropertySCSIParallelSignalingTypeKey. If the signaling type of the port is
1821Low Voltage Differential, this key should be used.
1822
1823Requirement: Optional for SCSI Parallel Interface interconnect.
1824
1825Example:
1826<pre>
1827@textblock
1828<dict>
1829	<key>Controller Characteristics</key>
1830	<dict>
1831		<key>SCSI Parallel Signaling Type</key>
1832		<string>Low Voltage Differential</string>
1833	</dict>
1834</dict>
1835@/textblock
1836</pre>
1837*/
1838#define kIOPropertySCSIParallelSignalingTypeLVDKey		"Low Voltage Differential"
1839
1840
1841/*!
1842@defined kIOPropertySCSIParallelSignalingTypeSEKey
1843@discussion This key defines the value of Single Ended for the key
1844kIOPropertySCSIParallelSignalingTypeKey. If the signaling type of the port is
1845Single Ended, this key should be used.
1846
1847Requirement: Optional for SCSI Parallel Interface interconnect.
1848
1849Example:
1850<pre>
1851@textblock
1852<dict>
1853	<key>Controller Characteristics</key>
1854	<dict>
1855		<key>SCSI Parallel Signaling Type</key>
1856		<string>Single Ended</string>
1857	</dict>
1858</dict>
1859@/textblock
1860</pre>
1861*/
1862#define kIOPropertySCSIParallelSignalingTypeSEKey		"Single Ended"
1863
1864
1865/*!
1866@defined kIOPropertyFibreChannelCableDescriptionCopperKey
1867@discussion This key defines the value of Copper for the key
1868kIOPropertyFibreChannelCableDescriptionKey. If the cabling is
1869Copper, this key should be used.
1870
1871Requirement: Optional for Fibre Channel Interface interconnect.
1872
1873Example:
1874<pre>
1875@textblock
1876<dict>
1877	<key>Controller Characteristics</key>
1878	<dict>
1879		<key>Fibre Channel Cabling Type</key>
1880		<string>Copper</string>
1881	</dict>
1882</dict>
1883@/textblock
1884</pre>
1885*/
1886#define kIOPropertyFibreChannelCableDescriptionCopperKey		"Copper"
1887
1888
1889/*!
1890@defined kIOPropertyFibreChannelCableDescriptionFiberOpticKey
1891@discussion This key defines the value of Fiber Optic for the key
1892kIOPropertyFibreChannelCableDescriptionKey. If the cabling is
1893Fiber Optic, this key should be used.
1894
1895Requirement: Optional for Fibre Channel Interface interconnect.
1896
1897Example:
1898<pre>
1899@textblock
1900<dict>
1901	<key>Controller Characteristics</key>
1902	<dict>
1903		<key>Fibre Channel Cabling Type</key>
1904		<string>Fiber Optic</string>
1905	</dict>
1906</dict>
1907@/textblock
1908</pre>
1909*/
1910#define kIOPropertyFibreChannelCableDescriptionFiberOpticKey	"Fiber Optic"
1911
1912
1913#endif	/* _IOKIT_IO_STORAGE_PROTOCOL_CHARACTERISTICS_H_ */
1914