~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/linux/hdsmart.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * linux/include/linux/hdsmart.h
  3  *
  4  * Copyright (C) 1999-2000      Michael Cornwell <cornwell@acm.org>
  5  * Copyright (C) 2000           Andre Hedrick <andre@linux-ide.org>
  6  *
  7  * This program is free software; you can redistribute it and/or modify
  8  * it under the terms of the GNU General Public License as published by
  9  * the Free Software Foundation; either version 2, or (at your option)
 10  * any later version.
 11  *
 12  * You should have received a copy of the GNU General Public License
 13  * (for example /usr/src/linux/COPYING); if not, write to the Free
 14  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 15  */
 16 
 17 #ifndef _LINUX_HDSMART_H
 18 #define _LINUX_HDSMART_H
 19 
 20 #define OFFLINE_FULL_SCAN               0
 21 #define SHORT_SELF_TEST                 1
 22 #define EXTEND_SELF_TEST                2
 23 #define SHORT_CAPTIVE_SELF_TEST         129
 24 #define EXTEND_CAPTIVE_SELF_TEST        130
 25 
 26 /* smart_attribute is the vendor specific in SFF-8035 spec */
 27 typedef struct ata_smart_attribute_s {
 28         unsigned char                   id;
 29         unsigned short                  status_flag;
 30         unsigned char                   normalized;
 31         unsigned char                   worse_normal;
 32         unsigned char                   raw[6];
 33         unsigned char                   reserv;
 34 } __attribute__ ((packed)) ata_smart_attribute_t;
 35 
 36 /* smart_values is format of the read drive Atrribute command */
 37 typedef struct ata_smart_values_s {
 38         unsigned short                  revnumber;
 39         ata_smart_attribute_t           vendor_attributes [30];
 40         unsigned char                   offline_data_collection_status;
 41         unsigned char                   self_test_exec_status;
 42         unsigned short                  total_time_to_complete_off_line;
 43         unsigned char                   vendor_specific_366;
 44         unsigned char                   offline_data_collection_capability;
 45         unsigned short                  smart_capability;
 46         unsigned char                   errorlog_capability;
 47         unsigned char                   vendor_specific_371;
 48         unsigned char                   short_test_completion_time;
 49         unsigned char                   extend_test_completion_time;
 50         unsigned char                   reserved_374_385 [12];
 51         unsigned char                   vendor_specific_386_509 [125];
 52         unsigned char                   chksum;
 53 } __attribute__ ((packed)) ata_smart_values_t;
 54 
 55 /* Smart Threshold data structures */
 56 /* Vendor attribute of SMART Threshold */
 57 typedef struct ata_smart_threshold_entry_s {
 58         unsigned char                   id;
 59         unsigned char                   normalized_threshold;
 60         unsigned char                   reserved[10];
 61 } __attribute__ ((packed)) ata_smart_threshold_entry_t;
 62 
 63 /* Format of Read SMART THreshold Command */
 64 typedef struct ata_smart_thresholds_s {
 65         unsigned short                  revnumber;
 66         ata_smart_threshold_entry_t     thres_entries[30];
 67         unsigned char                   reserved[149];
 68         unsigned char                   chksum;
 69 } __attribute__ ((packed)) ata_smart_thresholds_t;
 70 
 71 typedef struct ata_smart_errorlog_command_struct_s {
 72         unsigned char                   devicecontrolreg;
 73         unsigned char                   featuresreg;
 74         unsigned char                   sector_count;
 75         unsigned char                   sector_number;
 76         unsigned char                   cylinder_low;
 77         unsigned char                   cylinder_high;
 78         unsigned char                   drive_head;
 79         unsigned char                   commandreg;
 80         unsigned int                    timestamp;
 81 } __attribute__ ((packed)) ata_smart_errorlog_command_struct_t;
 82 
 83 typedef struct ata_smart_errorlog_error_struct_s {
 84         unsigned char                   error_condition;
 85         unsigned char                   extended_error[14];
 86         unsigned char                   state;
 87         unsigned short                  timestamp;
 88 } __attribute__ ((packed)) ata_smart_errorlog_error_struct_t;
 89 
 90 typedef struct ata_smart_errorlog_struct_s {
 91         ata_smart_errorlog_command_struct_t     commands[6];
 92         ata_smart_errorlog_error_struct_t       error_struct;
 93 } __attribute__ ((packed)) ata_smart_errorlog_struct_t;
 94 
 95 typedef struct ata_smart_errorlog_s {
 96         unsigned char                   revnumber;
 97         unsigned char                   error_log_pointer;
 98         ata_smart_errorlog_struct_t     errorlog_struct[5];
 99         unsigned short                  ata_error_count;
100         unsigned short                  non_fatal_count;
101         unsigned short                  drive_timeout_count;
102         unsigned char                   reserved[53];
103         unsigned char                   chksum;
104 } __attribute__ ((packed)) ata_smart_errorlog_t;
105 
106 typedef struct ata_smart_selftestlog_struct_s {
107         unsigned char                   selftestnumber;
108         unsigned char                   selfteststatus;
109         unsigned short                  timestamp;
110         unsigned char                   selftestfailurecheckpoint;
111         unsigned int                    lbafirstfailure;
112         unsigned char                   vendorspecific[15];
113 } __attribute__ ((packed)) ata_smart_selftestlog_struct_t;
114 
115 typedef struct ata_smart_selftestlog_s {
116         unsigned short                  revnumber;
117         ata_smart_selftestlog_struct_t  selftest_struct[21];
118         unsigned char                   vendorspecific[2];
119         unsigned char                   mostrecenttest;
120         unsigned char                   resevered[2];
121         unsigned char                   chksum;
122 } __attribute__ ((packed)) ata_smart_selftestlog_t;
123 
124 #endif  /* _LINUX_HDSMART_H */
125 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.