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 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _LINUX_HDSMART_H
20#define _LINUX_HDSMART_H
21#define OFFLINE_FULL_SCAN 0
22#define SHORT_SELF_TEST 1
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24#define EXTEND_SELF_TEST 2
25#define SHORT_CAPTIVE_SELF_TEST 129
26#define EXTEND_CAPTIVE_SELF_TEST 130
27typedef struct ata_smart_attribute_s {
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 unsigned char id;
30 unsigned short status_flag;
31 unsigned char normalized;
32 unsigned char worse_normal;
33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 unsigned char raw[6];
35 unsigned char reserv;
36} __attribute__ ((packed)) ata_smart_attribute_t;
37typedef struct ata_smart_values_s {
38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39 unsigned short revnumber;
40 ata_smart_attribute_t vendor_attributes [30];
41 unsigned char offline_data_collection_status;
42 unsigned char self_test_exec_status;
43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 unsigned short total_time_to_complete_off_line;
45 unsigned char vendor_specific_366;
46 unsigned char offline_data_collection_capability;
47 unsigned short smart_capability;
48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 unsigned char errorlog_capability;
50 unsigned char vendor_specific_371;
51 unsigned char short_test_completion_time;
52 unsigned char extend_test_completion_time;
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 unsigned char reserved_374_385 [12];
55 unsigned char vendor_specific_386_509 [125];
56 unsigned char chksum;
57} __attribute__ ((packed)) ata_smart_values_t;
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59typedef struct ata_smart_threshold_entry_s {
60 unsigned char id;
61 unsigned char normalized_threshold;
62 unsigned char reserved[10];
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64} __attribute__ ((packed)) ata_smart_threshold_entry_t;
65typedef struct ata_smart_thresholds_s {
66 unsigned short revnumber;
67 ata_smart_threshold_entry_t thres_entries[30];
68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 unsigned char reserved[149];
70 unsigned char chksum;
71} __attribute__ ((packed)) ata_smart_thresholds_t;
72typedef struct ata_smart_errorlog_command_struct_s {
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 unsigned char devicecontrolreg;
75 unsigned char featuresreg;
76 unsigned char sector_count;
77 unsigned char sector_number;
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79 unsigned char cylinder_low;
80 unsigned char cylinder_high;
81 unsigned char drive_head;
82 unsigned char commandreg;
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84 unsigned int timestamp;
85} __attribute__ ((packed)) ata_smart_errorlog_command_struct_t;
86typedef struct ata_smart_errorlog_error_struct_s {
87 unsigned char error_condition;
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 unsigned char extended_error[14];
90 unsigned char state;
91 unsigned short timestamp;
92} __attribute__ ((packed)) ata_smart_errorlog_error_struct_t;
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94typedef struct ata_smart_errorlog_struct_s {
95 ata_smart_errorlog_command_struct_t commands[6];
96 ata_smart_errorlog_error_struct_t error_struct;
97} __attribute__ ((packed)) ata_smart_errorlog_struct_t;
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99typedef struct ata_smart_errorlog_s {
100 unsigned char revnumber;
101 unsigned char error_log_pointer;
102 ata_smart_errorlog_struct_t errorlog_struct[5];
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104 unsigned short ata_error_count;
105 unsigned short non_fatal_count;
106 unsigned short drive_timeout_count;
107 unsigned char reserved[53];
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 unsigned char chksum;
110} __attribute__ ((packed)) ata_smart_errorlog_t;
111typedef struct ata_smart_selftestlog_struct_s {
112 unsigned char selftestnumber;
113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114 unsigned char selfteststatus;
115 unsigned short timestamp;
116 unsigned char selftestfailurecheckpoint;
117 unsigned int lbafirstfailure;
118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 unsigned char vendorspecific[15];
120} __attribute__ ((packed)) ata_smart_selftestlog_struct_t;
121typedef struct ata_smart_selftestlog_s {
122 unsigned short revnumber;
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124 ata_smart_selftestlog_struct_t selftest_struct[21];
125 unsigned char vendorspecific[2];
126 unsigned char mostrecenttest;
127 unsigned char resevered[2];
128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129 unsigned char chksum;
130} __attribute__ ((packed)) ata_smart_selftestlog_t;
131#endif
132