| The Android Open Source Project | 1dc9e47 | 2009-03-03 19:28:35 -0800 | [diff] [blame] | 1 | /**************************************************************************** | 
|  | 2 | **************************************************************************** | 
|  | 3 | *** | 
|  | 4 | ***   This header was automatically generated from a Linux kernel header | 
|  | 5 | ***   of the same name, to make information necessary for userspace to | 
|  | 6 | ***   call into the kernel available to libc.  It contains only constants, | 
|  | 7 | ***   structures, and macros generated from the original header, and thus, | 
|  | 8 | ***   contains no copyrightable information. | 
|  | 9 | *** | 
|  | 10 | **************************************************************************** | 
|  | 11 | ****************************************************************************/ | 
|  | 12 | #ifndef _LINUX_HDSMART_H | 
|  | 13 | #define _LINUX_HDSMART_H | 
|  | 14 |  | 
|  | 15 | #define OFFLINE_FULL_SCAN 0 | 
|  | 16 | #define SHORT_SELF_TEST 1 | 
|  | 17 | #define EXTEND_SELF_TEST 2 | 
|  | 18 | #define SHORT_CAPTIVE_SELF_TEST 129 | 
|  | 19 | #define EXTEND_CAPTIVE_SELF_TEST 130 | 
|  | 20 |  | 
|  | 21 | typedef struct ata_smart_attribute_s { | 
|  | 22 | unsigned char id; | 
|  | 23 | unsigned short status_flag; | 
|  | 24 | unsigned char normalized; | 
|  | 25 | unsigned char worse_normal; | 
|  | 26 | unsigned char raw[6]; | 
|  | 27 | unsigned char reserv; | 
|  | 28 | } __attribute__ ((packed)) ata_smart_attribute_t; | 
|  | 29 |  | 
|  | 30 | typedef struct ata_smart_values_s { | 
|  | 31 | unsigned short revnumber; | 
|  | 32 | ata_smart_attribute_t vendor_attributes [30]; | 
|  | 33 | unsigned char offline_data_collection_status; | 
|  | 34 | unsigned char self_test_exec_status; | 
|  | 35 | unsigned short total_time_to_complete_off_line; | 
|  | 36 | unsigned char vendor_specific_366; | 
|  | 37 | unsigned char offline_data_collection_capability; | 
|  | 38 | unsigned short smart_capability; | 
|  | 39 | unsigned char errorlog_capability; | 
|  | 40 | unsigned char vendor_specific_371; | 
|  | 41 | unsigned char short_test_completion_time; | 
|  | 42 | unsigned char extend_test_completion_time; | 
|  | 43 | unsigned char reserved_374_385 [12]; | 
|  | 44 | unsigned char vendor_specific_386_509 [125]; | 
|  | 45 | unsigned char chksum; | 
|  | 46 | } __attribute__ ((packed)) ata_smart_values_t; | 
|  | 47 |  | 
|  | 48 | typedef struct ata_smart_threshold_entry_s { | 
|  | 49 | unsigned char id; | 
|  | 50 | unsigned char normalized_threshold; | 
|  | 51 | unsigned char reserved[10]; | 
|  | 52 | } __attribute__ ((packed)) ata_smart_threshold_entry_t; | 
|  | 53 |  | 
|  | 54 | typedef struct ata_smart_thresholds_s { | 
|  | 55 | unsigned short revnumber; | 
|  | 56 | ata_smart_threshold_entry_t thres_entries[30]; | 
|  | 57 | unsigned char reserved[149]; | 
|  | 58 | unsigned char chksum; | 
|  | 59 | } __attribute__ ((packed)) ata_smart_thresholds_t; | 
|  | 60 |  | 
|  | 61 | typedef struct ata_smart_errorlog_command_struct_s { | 
|  | 62 | unsigned char devicecontrolreg; | 
|  | 63 | unsigned char featuresreg; | 
|  | 64 | unsigned char sector_count; | 
|  | 65 | unsigned char sector_number; | 
|  | 66 | unsigned char cylinder_low; | 
|  | 67 | unsigned char cylinder_high; | 
|  | 68 | unsigned char drive_head; | 
|  | 69 | unsigned char commandreg; | 
|  | 70 | unsigned int timestamp; | 
|  | 71 | } __attribute__ ((packed)) ata_smart_errorlog_command_struct_t; | 
|  | 72 |  | 
|  | 73 | typedef struct ata_smart_errorlog_error_struct_s { | 
|  | 74 | unsigned char error_condition; | 
|  | 75 | unsigned char extended_error[14]; | 
|  | 76 | unsigned char state; | 
|  | 77 | unsigned short timestamp; | 
|  | 78 | } __attribute__ ((packed)) ata_smart_errorlog_error_struct_t; | 
|  | 79 |  | 
|  | 80 | typedef struct ata_smart_errorlog_struct_s { | 
|  | 81 | ata_smart_errorlog_command_struct_t commands[6]; | 
|  | 82 | ata_smart_errorlog_error_struct_t error_struct; | 
|  | 83 | } __attribute__ ((packed)) ata_smart_errorlog_struct_t; | 
|  | 84 |  | 
|  | 85 | typedef struct ata_smart_errorlog_s { | 
|  | 86 | unsigned char revnumber; | 
|  | 87 | unsigned char error_log_pointer; | 
|  | 88 | ata_smart_errorlog_struct_t errorlog_struct[5]; | 
|  | 89 | unsigned short ata_error_count; | 
|  | 90 | unsigned short non_fatal_count; | 
|  | 91 | unsigned short drive_timeout_count; | 
|  | 92 | unsigned char reserved[53]; | 
|  | 93 | unsigned char chksum; | 
|  | 94 | } __attribute__ ((packed)) ata_smart_errorlog_t; | 
|  | 95 |  | 
|  | 96 | typedef struct ata_smart_selftestlog_struct_s { | 
|  | 97 | unsigned char selftestnumber; | 
|  | 98 | unsigned char selfteststatus; | 
|  | 99 | unsigned short timestamp; | 
|  | 100 | unsigned char selftestfailurecheckpoint; | 
|  | 101 | unsigned int lbafirstfailure; | 
|  | 102 | unsigned char vendorspecific[15]; | 
|  | 103 | } __attribute__ ((packed)) ata_smart_selftestlog_struct_t; | 
|  | 104 |  | 
|  | 105 | typedef struct ata_smart_selftestlog_s { | 
|  | 106 | unsigned short revnumber; | 
|  | 107 | ata_smart_selftestlog_struct_t selftest_struct[21]; | 
|  | 108 | unsigned char vendorspecific[2]; | 
|  | 109 | unsigned char mostrecenttest; | 
|  | 110 | unsigned char resevered[2]; | 
|  | 111 | unsigned char chksum; | 
|  | 112 | } __attribute__ ((packed)) ata_smart_selftestlog_t; | 
|  | 113 |  | 
|  | 114 | #endif |