1
/****************************************************************************
2
****************************************************************************
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.
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
14
*** Any manual change here will be lost the next time this script will
15
*** be run. You've been warned!
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
27
typedef struct ata_smart_attribute_s {
28
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
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 */
36
} __attribute__ ((packed)) ata_smart_attribute_t;
37
typedef 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];
57
} __attribute__ ((packed)) ata_smart_values_t;
58
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59
typedef struct ata_smart_threshold_entry_s {
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;
65
typedef 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];
71
} __attribute__ ((packed)) ata_smart_thresholds_t;
72
typedef 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;
86
typedef 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];
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 */
94
typedef 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 */
99
typedef 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;
111
typedef 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;
121
typedef 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;