1/*
2 * Copyright (c) 1998-2014 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_CONTROLLER_CHARACTERISTICS_H_
25#define _IOKIT_IO_STORAGE_CONTROLLER_CHARACTERISTICS_H_
26
27
28/*
29 *	Controller Characteristics - Characteristics defined for controllers.
30 */
31
32
33/*!
34@defined kIOPropertyControllerCharacteristicsKey
35@discussion This key is used to define Controller Characteristics for a particular
36device and it has an associated dictionary which lists the
37controller characteristics.
38
39Requirement: Mandatory
40
41Example:
42<pre>
43@textblock
44<dict>
45	<key>Controller Characteristics</key>
46	<dict>
47		<key>Port Speed</key>
48		<string>Automatic</string>
49	</dict>
50</dict>
51@/textblock
52</pre>
53*/
54#define kIOPropertyControllerCharacteristicsKey		"Controller Characteristics"
55
56
57/*!
58@defined kIOPropertySASAddressKey
59@discussion This key is the unique 64-bit SAS Address for the device server
60node located at this port, or for the initiating host port.
61
62Requirement: Mandatory for SAS.
63
64Example:
65<pre>
66@textblock
67<dict>
68	<key>Controller Characteristics</key>
69	<dict>
70		<key>SAS Address</key>
71		<data>0011223344556677</data>
72	</dict>
73</dict>
74@/textblock
75</pre>
76*/
77#define kIOPropertySASAddressKey					"SAS Address"
78
79
80/*!
81@defined kIOPropertySCSIPortIdentifierKey
82@discussion This key is the unique port identifier for the device server
83node located at this port, or for the initiating host port.  The format for
84this data is allowed to be vendor-specific, as long as it is guaranteed to
85be unique.  Length is arbitrary, to allow for itnerfaces with non-standard
86identifier rules.  It is recommended to have this be a copy of an existing
87standard unique identifier for this port, should one  already exist for your
88interface type
89
90Requirement: Mandatory.
91
92Example:
93<pre>
94@textblock
95<dict>
96	<key>Controller Characteristics</key>
97	<dict>
98		<key>Unique SCSI Port Identifier</key>
99		<data>0011223344556677</data>
100	</dict>
101</dict>
102@/textblock
103</pre>
104*/
105#define kIOPropertySCSIPortIdentifierKey		"Unique SCSI Port Identifier"
106
107
108/*!
109@defined kIOPropertyFibreChannelNodeWorldWideNameKey
110@discussion This key is the unique 64-bit World Wide Name for the device server
111node located at this port, or for the initiating host port.
112
113Requirement: Mandatory for Fibre Channel Interface.
114
115Example:
116<pre>
117@textblock
118<dict>
119	<key>Controller Characteristics</key>
120	<dict>
121		<key>Node World Wide Name</key>
122		<data>0011223344556677</data>
123	</dict>
124</dict>
125@/textblock
126</pre>
127*/
128#define kIOPropertyFibreChannelNodeWorldWideNameKey		"Node World Wide Name"
129
130
131/*!
132@defined kIOPropertyFibreChannelPortWorldWideNameKey
133@discussion This key is the unique 64-bit World Wide Name for the port.
134
135Requirement: Mandatory for Fibre Channel Interface.
136
137Example:
138<pre>
139@textblock
140<dict>
141	<key>Controller Characteristics</key>
142	<dict>
143		<key>Port World Wide Name</key>
144		<data>0011223344556677</data>
145	</dict>
146</dict>
147@/textblock
148</pre>
149*/
150#define kIOPropertyFibreChannelPortWorldWideNameKey		"Port World Wide Name"
151
152
153/*!
154@defined kIOPropertyFibreChannelAddressIdentifierKey
155@discussion This key is the 24-bit Address Identifier (S_ID or D_ID) as
156defined in the FC-FS specification. It contains the address identifier
157of the source or destination Nx_Port.
158
159Note: This value can change. It is not a static value.
160
161Requirement: Optional (only necessary for Fibre Channel Interface).
162
163Example:
164<pre>
165@textblock
166<dict>
167	<key>Controller Characteristics</key>
168	<dict>
169		<key>Address Identifier</key>
170		<data>001122</data>
171	</dict>
172</dict>
173@/textblock
174</pre>
175*/
176#define kIOPropertyFibreChannelAddressIdentifierKey		"Address Identifier"
177
178
179/*!
180@defined kIOPropertyFibreChannelALPAKey
181@discussion This key is the 8-bit Arbitrated Loop Physical Address
182(AL_PA) value as defined in the FC-AL-2 specification.
183
184Note: This value can change. It is not a static value.
185
186Requirement: Optional (only necessary for Fibre Channel Interface).
187
188Example:
189<pre>
190@textblock
191<dict>
192	<key>Controller Characteristics</key>
193	<dict>
194		<key>AL_PA</key>
195		<data>04</data>
196	</dict>
197</dict>
198@/textblock
199</pre>
200*/
201#define kIOPropertyFibreChannelALPAKey					"AL_PA"
202
203
204/*!
205@defined kIOPropertyPortStatusKey
206@discussion This key is associated with the current port
207status of the physical link. The port status is either
208"Link Established", "No Link Established", or "Link Failed".
209
210Note: This value can change when the port status changes. It
211is not a static value.
212
213Requirement: Optional for any interconnect.
214
215Example:
216<pre>
217@textblock
218<dict>
219	<key>Controller Characteristics</key>
220	<dict>
221		<key>Port Status</key>
222		<string>Link Established</string>
223	</dict>
224</dict>
225@/textblock
226</pre>
227*/
228#define kIOPropertyPortStatusKey						"Port Status"
229
230
231/*!
232@defined kIOPropertyPortSpeedKey
233@discussion This key is associated with the current port
234speed. The port speed can be any valid speed for the interconnect.
235
236Note: This value can change. It is not a static value.
237
238Requirement: Optional for any interconnect.
239
240Example:
241<pre>
242@textblock
243<dict>
244	<key>Controller Characteristics</key>
245	<dict>
246		<key>Port Speed</key>
247		<string>Automatic (1 Gigabit)</string>
248	</dict>
249</dict>
250@/textblock
251</pre>
252*/
253#define kIOPropertyPortSpeedKey							"Port Speed"
254
255
256/*!
257@defined kIOPropertyPortTopologyKey
258@discussion This key is associated with the current port
259topology. The port topology can be any valid topology for the interconnect.
260
261Note: This value can change. It is not a static value.
262
263Requirement: Optional for any interconnect.
264
265Example:
266<pre>
267@textblock
268<dict>
269	<key>Controller Characteristics</key>
270	<dict>
271		<key>Port Topology</key>
272		<string>Automatic (N_Port)</string>
273	</dict>
274</dict>
275@/textblock
276</pre>
277*/
278#define kIOPropertyPortTopologyKey						"Port Topology"
279
280
281/*!
282@defined kIOPropertyPortDescriptionKey
283@discussion This key is associated with an human
284readable port description. Examples include
285"Channel A", "Port 1", etc.
286
287Requirement: Optional for all interconnects.
288
289Example:
290<pre>
291@textblock
292<dict>
293	<key>Controller Characteristics</key>
294	<dict>
295		<key>Port Description</key>
296		<string>Channel A</string>
297	</dict>
298</dict>
299@/textblock
300</pre>
301*/
302#define kIOPropertyPortDescriptionKey					"Port Description"
303
304
305/*!
306@defined kIOPropertySCSIParallelSignalingTypeKey
307@discussion This key is associated with the signaling type
308used for this SCSI Parallel bus. Valid values include
309"High Voltage Differential", "Low Voltage Differential",
310and "Single Ended".
311
312Requirement: Optional for SCSI Parallel Interface. Not
313defined for any other physical interconnect.
314
315Example:
316<pre>
317@textblock
318<dict>
319	<key>Controller Characteristics</key>
320	<dict>
321		<key>SCSI Parallel Signaling Type</key>
322		<string>High Voltage Differential</string>
323	</dict>
324</dict>
325@/textblock
326</pre>
327*/
328#define kIOPropertySCSIParallelSignalingTypeKey			"SCSI Parallel Signaling Type"
329
330
331/*!
332@defined kIOPropertyFibreChannelCableDescriptionKey
333@discussion This key is associated with the cabling type
334used for this Fibre Channel port. Valid values include
335"Copper" and "Fiber Optic".
336
337Requirement: Optional for Fibre Channel Interface. Not
338defined for any other physical interconnect.
339
340Example:
341<pre>
342@textblock
343<dict>
344	<key>Controller Characteristics</key>
345	<dict>
346		<key>Fibre Channel Cabling Type</key>
347		<string>Copper</string>
348	</dict>
349</dict>
350@/textblock
351</pre>
352*/
353#define kIOPropertyFibreChannelCableDescriptionKey		"Fibre Channel Cabling Type"
354
355
356/*!
357@defined kIOPropertyEncryptionTypeKey
358@discussion This key is associated with the encryption type
359used for this storage controller. Valid values currently include
360"AES-XTS", "AES-XEX" and "AES-CBC".
361
362Requirement: Optional for all storage controllers.
363
364Example:
365<pre>
366@textblock
367<dict>
368	<key>Controller Characteristics</key>
369	<dict>
370		<key>Encryption Type</key>
371		<string>AES-XTS</string>
372	</dict>
373</dict>
374@/textblock
375</pre>
376*/
377#define kIOPropertyEncryptionTypeKey	"Encryption Type"
378
379
380/*!
381@defined kIOPropertyLowPowerModeKey
382@discussion This key is associated with whether the storage
383device has low-power mode enabled. If enabled, it will set this
384key to true.
385
386Requirement: Optional for any interconnect.
387
388Example:
389<pre>
390@textblock
391<dict>
392	<key>Controller Characteristics</key>
393	<dict>
394		<key>Low Power Mode</key>
395		<true/>
396	</dict>
397</dict>
398@/textblock
399</pre>
400*/
401#define kIOPropertyLowPowerModeKey		"Low Power Mode"
402
403
404/*
405 *	Values - Values for the characteristics defined above.
406 */
407
408
409/*!
410@defined kIOPropertyPortStatusLinkEstablishedKey
411@discussion This key defines the value of Link Established for the key
412kIOPropertyPortStatusKey.
413
414Example:
415<pre>
416@textblock
417<dict>
418	<key>Controller Characteristics</key>
419	<dict>
420		<key>Port Status</key>
421		<string>Link Established</string>
422	</dict>
423</dict>
424@/textblock
425</pre>
426*/
427#define kIOPropertyPortStatusLinkEstablishedKey			"Link Established"
428
429
430/*!
431@defined kIOPropertyPortStatusNoLinkEstablishedKey
432@discussion This key defines the value of No Link Established for the key
433kIOPropertyPortStatusKey.
434
435Example:
436<pre>
437@textblock
438<dict>
439	<key>Controller Characteristics</key>
440	<dict>
441		<key>Port Status</key>
442		<string>No Link Established</string>
443	</dict>
444</dict>
445@/textblock
446</pre>
447*/
448#define kIOPropertyPortStatusNoLinkEstablishedKey		"No Link Established"
449
450
451/*!
452@defined kIOPropertyPortStatusLinkFailedKey
453@discussion This key defines the value of Link Failed for the key
454kIOPropertyPortStatusKey.
455
456Example:
457<pre>
458@textblock
459<dict>
460	<key>Controller Characteristics</key>
461	<dict>
462		<key>Port Status</key>
463		<string>Link Failed</string>
464	</dict>
465</dict>
466@/textblock
467</pre>
468*/
469#define kIOPropertyPortStatusLinkFailedKey				"Link Failed"
470
471
472/*!
473@defined kIOPropertyPortSpeedAutomaticKey
474@discussion This key defines the value of Automatic for the key
475kIOPropertyPortSpeedKey. If the speed of the port is automatically
476adjusted by the host/device and a definitive speed is not known,
477this key should be used.
478
479Note: This value can change. It is not a static value.
480
481Requirement: Optional for any interconnect.
482
483Example:
484<pre>
485@textblock
486<dict>
487	<key>Controller Characteristics</key>
488	<dict>
489		<key>Port Speed</key>
490		<string>Automatic</string>
491	</dict>
492</dict>
493@/textblock
494</pre>
495*/
496#define kIOPropertyPortSpeedAutomaticKey				"Automatic"
497
498
499/*!
500@defined kIOPropertyPortSpeed1GigabitKey
501@discussion This key defines the value of 1 Gigabit for the key
502kIOPropertyPortSpeedKey. If the speed of the port is 1 Gigabit
503per second and is not automatically determined (i.e. the user
504configured the port to be exactly this speed),
505this key should be used.
506
507Note: This value can change. It is not a static value.
508
509Requirement: Optional for any interconnect.
510
511Example:
512<pre>
513@textblock
514<dict>
515	<key>Controller Characteristics</key>
516	<dict>
517		<key>Port Speed</key>
518		<string>1 Gigabit</string>
519	</dict>
520</dict>
521@/textblock
522</pre>
523*/
524#define kIOPropertyPortSpeed1GigabitKey					"1 Gigabit"
525
526/*!
527@defined kIOPropertyPortSpeed1_5GigabitKey
528@discussion This key defines the value of 1.5 Gigabit for the key
529kIOPropertyPortSpeedKey. If the speed of the port is 1.5 Gigabits
530per second and is not automatically determined (i.e. the user
531configured the port to be exactly this speed),
532this key should be used.
533
534Note: This value can change. It is not a static value.
535
536Requirement: Optional for any interconnect.
537
538Example:
539<pre>
540@textblock
541<dict>
542	<key>Controller Characteristics</key>
543	<dict>
544		<key>Port Speed</key>
545		<string>1.5 Gigabit</string>
546	</dict>
547</dict>
548@/textblock
549</pre>
550*/
551#define kIOPropertyPortSpeed1_5GigabitKey				"1.5 Gigabit"
552
553
554/*!
555@defined kIOPropertyPortSpeed2GigabitKey
556@discussion This key defines the value of 2 Gigabit for the key
557kIOPropertyPortSpeedKey. If the speed of the port is 2 Gigabits
558per second and is not automatically determined (i.e. the user
559configured the port to be exactly this speed),
560this key should be used.
561
562Note: This value can change. It is not a static value.
563
564Requirement: Optional for any interconnect.
565
566Example:
567<pre>
568@textblock
569<dict>
570	<key>Controller Characteristics</key>
571	<dict>
572		<key>Port Speed</key>
573		<string>2 Gigabit</string>
574	</dict>
575</dict>
576@/textblock
577</pre>
578*/
579#define kIOPropertyPortSpeed2GigabitKey					"2 Gigabit"
580
581
582/*!
583@defined kIOPropertyPortSpeed3GigabitKey
584@discussion This key defines the value of 3 Gigabit for the key
585kIOPropertyPortSpeedKey. If the speed of the port is 3 Gigabits
586per second and is not automatically determined (i.e. the user
587configured the port to be exactly this speed),
588this key should be used.
589
590Note: This value can change. It is not a static value.
591
592Requirement: Optional for any interconnect.
593
594Example:
595<pre>
596@textblock
597<dict>
598	<key>Controller Characteristics</key>
599	<dict>
600		<key>Port Speed</key>
601		<string>3 Gigabit</string>
602	</dict>
603</dict>
604@/textblock
605</pre>
606*/
607#define kIOPropertyPortSpeed3GigabitKey					"3 Gigabit"
608
609
610/*!
611@defined kIOPropertyPortSpeed4GigabitKey
612@discussion This key defines the value of 4 Gigabit for the key
613kIOPropertyPortSpeedKey. If the speed of the port is 4 Gigabits
614per second and is not automatically determined (i.e. the user
615configured the port to be exactly this speed),
616this key should be used.
617
618Note: This value can change. It is not a static value.
619
620Requirement: Optional for any interconnect.
621
622Example:
623<pre>
624@textblock
625<dict>
626	<key>Controller Characteristics</key>
627	<dict>
628		<key>Port Speed</key>
629		<string>4 Gigabit</string>
630	</dict>
631</dict>
632@/textblock
633</pre>
634*/
635#define kIOPropertyPortSpeed4GigabitKey					"4 Gigabit"
636
637/*!
638@defined kIOPropertyPortSpeed6GigabitKey
639@discussion This key defines the value of 6 Gigabit for the key
640kIOPropertyPortSpeedKey. If the speed of the port is 6 Gigabits
641per second and is not automatically determined (i.e. the user
642configured the port to be exactly this speed),
643this key should be used.
644
645Note: This value can change. It is not a static value.
646
647Requirement: Optional for any interconnect.
648
649Example:
650<pre>
651@textblock
652<dict>
653	<key>Controller Characteristics</key>
654	<dict>
655		<key>Port Speed</key>
656		<string>6 Gigabit</string>
657	</dict>
658</dict>
659@/textblock
660</pre>
661*/
662#define kIOPropertyPortSpeed6GigabitKey					"6 Gigabit"
663
664
665/*!
666@defined kIOPropertyPortSpeed8GigabitKey
667@discussion This key defines the value of 8 Gigabit for the key
668kIOPropertyPortSpeedKey. If the speed of the port is 8 Gigabits
669per second and is not automatically determined (i.e. the user
670configured the port to be exactly this speed),
671this key should be used.
672
673Note: This value can change. It is not a static value.
674
675Requirement: Optional for any interconnect.
676
677Example:
678<pre>
679@textblock
680<dict>
681	<key>Controller Characteristics</key>
682	<dict>
683		<key>Port Speed</key>
684		<string>8 Gigabit</string>
685	</dict>
686</dict>
687@/textblock
688</pre>
689*/
690#define kIOPropertyPortSpeed8GigabitKey					"8 Gigabit"
691
692
693/*!
694@defined kIOPropertyPortSpeed10GigabitKey
695@discussion This key defines the value of 10 Gigabit for the key
696kIOPropertyPortSpeedKey. If the speed of the port is 10 Gigabits
697per second and is not automatically determined (i.e. the user
698configured the port to be exactly this speed),
699this key should be used.
700
701Note: This value can change. It is not a static value.
702
703Requirement: Optional for any interconnect.
704
705Example:
706<pre>
707@textblock
708<dict>
709	<key>Controller Characteristics</key>
710	<dict>
711		<key>Port Speed</key>
712		<string>10 Gigabit</string>
713	</dict>
714</dict>
715@/textblock
716</pre>
717*/
718#define kIOPropertyPortSpeed10GigabitKey				"10 Gigabit"
719
720
721/*!
722@defined kIOPropertyPortSpeed12GigabitKey
723@discussion This key defines the value of 12 Gigabit for the key
724kIOPropertyPortSpeedKey. If the speed of the port is 12 Gigabits
725per second and is not automatically determined (i.e. the user
726configured the port to be exactly this speed),
727this key should be used.
728
729Note: This value can change. It is not a static value.
730
731Requirement: Optional for any interconnect.
732
733Example:
734<pre>
735@textblock
736<dict>
737	<key>Controller Characteristics</key>
738	<dict>
739		<key>Port Speed</key>
740		<string>12 Gigabit</string>
741	</dict>
742</dict>
743@/textblock
744</pre>
745*/
746#define kIOPropertyPortSpeed12GigabitKey				"12 Gigabit"
747
748
749/*!
750@defined kIOPropertyPortSpeed16GigabitKey
751@discussion This key defines the value of 16 Gigabit for the key
752kIOPropertyPortSpeedKey. If the speed of the port is 16 Gigabits
753per second and is not automatically determined (i.e. the user
754configured the port to be exactly this speed),
755this key should be used.
756
757Note: This value can change. It is not a static value.
758
759Requirement: Optional for any interconnect.
760
761Example:
762<pre>
763@textblock
764<dict>
765	<key>Controller Characteristics</key>
766	<dict>
767		<key>Port Speed</key>
768		<string>16 Gigabit</string>
769	</dict>
770</dict>
771@/textblock
772</pre>
773 */
774#define kIOPropertyPortSpeed16GigabitKey				"16 Gigabit"
775
776
777/*!
778@defined kIOPropertyPortSpeed40GigabitKey
779@discussion This key defines the value of 40 Gigabit for the key
780kIOPropertyPortSpeedKey. If the speed of the port is 40 Gigabits
781per second and is not automatically determined (i.e. the user
782configured the port to be exactly this speed),
783this key should be used.
784
785Note: This value can change. It is not a static value.
786
787Requirement: Optional for any interconnect.
788
789Example:
790<pre>
791@textblock
792<dict>
793	<key>Controller Characteristics</key>
794	<dict>
795		<key>Port Speed</key>
796		<string>40 Gigabit</string>
797	</dict>
798</dict>
799@/textblock
800</pre>
801*/
802#define kIOPropertyPortSpeed40GigabitKey				"40 Gigabit"
803
804
805/*!
806@defined kIOPropertyPortSpeedAutomatic1GigabitKey
807@discussion This key defines the value of Automatic (1 Gigabit)
808for the key kIOPropertyPortSpeedKey. If the speed of the port is
8091 Gigabit per second and is automatically determined by host
810software, this key should be used.
811
812Note: This value can change. It is not a static value.
813
814Requirement: Optional for any interconnect.
815
816Example:
817<pre>
818@textblock
819<dict>
820	<key>Controller Characteristics</key>
821	<dict>
822		<key>Port Speed</key>
823		<string>Automatic (1 Gigabit)</string>
824	</dict>
825</dict>
826@/textblock
827</pre>
828*/
829#define kIOPropertyPortSpeedAutomatic1GigabitKey		"Automatic (1 Gigabit)"
830
831
832/*!
833@defined kIOPropertyPortSpeedAutomatic1_5GigabitKey
834@discussion This key defines the value of Automatic (1.5 Gigabit) for the key
835kIOPropertyPortSpeedKey. If the speed of the port is
8361.5 Gigabits per second and is automatically determined by host
837software, this key should be used.
838
839Note: This value can change. It is not a static value.
840
841Requirement: Optional for any interconnect.
842
843Example:
844<pre>
845@textblock
846<dict>
847	<key>Controller Characteristics</key>
848	<dict>
849		<key>Port Speed</key>
850		<string>Automatic (1.5 Gigabit)</string>
851	</dict>
852</dict>
853@/textblock
854</pre>
855*/
856#define kIOPropertyPortSpeedAutomatic1_5GigabitKey		"Automatic (1.5 Gigabit)"
857
858
859/*!
860@defined kIOPropertyPortSpeedAutomatic2GigabitKey
861@discussion This key defines the value of Automatic (2 Gigabit)
862for the key kIOPropertyPortSpeedKey. If the speed of the port is
8632 Gigabits per second and is automatically determined by host
864software, this key should be used.
865
866Note: This value can change. It is not a static value.
867
868Requirement: Optional for any interconnect.
869
870Example:
871<pre>
872@textblock
873<dict>
874	<key>Controller Characteristics</key>
875	<dict>
876		<key>Port Speed</key>
877		<string>Automatic (2 Gigabit)</string>
878	</dict>
879</dict>
880@/textblock
881</pre>
882*/
883#define kIOPropertyPortSpeedAutomatic2GigabitKey		"Automatic (2 Gigabit)"
884
885
886/*!
887@defined kIOPropertyPortSpeedAutomatic3GigabitKey
888@discussion This key defines the value of Automatic (3 Gigabit)
889for the key kIOPropertyPortSpeedKey. If the speed of the port is
8903 Gigabits per second and is automatically determined by host
891software, this key should be used.
892
893Note: This value can change. It is not a static value.
894
895Requirement: Optional for any interconnect.
896
897Example:
898<pre>
899@textblock
900<dict>
901	<key>Controller Characteristics</key>
902	<dict>
903		<key>Port Speed</key>
904		<string>Automatic (3 Gigabit)</string>
905	</dict>
906</dict>
907@/textblock
908</pre>
909*/
910#define kIOPropertyPortSpeedAutomatic3GigabitKey		"Automatic (3 Gigabit)"
911
912
913/*!
914@defined kIOPropertyPortSpeedAutomatic4GigabitKey
915@discussion This key defines the value of Automatic (4 Gigabit)
916for the key kIOPropertyPortSpeedKey. If the speed of the port is
9174 Gigabits per second and is automatically determined by host
918software, this key should be used.
919
920Note: This value can change. It is not a static value.
921
922Requirement: Optional for any interconnect.
923
924Example:
925<pre>
926@textblock
927<dict>
928	<key>Controller Characteristics</key>
929	<dict>
930		<key>Port Speed</key>
931		<string>Automatic (4 Gigabit)</string>
932	</dict>
933</dict>
934@/textblock
935</pre>
936*/
937#define kIOPropertyPortSpeedAutomatic4GigabitKey		"Automatic (4 Gigabit)"
938
939
940/*!
941@defined kIOPropertyPortSpeedAutomatic6GigabitKey
942@discussion This key defines the value of Automatic (6 Gigabit)
943for the key kIOPropertyPortSpeedKey. If the speed of the port is
9446 Gigabits per second and is automatically determined by host
945software, this key should be used.
946
947Note: This value can change. It is not a static value.
948
949Requirement: Optional for any interconnect.
950
951Example:
952<pre>
953@textblock
954<dict>
955	<key>Controller Characteristics</key>
956	<dict>
957		<key>Port Speed</key>
958		<string>Automatic (6 Gigabit)</string>
959	</dict>
960</dict>
961@/textblock
962</pre>
963*/
964#define kIOPropertyPortSpeedAutomatic6GigabitKey		"Automatic (6 Gigabit)"
965
966
967/*!
968@defined kIOPropertyPortSpeedAutomatic8GigabitKey
969@discussion This key defines the value of Automatic (8 Gigabit)
970for the key kIOPropertyPortSpeedKey. If the speed of the port is
9718 Gigabits per second and is automatically determined by host
972software, this key should be used.
973
974Note: This value can change. It is not a static value.
975
976Requirement: Optional for any interconnect.
977
978Example:
979<pre>
980@textblock
981<dict>
982	<key>Controller Characteristics</key>
983	<dict>
984		<key>Port Speed</key>
985		<string>Automatic (8 Gigabit)</string>
986	</dict>
987</dict>
988@/textblock
989</pre>
990*/
991#define kIOPropertyPortSpeedAutomatic8GigabitKey		"Automatic (8 Gigabit)"
992
993
994/*!
995@defined kIOPropertyPortSpeedAutomatic10GigabitKey
996@discussion This key defines the value of Automatic (10 Gigabit)
997for the key kIOPropertyPortSpeedKey. If the speed of the port is
99810 Gigabits per second and is automatically determined by host
999software, this key should be used.
1000
1001Note: This value can change. It is not a static value.
1002
1003Requirement: Optional for any interconnect.
1004
1005Example:
1006<pre>
1007@textblock
1008<dict>
1009	<key>Controller Characteristics</key>
1010	<dict>
1011		<key>Port Speed</key>
1012		<string>Automatic (10 Gigabit)</string>
1013	</dict>
1014</dict>
1015@/textblock
1016</pre>
1017*/
1018#define kIOPropertyPortSpeedAutomatic10GigabitKey		"Automatic (10 Gigabit)"
1019
1020
1021/*!
1022@defined kIOPropertyPortTopologyAutomaticKey
1023@discussion This key defines the value of Automatic for the key
1024kIOPropertyPortTopologyKey. If the topology of the port is automatically
1025adjusted by the host/device and a definitive topology is not known,
1026this key should be used.
1027
1028Note: This value can change. It is not a static value.
1029
1030Requirement: Optional for any interconnect.
1031
1032Example:
1033<pre>
1034@textblock
1035<dict>
1036	<key>Controller Characteristics</key>
1037	<dict>
1038		<key>Port Topology</key>
1039		<string>Automatic</string>
1040	</dict>
1041</dict>
1042@/textblock
1043</pre>
1044*/
1045#define kIOPropertyPortTopologyAutomaticKey				"Automatic"
1046
1047
1048/*!
1049@defined kIOPropertyPortTopologyNPortKey
1050@discussion This key defines the value of N_Port for the key
1051kIOPropertyPortTopologyKey. If the topology of the port is an N_Port,
1052this key should be used.
1053
1054Note: This value can change. It is not a static value.
1055
1056Requirement: Optional for any interconnect.
1057
1058Example:
1059<pre>
1060@textblock
1061<dict>
1062	<key>Controller Characteristics</key>
1063	<dict>
1064		<key>Port Topology</key>
1065		<string>N_Port</string>
1066	</dict>
1067</dict>
1068@/textblock
1069</pre>
1070*/
1071#define kIOPropertyPortTopologyNPortKey					"N_Port"
1072
1073
1074/*!
1075@defined kIOPropertyPortTopologyNLPortKey
1076@discussion This key defines the value of NL_Port for the key
1077kIOPropertyPortTopologyKey. If the topology of the port is an NL_Port,
1078this key should be used.
1079
1080Note: This value can change. It is not a static value.
1081
1082Requirement: Optional for any interconnect.
1083
1084Example:
1085<pre>
1086@textblock
1087<dict>
1088	<key>Controller Characteristics</key>
1089	<dict>
1090		<key>Port Topology</key>
1091		<string>NL_Port</string>
1092	</dict>
1093</dict>
1094@/textblock
1095</pre>
1096*/
1097#define kIOPropertyPortTopologyNLPortKey				"NL_Port"
1098
1099
1100/*!
1101@defined kIOPropertyPortTopologyAutomaticNPortKey
1102@discussion This key defines the value of Automatic (N_Port) for the key
1103kIOPropertyPortTopologyKey. If the topology of the port is
1104N_Port and is automatically determined by host software, this
1105key should be used.
1106
1107Note: This value can change. It is not a static value.
1108
1109Requirement: Optional for any interconnect.
1110
1111Example:
1112<pre>
1113@textblock
1114<dict>
1115	<key>Controller Characteristics</key>
1116	<dict>
1117		<key>Port Topology</key>
1118		<string>Automatic (N_Port)</string>
1119	</dict>
1120</dict>
1121@/textblock
1122</pre>
1123*/
1124#define kIOPropertyPortTopologyAutomaticNPortKey		"Automatic (N_Port)"
1125
1126
1127/*!
1128@defined kIOPropertyPortTopologyAutomaticNLPortKey
1129@discussion This key defines the value of Automatic (NL_Port) for the key
1130kIOPropertyPortTopologyKey. If the topology of the port is
1131NL_Port and is automatically determined by host software, this
1132key should be used.
1133
1134Note: This value can change. It is not a static value.
1135
1136Requirement: Optional for any interconnect.
1137
1138Example:
1139<pre>
1140@textblock
1141<dict>
1142	<key>Controller Characteristics</key>
1143	<dict>
1144		<key>Port Topology</key>
1145		<string>Automatic (NL_Port)</string>
1146	</dict>
1147</dict>
1148@/textblock
1149</pre>
1150*/
1151#define kIOPropertyPortTopologyAutomaticNLPortKey		"Automatic (NL_Port)"
1152
1153
1154/*!
1155@defined kIOPropertySCSIParallelSignalingTypeHVDKey
1156@discussion This key defines the value of High Voltage Differential for the key
1157kIOPropertySCSIParallelSignalingTypeKey. If the signaling type of the port is
1158High Voltage Differential, this key should be used.
1159
1160Requirement: Optional for SCSI Parallel Interface interconnect.
1161
1162Example:
1163<pre>
1164@textblock
1165<dict>
1166	<key>Controller Characteristics</key>
1167	<dict>
1168		<key>SCSI Parallel Signaling Type</key>
1169		<string>High Voltage Differential</string>
1170	</dict>
1171</dict>
1172@/textblock
1173</pre>
1174*/
1175#define kIOPropertySCSIParallelSignalingTypeHVDKey		"High Voltage Differential"
1176
1177
1178/*!
1179@defined kIOPropertySCSIParallelSignalingTypeLVDKey
1180@discussion This key defines the value of Low Voltage Differential for the key
1181kIOPropertySCSIParallelSignalingTypeKey. If the signaling type of the port is
1182Low Voltage Differential, this key should be used.
1183
1184Requirement: Optional for SCSI Parallel Interface interconnect.
1185
1186Example:
1187<pre>
1188@textblock
1189<dict>
1190	<key>Controller Characteristics</key>
1191	<dict>
1192		<key>SCSI Parallel Signaling Type</key>
1193		<string>Low Voltage Differential</string>
1194	</dict>
1195</dict>
1196@/textblock
1197</pre>
1198*/
1199#define kIOPropertySCSIParallelSignalingTypeLVDKey		"Low Voltage Differential"
1200
1201
1202/*!
1203@defined kIOPropertySCSIParallelSignalingTypeSEKey
1204@discussion This key defines the value of Single Ended for the key
1205kIOPropertySCSIParallelSignalingTypeKey. If the signaling type of the port is
1206Single Ended, this key should be used.
1207
1208Requirement: Optional for SCSI Parallel Interface interconnect.
1209
1210Example:
1211<pre>
1212@textblock
1213<dict>
1214	<key>Controller Characteristics</key>
1215	<dict>
1216		<key>SCSI Parallel Signaling Type</key>
1217		<string>Single Ended</string>
1218	</dict>
1219</dict>
1220@/textblock
1221</pre>
1222*/
1223#define kIOPropertySCSIParallelSignalingTypeSEKey		"Single Ended"
1224
1225
1226/*!
1227@defined kIOPropertyFibreChannelCableDescriptionCopperKey
1228@discussion This key defines the value of Copper for the key
1229kIOPropertyFibreChannelCableDescriptionKey. If the cabling is
1230Copper, this key should be used.
1231
1232Requirement: Optional for Fibre Channel Interface interconnect.
1233
1234Example:
1235<pre>
1236@textblock
1237<dict>
1238	<key>Controller Characteristics</key>
1239	<dict>
1240		<key>Fibre Channel Cabling Type</key>
1241		<string>Copper</string>
1242	</dict>
1243</dict>
1244@/textblock
1245</pre>
1246*/
1247#define kIOPropertyFibreChannelCableDescriptionCopperKey		"Copper"
1248
1249
1250/*!
1251@defined kIOPropertyFibreChannelCableDescriptionFiberOpticKey
1252@discussion This key defines the value of Fiber Optic for the key
1253kIOPropertyFibreChannelCableDescriptionKey. If the cabling is
1254Fiber Optic, this key should be used.
1255
1256Requirement: Optional for Fibre Channel Interface interconnect.
1257
1258Example:
1259<pre>
1260@textblock
1261<dict>
1262	<key>Controller Characteristics</key>
1263	<dict>
1264		<key>Fibre Channel Cabling Type</key>
1265		<string>Fiber Optic</string>
1266	</dict>
1267</dict>
1268@/textblock
1269</pre>
1270*/
1271#define kIOPropertyFibreChannelCableDescriptionFiberOpticKey	"Fiber Optic"
1272
1273
1274/*!
1275@defined kIOPropertyAESCBCKey
1276@discussion This key defines the value of AES-CBC for the key
1277kIOPropertyEncryptionTypeKey. If the encryption used is
1278AES-CBC, this key should be used.
1279
1280Requirement: Optional for all storage controllers.
1281
1282Example:
1283<pre>
1284@textblock
1285<dict>
1286	<key>Controller Characteristics</key>
1287	<dict>
1288		<key>Encryption Type</key>
1289		<string>AES-CBC</string>
1290	</dict>
1291</dict>
1292@/textblock
1293</pre>
1294*/
1295#define kIOPropertyAESCBCKey	"AES-CBC"
1296
1297
1298/*!
1299@defined kIOPropertyAESXTSKey
1300@discussion This key defines the value of AES-XTS for the key
1301kIOPropertyEncryptionTypeKey. If the encryption used is
1302AES-XTS, this key should be used.
1303
1304Requirement: Optional for all storage controllers.
1305
1306Example:
1307<pre>
1308@textblock
1309<dict>
1310	<key>Controller Characteristics</key>
1311	<dict>
1312		<key>Encryption Type</key>
1313		<string>AES-XTS</string>
1314	</dict>
1315</dict>
1316@/textblock
1317</pre>
1318*/
1319#define kIOPropertyAESXTSKey	"AES-XTS"
1320
1321
1322/*!
1323@defined kIOPropertyAESXEXKey
1324@discussion This key defines the value of AES-XEX for the key
1325kIOPropertyEncryptionTypeKey. If the encryption used is
1326AES-XEX, this key should be used.
1327
1328Requirement: Optional for all storage controllers.
1329
1330Example:
1331<pre>
1332@textblock
1333<dict>
1334	<key>Controller Characteristics</key>
1335	<dict>
1336		<key>Encryption Type</key>
1337		<string>AES-XEX</string>
1338	</dict>
1339</dict>
1340@/textblock
1341</pre>
1342*/
1343#define kIOPropertyAESXEXKey	"AES-XEX"
1344
1345
1346#endif	/* _IOKIT_IO_STORAGE_CONTROLLER_CHARACTERISTICS_H_ */
1347