MicrOS
harddisk_identify_device_data.h
Go to the documentation of this file.
1 #ifndef HARDDISK_IDENTIFY_DEVICE_DATA_H
2 #define HARDDISK_IDENTIFY_DEVICE_DATA_H
3 
4 #include <stdint.h>
5 
7 #define HARDDISK_SERIAL_NUMBER_LENGTH 20
8 
10 #define HARDDISK_FIRMWARE_VERSION_LENGTH 8
11 
13 #define HARDDISK_MODEL_NUMBER_LENGTH 40
14 
17 {
18  // Reserved
19  uint8_t : 1;
20  // Retried
21  uint8_t : 1;
23  uint8_t response_incomplete : 1;
24  // Retried
25  uint8_t : 3;
26  // Obsolete
27  uint8_t : 1;
30  // Retried
31  uint8_t : 7;
33  uint8_t ata_device : 1;
34 } __attribute__((packed)) general_configuration_fields;
35 
38 {
47 } __attribute__((packed)) trusted_computing_fields;
48 
50 typedef struct capabilities_fields
51 {
52  // Retired
53  uint8_t : 8;
55  uint8_t dma_supported : 1;
57  uint8_t lba_supported : 1;
61  uint8_t iordy_supported : 1;
62  // Reserved for IDENTIFY PACKET DEVICE command
63  uint8_t : 1;
65  uint8_t standby_timer_type : 1;
66  // Reserved for IDENTIFY PACKET DEVICE command
67  uint8_t : 2;
68 
71  // Obsolete
72  uint8_t : 1;
73  // Reserved
74  uint16_t : 12;
79 } __attribute__((packed)) capabilities_fields;
80 
83 {
84  // Reserved
85  uint8_t : 2;
97  uint8_t : 1;
101  uint8_t : 1;
107  uint8_t : 1;
112  // Reserved for CFA.
113  uint8_t : 1;
114 } __attribute__((packed)) additional_supported_fields;
115 
118 {
119 
120  // Will be cleared to zero.
121  uint8_t : 1;
123  uint8_t sata_gen1 : 1;
125  uint8_t sata_gen2 : 1;
127  uint8_t sata_gen3 : 1;
129  uint8_t : 4;
131  uint8_t ncq : 1;
133  uint8_t hipm : 1;
135  uint8_t phy_event_counters : 1;
137  uint8_t unload_while_ncq : 1;
139  uint8_t ncq_priority : 1;
145  uint8_t read_log_dma_ext : 1;
146 
147  // Will be cleared to zero.
148  uint8_t : 1;
152  uint8_t ncq_streaming : 1;
157  // Reserved for Serial ATA.
158  uint16_t : 9;
159 } __attribute__((packed)) serial_ata_capabilities_fields;
160 
163 {
164  // Will be cleared to zero.
165  uint8_t : 1;
179  uint8_t ncq_autosense : 1;
180  // Reserved for Serial ATA.
181  uint8_t : 8;
182 } __attribute__((packed)) serial_ata_features_supported_fields;
183 
186 {
187 
188  // Will be cleared to zero.
189  uint8_t : 1;
203  uint8_t auto_ps_transictions : 1;
204  // Reserved for Serial ATA.
205  uint8_t : 8;
206 } __attribute__((packed)) serial_ata_features_enabled_fields;
207 
209 typedef struct major_revision_fields
210 {
211  // Reserved
212  uint8_t : 1;
213  // Obsolete
214  uint8_t : 4;
216  uint8_t supports_ata_atapi_5 : 1;
218  uint8_t supports_ata_atapi_6 : 1;
220  uint8_t supports_ata_atapi_7 : 1;
222  uint8_t supports_ata8_acs : 1;
224  uint8_t supports_acs_2 : 1;
226  uint8_t supports_acs_3 : 1;
227  // Reserved
228  uint8_t : 5;
229 } __attribute__((packed)) major_revision_fields;
230 
233 {
235  uint8_t smart : 1;
237  uint8_t security_mode : 1;
239  uint8_t removable_media : 1;
243  uint8_t packet_command : 1;
245  uint8_t write_cache : 1;
247  uint8_t look_ahead : 1;
249  uint8_t release_interrupt : 1;
251  uint8_t service_interrupt : 1;
253  uint8_t device_reset_command : 1;
255  uint8_t host_protected_area : 1;
257  uint8_t : 1;
259  uint8_t write_buffer_command : 1;
261  uint8_t read_buffer_command : 1;
263  uint8_t nop_command : 1;
265  uint8_t : 1;
266 
268  uint8_t download_microcode : 1;
272  uint8_t cfa : 1;
278  uint8_t powerup_in_standby : 1;
280  uint8_t manual_powerup : 1;
282  uint8_t : 1;
284  uint8_t set_max : 1;
288  uint8_t address_48_bit : 1;
294  uint8_t flush_cache_ext : 1;
295  // Will be cleared to one.
296  uint8_t : 1;
297  // Will be cleared to zero.
298  uint8_t : 1;
299 
301  uint8_t smart_error_logging : 1;
303  uint8_t smart_self_test : 1;
305  uint8_t media_serial_number : 1;
309  uint8_t streaming : 1;
313  uint8_t write_dma_fua_ext : 1;
319  uint8_t urg_for_read_stream : 1;
321  uint8_t urg_for_write_stream : 1;
328  // Will be cleared to one.
329  uint8_t : 1;
330  // Will be cleared to zero.
331  uint8_t : 1;
332 } __attribute__((packed)) command_set_support_fields;
333 
336 {
338  uint8_t smart : 1;
340  uint8_t security_mode : 1;
342  uint8_t removable_media : 1;
346  uint8_t packet_command : 1;
348  uint8_t write_cache : 1;
350  uint8_t look_ahead : 1;
352  uint8_t release_interrupt : 1;
354  uint8_t service_interrupt : 1;
356  uint8_t device_reset_command : 1;
358  uint8_t host_protected_area : 1;
360  uint8_t : 1;
362  uint8_t write_buffer_command : 1;
364  uint8_t read_buffer_command : 1;
366  uint8_t nop_command : 1;
368  uint8_t : 1;
369 
371  uint8_t download_microcode : 1;
375  uint8_t cfa : 1;
381  uint8_t powerup_in_standby : 1;
383  uint8_t manual_powerup : 1;
385  uint8_t : 1;
387  uint8_t set_max : 1;
391  uint8_t address_48_bit : 1;
397  uint8_t flush_cache_ext : 1;
398  // Reserved.
399  uint8_t : 2;
400 
402  uint8_t smart_error_logging : 1;
404  uint8_t smart_self_test : 1;
414  uint8_t write_dma_fua_ext : 1;
420  uint8_t urg_for_read_stream : 1;
422  uint8_t urg_for_write_stream : 1;
423  // Reserved for technical report.
424  uint8_t : 1;
425  // Reserved for technical report.
426  uint8_t : 1;
429  // Will be cleared to one.
430  uint8_t : 1;
431  // Will be cleared to zero.
432  uint8_t : 1;
433 } __attribute__((packed)) command_set_active_fields;
434 
437 {
452  // Reserved
453  uint8_t : 1;
468  // Reserved
469  uint8_t : 1;
470 } __attribute__((packed)) ultra_dma_modes_fields;
471 
474 {
476 
477  struct
478  {
479  // Will be cleared to one.
480  uint8_t : 1;
482 
488  uint8_t passed_diagnostics : 1;
490  uint8_t assertion_of_pdiag : 1;
492  uint8_t assertion_of_dasp : 1;
495  // Reserved
496  uint8_t : 1;
497  } hardware_device_0_reset_result_fields;
499 
500  struct
501  {
502  // Will be cleared to one.
503  uint8_t : 1;
505 
511  uint8_t asserted_pdiag : 1;
512  // Reserved
513  uint8_t : 1;
514  } hardware_device_1_reset_result_fields;
516  uint8_t cblid_detection : 1;
517  // Will be cleared to one.
518  uint8_t : 1;
519  // Will be cleared to zero.
520  uint8_t : 1;
521 } __attribute__((packed)) hardware_reset_result_fields;
522 
525 {
526 
529  // Reserved
535  // Will be cleared to one.
536  uint8_t : 1;
537  // Will be cleared to zero.
538  uint8_t : 1;
539 } __attribute__((packed)) physical_logical_sector_size_fields;
540 
542 typedef struct worldwide_name_fields
543 {
545  uint16_t ieee_oui_12_23 : 12;
547  uint16_t naa_0_3 : 4;
548 
550  uint16_t unique_id_32_35 : 4;
552  uint16_t ieee_oui_0_11 : 12;
553 
555  uint16_t unique_id_16_31 : 16;
556 
558  uint16_t unique_id_0_15 : 16;
559 } __attribute__((packed)) worldwide_name_fields;
560 
563 {
565  uint8_t security_supported : 1;
567  uint8_t security_enabled : 1;
569  uint8_t security_locked : 1;
571  uint8_t security_frozen : 1;
576  // Reserved
577  uint8_t : 2;
579 
581  uint8_t security_level : 1;
582  // Reserved
583  uint8_t : 7;
584 } __attribute__((packed)) security_status_fields;
585 
588 {
590  uint16_t maximum_current_in_ma : 12;
595  // Reserved
596  uint8_t : 1;
598  uint8_t word_160_supported : 1;
599 } __attribute__((packed)) cfa_power_mode_1_fields;
600 
602 
604 {
605  // 0 word
608 
609  // 1 word
610  // Obsolete
611  uint16_t : 16;
612 
613  // 2 word
615  uint16_t specific_configuration : 16;
616 
617  // 3 word
618  // Obsolete
619  uint16_t : 16;
620 
621  // 4 word
622  // Retried
623  uint16_t : 16;
624 
625  // 5 word
626  // Retried
627  uint16_t : 16;
628 
629  // 6 word
630  // Obsolete
631  uint16_t : 16;
632 
633  // 7-8 word
634  // Reserved for assignment by the CompactFlash Association
635  uint32_t : 32;
636 
637  // 9 word
638  // Retried
639  uint16_t : 16;
640 
641  // 10-19 word
643  char serial_number[HARDDISK_SERIAL_NUMBER_LENGTH];
644 
645  // 20 word
646  // Retried
647  uint16_t : 16;
648 
649  // 21 word
650  // Retried
651  uint16_t : 16;
652 
653  // 22 word
654  // Obsolete
655  uint16_t : 16;
656 
657  // 23-26 word
659  char firmware_version[HARDDISK_FIRMWARE_VERSION_LENGTH];
660 
661  // 27-46 word
663  char model_number[HARDDISK_MODEL_NUMBER_LENGTH];
664 
665  // 47 word
667  uint8_t value_80h : 8;
670 
671  // 48 word
674 
675  // 49-50 word
678 
679  // 51 word
680  // Obsolete
681  uint16_t : 16;
682 
683  // 52 word
684  // Obsolete
685  uint16_t : 16;
686 
687  // 53 word
688  // Obsolete
689  uint8_t : 1;
693  uint8_t fields_88_are_valid : 1;
694  // Reserved
695  uint8_t : 5;
698 
699  // 54 word
700  // Obsolete
701  uint16_t : 16;
702 
703  // 55 word
704  // Obsolete
705  uint16_t : 16;
706 
707  // 56 word
708  // Obsolete
709  uint16_t : 16;
710 
711  // 57 word
712  // Obsolete
713  uint16_t : 16;
714 
715  // 58 word
716  // Obsolete
717  uint16_t : 16;
718 
719  // 59 word
724  // Reserved
725  uint8_t : 3;
734 
735  // 60-61 word
738 
739  // 62 word
740  // Obsolete
741  uint16_t : 16;
742 
743  // 63 word
750  // Reserved
751  uint8_t : 5;
758  // Reserved
759  uint8_t : 5;
760 
761  // 64 word
763  uint8_t pio_modes_supported : 8;
764  // Reserved
765  uint8_t : 8;
766 
767  // 65 word
770 
771  // 66 word
774 
775  // 67 word
778 
779  // 68 word
782 
783  // 69 word
786 
787  // 70 word
788  // Reserved
789  uint16_t : 16;
790 
791  // 71 word
792  // Reserved for the IDENTITY PACKET DEVICE command.
793  uint16_t : 16;
794 
795  // 72 word
796  // Reserved for the IDENTITY PACKET DEVICE command.
797  uint16_t : 16;
798 
799  // 73 word
800  // Reserved for the IDENTITY PACKET DEVICE command.
801  uint16_t : 16;
802 
803  // 74 word
804  // Reserved for the IDENTITY PACKET DEVICE command.
805  uint16_t : 16;
806 
807  // 75 word
809  uint8_t queue_depth : 5;
810  // Reserved
811  uint16_t : 11;
812 
813  // 76-77 word
816 
817  // 78 word
820 
821  // 79 word
824 
825  // 80 word
828 
829  // 81 word
831  uint16_t minor_revision : 16;
832 
833  // 82-84 word
836 
837  // 85-87 word
840 
841  // 88 word
844 
845  // 89 word
848 
849  // 90 word
852 
853  // 91 word
856 
857  // 92 word
860 
861  // 93 word
864 
865  // 94 word
870 
871  // 95 word
873  uint16_t stream_min_request_size : 16;
874 
875  // 96 word
878 
879  // 97 word
882 
883  // 98-99 word
886 
887  // 100-103 word
890 
891  // 104 word
894 
895  // 105 word
896  // Reserved
897  uint16_t : 16;
898 
899  // 106 word
902 
903  // 107 word
905  uint16_t inter_seek_delay : 16;
906 
907  // 108-111 word
910 
911  // 112-115 word
912  // Reserved for worldwide name extension to 128 bits.
913  uint64_t : 64;
914 
915  // 116 word
916  // Reserved for technical report.
917  uint16_t : 16;
918 
919  // 117-118 word
922 
923  // 119 word
924  // Reserved
925  uint16_t : 16;
926 
927  // 120 word
928  // Reserved
929  uint16_t : 16;
930 
931  // 121 word
932  // Reserved
933  uint16_t : 16;
934 
935  // 122 word
936  // Reserved
937  uint16_t : 16;
938 
939  // 123 word
940  // Reserved
941  uint16_t : 16;
942 
943  // 124 word
944  // Reserved
945  uint16_t : 16;
946 
947  // 125 word
948  // Reserved
949  uint16_t : 16;
950 
951  // 126 word
952  // Reserved
953  uint16_t : 16;
954 
955  // 127 word
957 
962  // Reserved
963  uint16_t : 14;
964 
965  // 128 word
968 
969  // 129-159 word
971  uint16_t vendor_specific[31];
972 
973  // 160 word
976 
977  // 161-175 word
978  // Reserved for assignment by the CompactFlash Association.
979  uint16_t reserved_161_175[15];
980 
981  // 176-205 word
983  uint16_t current_media_serial_number[30];
984 
985  // 206-254 word
986  // Reserved
987  uint16_t reserved_206_254[49];
988 
989  // 255 word
991  uint8_t signature : 8;
993  uint8_t checksum : 8;
994 
995 } __attribute__((packed)) harddisk_identify_device_data_fields;
996 
998 
1000 {
1004  uint16_t values[256];
1006 
1007 #endif
uint8_t host_protected_area
Host Protected Area feature set supported.
Definition: harddisk_identify_device_data.h:255
uint8_t dma_supported
DMA supported.
Definition: harddisk_identify_device_data.h:55
uint8_t supports_ata_atapi_5
Supports ATA/ATAPI-5.
Definition: harddisk_identify_device_data.h:216
uint8_t how_determined_device_1_number
These bits indicate how device 1 determined the device number.
Definition: harddisk_identify_device_data.h:509
uint8_t address_48_bit
48-bit Address feature set supported.
Definition: harddisk_identify_device_data.h:391
uint8_t service_interrupt
SERVICE interrupt enabled.
Definition: harddisk_identify_device_data.h:354
uint8_t set_max
SET MAX security extension supported.
Definition: harddisk_identify_device_data.h:284
command_set_active_fields command_set_active
Command Set Active.
Definition: harddisk_identify_device_data.h:839
uint8_t dma_setup_auto_activation
Device supports DMA setup auto-activation.
Definition: harddisk_identify_device_data.h:169
uint8_t non_zero_buffer_offset
Non-zero buffer offset enabled.
Definition: harddisk_identify_device_data.h:191
uint8_t download_microcode
DOWNLOAD MICROCODE command supported.
Definition: harddisk_identify_device_data.h:371
uint8_t release_interrupt
Release interrupt enabled.
Definition: harddisk_identify_device_data.h:352
uint8_t device_configuration_overlay
Device Configuration Overlay feature set supported.
Definition: harddisk_identify_device_data.h:290
uint8_t ultra_dma_mode_0_supported
Ultra DMA mode 0 is supported.
Definition: harddisk_identify_device_data.h:439
uint8_t fields_64_70_are_valid
Fields reported in words 64-70 are valid.
Definition: harddisk_identify_device_data.h:691
uint8_t hipm
Supports receipt of host initiated power management requests.
Definition: harddisk_identify_device_data.h:133
uint8_t long_physical_sector_alignment_error_reporting_control_is_supported
Long Physical Sector Alignment Error Reporting Control is supported.
Definition: harddisk_identify_device_data.h:109
uint8_t hardware_setting_preservation
Device supports Hardware Settings Preservation.
Definition: harddisk_identify_device_data.h:177
uint8_t logical_sector_per_physical_sectors
Definition: harddisk_identify_device_data.h:530
uint16_t trusted_computing_reserved
Reserved for Trusted Computing Group.
Definition: harddisk_identify_device_data.h:42
uint8_t how_determined_device_0_number
These bits indicate how device 0 determined the device number.
Definition: harddisk_identify_device_data.h:486
Trusted Computing.
Definition: harddisk_identify_device_data.h:37
uint8_t trusted_computing_set_to_zero
Trusted Computing will be set to zero.
Definition: harddisk_identify_device_data.h:46
uint8_t mandatory_flush_cache
Mandatory FLUSH CACHE command supported.
Definition: harddisk_identify_device_data.h:395
uint8_t assertion_of_dasp
Device 0 detected the assertion of DASP.
Definition: harddisk_identify_device_data.h:492
uint8_t security_enabled
Security enabled.
Definition: harddisk_identify_device_data.h:567
capabilities_fields capabilities
Capabilities.
Definition: harddisk_identify_device_data.h:677
general_configuration_fields general_configuration
General configuration bit.
Definition: harddisk_identify_device_data.h:607
uint8_t supports_ata_atapi_6
Supports ATA/ATAPI-6.
Definition: harddisk_identify_device_data.h:218
Serial ATA features supported.
Definition: harddisk_identify_device_data.h:162
uint8_t the_sanitize_feature_set_is_supported
The sanitize feature set is supported.
Definition: harddisk_identify_device_data.h:727
uint8_t ultra_dma_mode_5_selected
Ultra DMA mode 5 is selected.
Definition: harddisk_identify_device_data.h:465
uint8_t receive_send_fpdma_queued
Supports RECEIVE FPDMA QUEUED and SEND FPDMA QUEUED commands.
Definition: harddisk_identify_device_data.h:156
uint8_t max_number_of_sectors_per_interrupt
00h = Reserved. 01h-FFh - Maximum number of sectors that will be transfered per interrupt on READ/WRI...
Definition: harddisk_identify_device_data.h:669
uint8_t ncq
Supports NCQ feature set.
Definition: harddisk_identify_device_data.h:131
harddisk_identify_device_data_fields fields
Fields of this union.
Definition: harddisk_identify_device_data.h:1002
uint8_t ultra_dma_mode_6_selected
Ultra DMA mode 6 is selected.
Definition: harddisk_identify_device_data.h:467
uint16_t inter_seek_delay
Inter-seek delay for ISO-7770 acoustic testing in microseconds.
Definition: harddisk_identify_device_data.h:905
uint8_t cfa
CFA feature set enabled.
Definition: harddisk_identify_device_data.h:375
uint8_t removable_media_status_notification_support
Removable Media Status Notification feature set support.
Definition: harddisk_identify_device_data.h:961
uint8_t security_frozen
Security frozen.
Definition: harddisk_identify_device_data.h:571
uint8_t advanced_power_management
Advanced Power Management feature set enabled.
Definition: harddisk_identify_device_data.h:377
uint8_t worldwide_name_64_bit
64-bit Worldwide name supported.
Definition: harddisk_identify_device_data.h:418
uint8_t read_write_dma_queued
READ/WRITE DMA QUEUED supported.
Definition: harddisk_identify_device_data.h:270
uint8_t ultra_dma_mode_6_and_below_supported
Ultra DMA mode 6 and below are supported.
Definition: harddisk_identify_device_data.h:451
Major revision.
Definition: harddisk_identify_device_data.h:209
uint8_t assertion_of_pdiag
Device 0 detected the assertion of PDIAG.
Definition: harddisk_identify_device_data.h:490
uint8_t removable_media
Removable Media feature set supported.
Definition: harddisk_identify_device_data.h:239
Additional supported.
Definition: harddisk_identify_device_data.h:82
uint8_t ultra_dma_mode_4_and_below_supported
Ultra DMA mode 4 and below are supported.
Definition: harddisk_identify_device_data.h:447
uint8_t set_max
SET MAX security extension enabled by SET MAX SET PASSWORD.
Definition: harddisk_identify_device_data.h:387
uint8_t current_acoustic_value
Current automatic acoustic management value.
Definition: harddisk_identify_device_data.h:867
uint32_t total_number_of_user_addressable_sectors
Total number of user addressable sectors.
Definition: harddisk_identify_device_data.h:737
uint8_t write_buffer_command
WRITE BUFFER command supported.
Definition: harddisk_identify_device_data.h:259
uint8_t passed_diagnostics
Device 0 passed diagnostics.
Definition: harddisk_identify_device_data.h:488
uint8_t smart
SMART feature set enabled.
Definition: harddisk_identify_device_data.h:338
uint8_t powerup_in_standby
Power-up In Standby feature set enabled.
Definition: harddisk_identify_device_data.h:381
Serial ATA capabilities.
Definition: harddisk_identify_device_data.h:117
uint8_t determinic_read_after_trim_supported
Deterministic data is trimmed LBA range(s) is supported.
Definition: harddisk_identify_device_data.h:111
uint8_t iordy_supported
IORDY supported.
Definition: harddisk_identify_device_data.h:61
uint8_t idle_with_unload_feature
1 = IDLE IMMEDIATE with UNLOAD FEATURE supported.
Definition: harddisk_identify_device_data.h:428
uint8_t ultra_dma_mode_5_and_below_supported
Ultra DMA mode 5 and below are supported.
Definition: harddisk_identify_device_data.h:449
uint8_t powerup_in_standby
Power-up In Standby feature set supported.
Definition: harddisk_identify_device_data.h:278
Hard disk Identify Device Data.
Definition: harddisk_identify_device_data.h:603
uint16_t min_pio_transfer_cycle_time_with_iordy_flow_control
Minimum PIO transfer cycle time with IORDT flow control.
Definition: harddisk_identify_device_data.h:781
Command Set Active.
Definition: harddisk_identify_device_data.h:335
uint8_t dma_setup_auto_activation
DMA setup auto-activation enabled.
Definition: harddisk_identify_device_data.h:193
uint8_t mandatory_power_management
Mandatory Power Management feature set supported.
Definition: harddisk_identify_device_data.h:241
uint8_t ncq_streaming
Supports NCQ streaming.
Definition: harddisk_identify_device_data.h:152
Harware reset result.
Definition: harddisk_identify_device_data.h:473
uint16_t steraming_transfer_time_dma
Streaming Transfer Time - DMA.
Definition: harddisk_identify_device_data.h:877
uint8_t multiword_dma_mode_0_is_supported
1 = Multiword DMA mode 0 is supported
Definition: harddisk_identify_device_data.h:745
uint8_t media_serial_number
Media serial number supported.
Definition: harddisk_identify_device_data.h:305
uint8_t standby_timer_type
1 = standby timer values as specified in this standard are supported, 0 = standby timer values will b...
Definition: harddisk_identify_device_data.h:65
uint8_t general_purpose_logging
General Purpose Logging feature set supported.
Definition: harddisk_identify_device_data.h:412
uint8_t automatic_acoustic_management
Automatic Acoustic Management feature set supported.
Definition: harddisk_identify_device_data.h:286
uint32_t steraming_performance_granularity
Streaming Performance Granularity.
Definition: harddisk_identify_device_data.h:885
uint8_t ultra_dma_mode_0_selected
Ultra DMA mode 0 is selected.
Definition: harddisk_identify_device_data.h:455
uint16_t min_multiword_DMA_transfer_cycle_time_per_word
Minimum multiword DMA transfer cycle time per word.
Definition: harddisk_identify_device_data.h:769
uint8_t read_buffer_command
READ BUFFER command enabled.
Definition: harddisk_identify_device_data.h:364
uint8_t flush_cache_ext
FLUSH CACHE EXT command supported.
Definition: harddisk_identify_device_data.h:397
#define HARDDISK_MODEL_NUMBER_LENGTH
Length of hard disk model number.
Definition: harddisk_identify_device_data.h:13
uint8_t packet_command
PACKET Command feature set not supported if cleared to zero.
Definition: harddisk_identify_device_data.h:346
uint8_t ultra_dma_mode_1_and_below_supported
Ultra DMA mode 1 and below are supported.
Definition: harddisk_identify_device_data.h:441
uint16_t master_password_revision_code
Master Password Revision Code.
Definition: harddisk_identify_device_data.h:859
uint8_t iordy_may_be_disabled_or_supported
IORDY may be disabled = 1 or may be supported = 0.
Definition: harddisk_identify_device_data.h:59
uint8_t cblid_detection
1 = device detected CBLID - above V_iH, 0 = device detected CBLID - below V_iL.
Definition: harddisk_identify_device_data.h:516
uint8_t queue_depth
Maximum queue depth - 1.
Definition: harddisk_identify_device_data.h:809
uint8_t ultra_dma_mode_2_selected
Ultra DMA mode 2 is selected.
Definition: harddisk_identify_device_data.h:459
uint8_t flush_cache_ext
FLUSH CACHE EXT command supported.
Definition: harddisk_identify_device_data.h:294
uint8_t write_dma_queued_fua_ext
WRITE DMA QUEUED FUA EXT command supported.
Definition: harddisk_identify_device_data.h:416
uint8_t device_reset_command
DEVICE RESET command supported.
Definition: harddisk_identify_device_data.h:253
serial_ata_features_enabled_fields serial_ata_features_enabled
Serial ATA features enabled.
Definition: harddisk_identify_device_data.h:823
Physical/Logical Sector Size.
Definition: harddisk_identify_device_data.h:524
General configuration bit.
Definition: harddisk_identify_device_data.h:16
uint8_t general_purpose_logging
General Purpose Logging feature set supported.
Definition: harddisk_identify_device_data.h:311
uint16_t ieee_oui_12_23
IEEE UI 12-23.
Definition: harddisk_identify_device_data.h:545
uint64_t maximum_user_lba_for_48_bit
Maximum user LBA for 48-bit Address feature set.
Definition: harddisk_identify_device_data.h:889
uint8_t ultra_dma_mode_3_selected
Ultra DMA mode 3 is selected.
Definition: harddisk_identify_device_data.h:461
uint8_t non_zero_buffer_offset
Device supports non-zero buffer offset.
Definition: harddisk_identify_device_data.h:167
uint16_t manufaturers_recommended_multiword_DMA_transfer_cycle_time
Manufacturers recommended multiword DMA transfer cycle time.
Definition: harddisk_identify_device_data.h:773
uint16_t time_required_for_enhanced_security_erase
Time required for Enhanced security erase unit completion.
Definition: harddisk_identify_device_data.h:851
uint8_t device_encrypts_all_user_data_on_the_device
Device Encrypts All User Data on the device.
Definition: harddisk_identify_device_data.h:91
uint16_t steraming_access_latency_dma_pio
Streaming Access Lantecy - DMA and PIO.
Definition: harddisk_identify_device_data.h:881
uint16_t unique_id_16_31
Unique ID 16-31.
Definition: harddisk_identify_device_data.h:555
uint8_t sata_gen2
Supports SATA Gen2 Signaling Speed.
Definition: harddisk_identify_device_data.h:125
uint8_t unload_while_ncq
Supports Unload while NCQ commands are outstanding.
Definition: harddisk_identify_device_data.h:137
uint8_t security_supported
Security supported.
Definition: harddisk_identify_device_data.h:565
#define HARDDISK_SERIAL_NUMBER_LENGTH
Length of hard disk serial number.
Definition: harddisk_identify_device_data.h:7
uint8_t multiword_dma_mode_2_is_selected
1 = Multiword DMA mode 0 is selected, 0 = Multiword DMA mode 0 is not selected
Definition: harddisk_identify_device_data.h:757
uint8_t release_interrupt
Release interrupt supported.
Definition: harddisk_identify_device_data.h:249
uint8_t the_overwrite_text_command_is_supported
The OVERWRITE TEXT command is supported.
Definition: harddisk_identify_device_data.h:731
uint8_t smart_self_test
SMART seft-test supported.
Definition: harddisk_identify_device_data.h:404
uint8_t manual_powerup
SET FEATURES subcommand required to spinup after power-up.
Definition: harddisk_identify_device_data.h:280
uint8_t multiple_logical_sector_per_physical_sector
Device has multiple Logical Sector per physical sector.
Definition: harddisk_identify_device_data.h:534
uint8_t security_count_expired
Security count expired.
Definition: harddisk_identify_device_data.h:573
Capabilities.
Definition: harddisk_identify_device_data.h:50
uint8_t ultra_dma_mode_1_selected
Ultra DMA mode 1 is selected.
Definition: harddisk_identify_device_data.h:457
uint8_t value_80h
Value 80h.
Definition: harddisk_identify_device_data.h:667
ultra_dma_modes_fields ultra_dma_modes
Ultra DMA modes.
Definition: harddisk_identify_device_data.h:843
uint8_t write_buffer_command
WRITE BUFFER command enabled.
Definition: harddisk_identify_device_data.h:362
uint8_t initiating_power_management
Device supports initiating power management.
Definition: harddisk_identify_device_data.h:171
uint8_t ultra_dma_mode_2_and_below_supported
Ultra DMA mode 2 and below are supported.
Definition: harddisk_identify_device_data.h:443
uint8_t security_level
Security level.
Definition: harddisk_identify_device_data.h:581
uint8_t packet_command
PACKET Command feature set not supported if cleared to zero.
Definition: harddisk_identify_device_data.h:243
uint16_t unique_id_0_15
Unique ID 0-15.
Definition: harddisk_identify_device_data.h:558
hardware_reset_result_fields hardware_reset_result
Harware reset result.
Definition: harddisk_identify_device_data.h:863
uint8_t response_incomplete
Response incomplete.
Definition: harddisk_identify_device_data.h:23
uint8_t mandatory_flush_cache
Mandatory FLUSH CACHE command supported.
Definition: harddisk_identify_device_data.h:292
uint8_t security_mode
Security Mode feature set supported.
Definition: harddisk_identify_device_data.h:237
uint8_t mcq_queue_management_command
Supports NCQ Queue Management Command.
Definition: harddisk_identify_device_data.h:154
Hard disk Identify Device Data.
Definition: harddisk_identify_device_data.h:999
uint8_t multiword_dma_mode_1__is_selected
1 = Multiword DMA mode 0 is selected, 0 = Multiword DMA mode 0 is not selected
Definition: harddisk_identify_device_data.h:755
uint8_t write_dma_fua_ext
WRITE DMA FUA EXT and WRITE MULTIPLE FUA EXT commands supported.
Definition: harddisk_identify_device_data.h:313
uint8_t supports_acs_3
Supports ACA-3.
Definition: harddisk_identify_device_data.h:226
uint8_t address_48_bit
48-bit Address feature set supported.
Definition: harddisk_identify_device_data.h:288
uint8_t auto_ps_transictions
Automatic Partial to Slumber transitions enabled.
Definition: harddisk_identify_device_data.h:203
Ultra DMA modes.
Definition: harddisk_identify_device_data.h:436
uint8_t host_protected_area
Host Protected Area feature set enabled.
Definition: harddisk_identify_device_data.h:358
uint8_t checksum
Checksum.
Definition: harddisk_identify_device_data.h:993
serial_ata_features_supported_fields serial_ata_features_supported
Serial ATA features supported.
Definition: harddisk_identify_device_data.h:819
uint8_t urg_for_read_stream
URG bit supported for READ STREAM DMA EXT and READ STREAM EXT.
Definition: harddisk_identify_device_data.h:420
uint16_t time_required_for_security_erase
Time required for security erase unit completion.
Definition: harddisk_identify_device_data.h:847
uint8_t multiword_dma_mode_1_and_below_are_supported
1 = Multiword DMA mode 1 and below are supported
Definition: harddisk_identify_device_data.h:747
Command Set Support.
Definition: harddisk_identify_device_data.h:232
uint8_t in_order_data_delivery
Device supports in-order data delivery.
Definition: harddisk_identify_device_data.h:173
uint8_t trimmed_lba_range_returning_zeroed_data_is_supported
Trimmed LBA range(s) returning zeroed data is supported.
Definition: harddisk_identify_device_data.h:93
uint8_t removable_media
Removable Media feature set enabled.
Definition: harddisk_identify_device_data.h:342
uint8_t mandatory_power_management
Mandatory Power Management feature set enabled.
Definition: harddisk_identify_device_data.h:344
Security status.
Definition: harddisk_identify_device_data.h:562
uint8_t streaming
Streaming feature set supported.
Definition: harddisk_identify_device_data.h:309
security_status_fields security_status
Security status.
Definition: harddisk_identify_device_data.h:967
uint8_t ultra_dma_mode_4_selected
Ultra DMA mode 4 is selected.
Definition: harddisk_identify_device_data.h:463
uint8_t phy_event_counters
Supports the SATA Phy Event Counters log.
Definition: harddisk_identify_device_data.h:135
uint8_t automatic_acoustic_management
Automatic Acoustic Management feature set enabled.
Definition: harddisk_identify_device_data.h:389
uint8_t number_of_logical_sectors_per_drq
Current setting for number of logical sectors that will be trensfered per DRQ data block...
Definition: harddisk_identify_device_data.h:721
uint8_t reserved_for_tech_report_1
Reserved for technical report.
Definition: harddisk_identify_device_data.h:323
uint8_t signature
Signature.
Definition: harddisk_identify_device_data.h:991
uint8_t nop_command
NOP command supported.
Definition: harddisk_identify_device_data.h:263
uint8_t enhanced_security_erase_supported
Enhanced security erase supported.
Definition: harddisk_identify_device_data.h:575
uint8_t download_microcode
DOWNLOAD MICROCODE command supported.
Definition: harddisk_identify_device_data.h:268
uint8_t ncq_autosense
Device supports NCQ Autosense.
Definition: harddisk_identify_device_data.h:179
uint8_t sata_gen3
Supports SATA Gen3 Signaling Speed.
Definition: harddisk_identify_device_data.h:127
uint8_t supports_ata_atapi_7
Supports ATA/ATAPI-7.
Definition: harddisk_identify_device_data.h:220
uint16_t naa_0_3
NAA 0-3.
Definition: harddisk_identify_device_data.h:547
uint8_t advanced_power_management
Advanced Power Management feature set supported.
Definition: harddisk_identify_device_data.h:274
uint8_t write_dma_fua_ext
WRITE DMA FUA EXT and WRITE MULTIPLE FUA EXT commands supported.
Definition: harddisk_identify_device_data.h:414
uint8_t manual_powerup
SET FEATURES subcommand required to spinup after power-up.
Definition: harddisk_identify_device_data.h:383
uint8_t multiword_dma_mode_2_and_below_are_supported
1 = Multiword DMA mode 2 and below are supported
Definition: harddisk_identify_device_data.h:749
uint16_t stream_min_request_size
Stream Minimum Request Size.
Definition: harddisk_identify_device_data.h:873
trusted_computing_fields trusted_computing
Trusted Computing.
Definition: harddisk_identify_device_data.h:673
uint8_t removable_media_device
1 = removable media device.
Definition: harddisk_identify_device_data.h:29
uint8_t multiword_dma_mode_0_is_selected
1 = Multiword DMA mode 0 is selected, 0 = Multiword DMA mode 0 is not selected
Definition: harddisk_identify_device_data.h:753
uint8_t cfa_power_mode_1_disabled
CFA power mode 1 is disabled.
Definition: harddisk_identify_device_data.h:592
uint16_t unique_id_32_35
Unique ID 32-35.
Definition: harddisk_identify_device_data.h:550
uint8_t in_order_data_delivery
In-order data delivery enabled.
Definition: harddisk_identify_device_data.h:197
uint8_t recommended_acoustic_value
Vendor&#39;s recommended acoustic management value.
Definition: harddisk_identify_device_data.h:869
uint16_t maximum_current_in_ma
Maximum current in ma.
Definition: harddisk_identify_device_data.h:590
additional_supported_fields additional_supported
Additional supported.
Definition: harddisk_identify_device_data.h:785
uint8_t write_dma_queued_fua_ext
WRITE DMA QUEUED FUA EXT command supported.
Definition: harddisk_identify_device_data.h:315
uint16_t specific_configuration
Specific configuration.
Definition: harddisk_identify_device_data.h:615
cfa_power_mode_1_fields cfa_power_mode_1
CFA power mode 1.
Definition: harddisk_identify_device_data.h:975
uint8_t read_buffer_command
READ BUFFER command supported.
Definition: harddisk_identify_device_data.h:261
major_revision_fields major_revision
Major revision.
Definition: harddisk_identify_device_data.h:827
uint8_t capabilities_set_to_zero
Will be set to zero.
Definition: harddisk_identify_device_data.h:78
uint8_t look_ahead
Look-ahead supported.
Definition: harddisk_identify_device_data.h:247
uint8_t media__card_pass_through
Media Card Pass Through Command feature set supported.
Definition: harddisk_identify_device_data.h:307
uint8_t urg_for_write_stream
URG bit supported for WRITE STREAM DMA EXT and WRITE STREAM EXT.
Definition: harddisk_identify_device_data.h:422
uint8_t the_crypto_scramble_text_command_is_supported
The CRYPTO SCRAMBLE TEXT command is supported.
Definition: harddisk_identify_device_data.h:729
uint8_t supports_acs_2
Supports ACS-2.
Definition: harddisk_identify_device_data.h:224
uint8_t read_write_dma_queued
READ/WRITE DMA QUEUED supported.
Definition: harddisk_identify_device_data.h:373
uint8_t smart
SMART feature set supported.
Definition: harddisk_identify_device_data.h:235
uint8_t urg_for_write_stream
URG bit supported for WRITE STREAM DMA EXT and WRITE STREAM EXT.
Definition: harddisk_identify_device_data.h:321
uint8_t smart_self_test
SMART seft-test supported.
Definition: harddisk_identify_device_data.h:303
uint8_t cfa_powe_mode_1_required
CFA power mode 1 is required for one or more commands implemented by the device.
Definition: harddisk_identify_device_data.h:594
uint8_t worldwide_name_64_bit
64-bit Worldwide name supported.
Definition: harddisk_identify_device_data.h:317
uint8_t look_ahead
Look-ahead enabled.
Definition: harddisk_identify_device_data.h:350
uint8_t hardware_feature_control
Device supports Hardware Feature Control.
Definition: harddisk_identify_device_data.h:175
uint16_t min_pio_transfer_cycle_time_without_flow_control
Minimum PIO transfer cycle time without flow control.
Definition: harddisk_identify_device_data.h:777
uint8_t extended_number_of_user_addressable_sectors_is_supported
Extended Number of User Addressable Sectors is supported.
Definition: harddisk_identify_device_data.h:89
uint8_t lba_supported
LBA supported.
Definition: harddisk_identify_device_data.h:57
uint8_t removable_media_status_notification
Removable Media Status Notification feature set enabled.
Definition: harddisk_identify_device_data.h:379
uint8_t freefall_control_sensitivity
Free-fall Control Sensitivity.
Definition: harddisk_identify_device_data.h:697
uint8_t service_interrupt
SERVICE interrupt supported.
Definition: harddisk_identify_device_data.h:251
uint8_t multiple_logical_sector_setting_is_valid
Multiple logical sector setting is valid.
Definition: harddisk_identify_device_data.h:723
uint8_t smart_error_logging
SMART error logging supported.
Definition: harddisk_identify_device_data.h:402
uint8_t write_cache
Write cache enabled.
Definition: harddisk_identify_device_data.h:348
command_set_support_fields command_set_support
Command Set Support.
Definition: harddisk_identify_device_data.h:835
uint8_t host_auto_ps_transactions
Supports Host Automatic Partial to Slumber transitions.
Definition: harddisk_identify_device_data.h:141
uint8_t reserved_for_tech_report_2
Reserved for technical report.
Definition: harddisk_identify_device_data.h:325
uint8_t standby_timer_value_min
Will be set to one to indicate a device specific Standby timer value minimum.
Definition: harddisk_identify_device_data.h:70
uint8_t logical_sector_longer_than_256_words
Device Logical Sector Longer than 256 Words.
Definition: harddisk_identify_device_data.h:532
Serial ATA features enabled.
Definition: harddisk_identify_device_data.h:185
uint8_t device_reset_command
DEVICE RESET command enabled.
Definition: harddisk_identify_device_data.h:356
uint8_t coded_value_for_current_sata_speed
Coded value indicating current negotiated Serial ATA signal speed.
Definition: harddisk_identify_device_data.h:150
serial_ata_capabilities_fields serial_ata_capabilities
Serial ATA capabilities.
Definition: harddisk_identify_device_data.h:815
uint8_t initiating_power_management
Initiating power management enabled.
Definition: harddisk_identify_device_data.h:195
uint8_t all_write_cache_is_non_volatile
All write cache is non-volatile.
Definition: harddisk_identify_device_data.h:87
uint16_t steraming_transfer_time_pio
Streaming Transfer Time - PIO.
Definition: harddisk_identify_device_data.h:893
uint8_t asserted_pdiag
Device 1 asserted PDIAG.
Definition: harddisk_identify_device_data.h:511
uint8_t write_buffer_dma_is_supported
WRITE BUFFER DMA is supported.
Definition: harddisk_identify_device_data.h:103
uint8_t pio_modes_supported
PIO modes supported.
Definition: harddisk_identify_device_data.h:763
uint8_t read_buffer_dma_is_supported
READ BUFFER DMA is supported.
Definition: harddisk_identify_device_data.h:105
uint8_t supports_ata8_acs
Supports ATA8-ACS.
Definition: harddisk_identify_device_data.h:222
uint8_t idle_with_unload_feature
1 = IDLE IMMEDIATE with UNLOAD FEATURE supported.
Definition: harddisk_identify_device_data.h:327
uint8_t capabilities_set_to_one
Will be set to one.
Definition: harddisk_identify_device_data.h:76
uint8_t hardware_feature_control
Hardware Feature Control enabled.
Definition: harddisk_identify_device_data.h:199
worldwide_name_fields worldwide_name
Worldwide name.
Definition: harddisk_identify_device_data.h:909
uint16_t minor_revision
Minor revision.
Definition: harddisk_identify_device_data.h:831
uint8_t ata_device
0 = ATA device.
Definition: harddisk_identify_device_data.h:33
uint8_t word_160_supported
Word 160 supported.
Definition: harddisk_identify_device_data.h:598
uint8_t removable_media_status_notification
Removable Media Status Notification feature set supported.
Definition: harddisk_identify_device_data.h:276
uint16_t current_advanced_power_management_value
Current advanced power management value.
Definition: harddisk_identify_device_data.h:855
uint8_t trusted_computing_feature_set_supported
Trusted Computing feature set is supported.
Definition: harddisk_identify_device_data.h:40
uint8_t media_serial_number_valid
Media serial number is valid.
Definition: harddisk_identify_device_data.h:406
physical_logical_sector_size_fields physical_logical_sector_size
Physical/Logical Sector Size.
Definition: harddisk_identify_device_data.h:901
uint8_t device_configuration_overlay
Device Configuration Overlay feature set supported.
Definition: harddisk_identify_device_data.h:393
uint8_t sata_gen1
Supports SATA Gen1 Signaling Speed.
Definition: harddisk_identify_device_data.h:123
uint8_t respond_when_device_1
Device 0 respond when Device 1 is selected.
Definition: harddisk_identify_device_data.h:494
uint8_t media__card_pass_through
Media Card Pass Through Command feature set enabled.
Definition: harddisk_identify_device_data.h:408
uint32_t words_per_logical_sector
Words per Logical Sector.
Definition: harddisk_identify_device_data.h:921
uint8_t write_cache
Write cache supported.
Definition: harddisk_identify_device_data.h:245
uint8_t logical_per_physical_sectors
2^x logical sectors per physical sector.
Definition: harddisk_identify_device_data.h:528
CFA power mode 1.
Definition: harddisk_identify_device_data.h:587
uint8_t ultra_dma_mode_3_and_below_supported
Ultra DMA mode 3 and below are supported.
Definition: harddisk_identify_device_data.h:445
uint8_t nop_command
NOP command enabled.
Definition: harddisk_identify_device_data.h:366
size_t uint32_t
Unsigned integral type.
Definition: string.h:8
#define HARDDISK_FIRMWARE_VERSION_LENGTH
Length of hard disk firmware version.
Definition: harddisk_identify_device_data.h:10
uint8_t cfa
CFA feature set supported.
Definition: harddisk_identify_device_data.h:272
uint8_t urg_for_read_stream
URG bit supported for READ STREAM DMA EXT and READ STREAM EXT.
Definition: harddisk_identify_device_data.h:319
uint8_t security_locked
Security locked.
Definition: harddisk_identify_device_data.h:569
Worldwide name.
Definition: harddisk_identify_device_data.h:542
uint8_t device_auto_ps_transactions
Supports Device Automatic Partial to Slumber transitions.
Definition: harddisk_identify_device_data.h:143
uint16_t ieee_oui_0_11
IEEE UI 0_11.
Definition: harddisk_identify_device_data.h:552
uint8_t configure_stream_executed
Valid CONFIGURE STREAM command has been executed.
Definition: harddisk_identify_device_data.h:410
uint8_t smart_error_logging
SMART error logging supported.
Definition: harddisk_identify_device_data.h:301
uint8_t ncq_priority
Supports NCQ priority information.
Definition: harddisk_identify_device_data.h:139
uint8_t read_log_dma_ext
Supports READ LOG DMA EXT as equivalent to READ LOG EXT.
Definition: harddisk_identify_device_data.h:145
uint8_t download_microcode_dma_is_supported
DOWNLOAD MICROCODE DMA is supported.
Definition: harddisk_identify_device_data.h:99
uint8_t security_mode
Security Mode feature set enabled.
Definition: harddisk_identify_device_data.h:340
uint8_t optional_ata_device_28_bit_command_support
O = optional ATA device 28-bit commands supported.
Definition: harddisk_identify_device_data.h:95
uint8_t hardware_setting_preservation
Hardware Settings Preservation enabled.
Definition: harddisk_identify_device_data.h:201
uint8_t fields_88_are_valid
Fields reported in words 88 are valid.
Definition: harddisk_identify_device_data.h:693
uint8_t the_block_erase_text_command_is_supported
The BLOCK ERASE TEXT command is supported.
Definition: harddisk_identify_device_data.h:733
uint8_t trusted_computing_set_to_one
Trusted Computing will be set to one.
Definition: harddisk_identify_device_data.h:44