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