smartmontools  SVN Rev 4048
Utility to control and monitor storage systems with "S.M.A.R.T."
ataprint.h
Go to the documentation of this file.
1 /*
2  * ataprint.h
3  *
4  * Home page of code is: http://smartmontools.sourceforge.net
5  *
6  * Copyright (C) 2002-9 Bruce Allen <smartmontools-support@lists.sourceforge.net>
7  * Copyright (C) 2008-12 Christian Franke <smartmontools-support@lists.sourceforge.net>
8  * Copyright (C) 1999-2000 Michael Cornwell <cornwell@acm.org>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2, or (at your option)
13  * any later version.
14  *
15  * You should have received a copy of the GNU General Public License
16  * (for example COPYING); If not, see <http://www.gnu.org/licenses/>.
17  *
18  * This code was originally developed as a Senior Thesis by Michael Cornwell
19  * at the Concurrent Systems Laboratory (now part of the Storage Systems
20  * Research Center), Jack Baskin School of Engineering, University of
21  * California, Santa Cruz. http://ssrc.soe.ucsc.edu/
22  *
23  */
24 
25 #ifndef ATAPRINT_H_
26 #define ATAPRINT_H_
27 
28 #define ATAPRINT_H_CVSID "$Id: ataprint.h 3825 2013-07-06 21:38:25Z samm2 $\n"
29 
30 #include <vector>
31 
32 // Request to dump a GP or SMART log
34 {
35  bool gpl; // false: SMART, true: GP
36  unsigned char logaddr; // Log address
37  unsigned page; // First page (sector)
38  unsigned nsectors; // # Sectors
39 
41  : gpl(false), logaddr(0), page(0), nsectors(0)
42  { }
43 };
44 
45 // Options for ataPrintMain
47 {
48  bool drive_info;
56 
61 
62  std::vector<ata_log_request> log_requests;
63 
65  std::vector<int> devstat_pages;
66 
72 
76 
77  int smart_selftest_type; // OFFLINE_FULL_SCAN, ..., see atacmds.h. -1 for no test
78  bool smart_selftest_force; // Ignore already running test
79  ata_selective_selftest_args smart_selective_args; // Extra args for selective self-test
80 
81  unsigned sct_temp_int;
83 
84  enum { FMT_BRIEF = 0x01, FMT_HEX_ID = 0x02, FMT_HEX_VAL = 0x04 };
85  unsigned char output_format; // FMT_* flags
86 
88  bool fix_swapped_id; // Fix swapped ID strings returned by some buggy drivers
89 
91 
92  bool ignore_presets; // Ignore presets from drive database
93  bool show_presets; // Show presets and exit
94  unsigned char powermode; // Skip check, if disk in idle or standby mode
95 
96  bool get_set_used; // true if any get/set command is used
97  bool get_aam; // print Automatic Acoustic Management status
98  int set_aam; // disable(-1), enable(1..255->0..254) Automatic Acoustic Management
99  bool get_apm; // print Advanced Power Management status
100  int set_apm; // disable(-1), enable(2..255->1..254) Advanced Power Management
101  bool get_lookahead; // print read look-ahead status
102  int set_lookahead; // disable(-1), enable(1) read look-ahead
103  int set_standby; // set(1..255->0..254) standby timer
104  bool set_standby_now; // set drive to standby
105  bool get_security; // print ATA security status
106  bool set_security_freeze; // Freeze ATA security
107  bool get_wcache; // print write cache status
108  int set_wcache; // disable(-1), enable(1) write cache
109  bool sct_wcache_reorder_get; // print write cache reordering status
110  int sct_wcache_reorder_set; // disable(-1), enable(1) write cache reordering
111 
113  : drive_info(false),
114  identify_word_level(-1), identify_bit_level(-1),
115  smart_check_status(false),
116  smart_general_values(false),
117  smart_vendor_attrib(false),
118  smart_error_log(false),
119  smart_selftest_log(false),
120  smart_selective_selftest_log(false),
121  gp_logdir(false), smart_logdir(false),
122  smart_ext_error_log(0),
123  smart_ext_selftest_log(0),
124  retry_error_log(false), retry_selftest_log(false),
125  devstat_all_pages(false), devstat_ssd_page(false),
126  sct_temp_sts(false), sct_temp_hist(false),
127  sct_erc_get(false),
128  sct_erc_set(false),
129  sct_erc_readtime(0), sct_erc_writetime(0),
130  sataphy(false), sataphy_reset(false),
131  smart_disable(false), smart_enable(false),
132  smart_auto_offl_disable(false), smart_auto_offl_enable(false),
133  smart_auto_save_disable(false), smart_auto_save_enable(false),
134  smart_selftest_type(-1), smart_selftest_force(false),
135  sct_temp_int(0), sct_temp_int_pers(false),
136  output_format(0),
137  fix_swapped_id(false),
138  ignore_presets(false),
139  show_presets(false),
140  powermode(0),
141  get_set_used(false),
142  get_aam(false), set_aam(0),
143  get_apm(false), set_apm(0),
144  get_lookahead(false), set_lookahead(0),
145  set_standby(0), set_standby_now(false),
146  get_security(false), set_security_freeze(false),
147  get_wcache(false), set_wcache(0),
148  sct_wcache_reorder_get(false), sct_wcache_reorder_set(0)
149  { }
150 };
151 
152 int ataPrintMain(ata_device * device, const ata_print_options & options);
153 
154 #endif
unsigned page
Definition: ataprint.h:37
ata_vendor_attr_defs attribute_defs
Definition: ataprint.h:90
firmwarebug_defs firmwarebugs
Definition: ataprint.h:87
bool smart_error_log
Definition: ataprint.h:53
bool sct_wcache_reorder_get
Definition: ataprint.h:109
int smart_selftest_type
Definition: ataprint.h:77
bool smart_selective_selftest_log
Definition: ataprint.h:55
bool smart_disable
Definition: ataprint.h:73
bool sct_temp_hist
Definition: ataprint.h:67
int identify_bit_level
Definition: ataprint.h:49
bool smart_selftest_force
Definition: ataprint.h:78
std::vector< int > devstat_pages
Definition: ataprint.h:65
unsigned sct_erc_writetime
Definition: ataprint.h:70
unsigned smart_ext_selftest_log
Definition: ataprint.h:59
ata_selective_selftest_args smart_selective_args
Definition: ataprint.h:79
bool retry_error_log
Definition: ataprint.h:60
bool fix_swapped_id
Definition: ataprint.h:88
bool set_security_freeze
Definition: ataprint.h:106
unsigned char output_format
Definition: ataprint.h:85
bool smart_auto_save_enable
Definition: ataprint.h:75
unsigned char logaddr
Definition: ataprint.h:36
bool smart_general_values
Definition: ataprint.h:51
int ataPrintMain(ata_device *device, const ata_print_options &options)
Definition: ataprint.cpp:2481
unsigned sct_temp_int
Definition: ataprint.h:81
bool smart_selftest_log
Definition: ataprint.h:54
bool sct_temp_int_pers
Definition: ataprint.h:82
bool retry_selftest_log
Definition: ataprint.h:60
bool smart_auto_offl_disable
Definition: ataprint.h:74
bool ignore_presets
Definition: ataprint.h:92
bool set_standby_now
Definition: ataprint.h:104
ATA device access.
bool devstat_all_pages
Definition: ataprint.h:64
bool smart_vendor_attrib
Definition: ataprint.h:52
unsigned char powermode
Definition: ataprint.h:94
bool smart_check_status
Definition: ataprint.h:50
unsigned sct_erc_readtime
Definition: ataprint.h:70
bool smart_auto_save_disable
Definition: ataprint.h:75
unsigned nsectors
Definition: ataprint.h:38
std::vector< ata_log_request > log_requests
Definition: ataprint.h:62
bool devstat_ssd_page
Definition: ataprint.h:64
unsigned smart_ext_error_log
Definition: ataprint.h:58
int identify_word_level
Definition: ataprint.h:49
int sct_wcache_reorder_set
Definition: ataprint.h:110
bool sataphy_reset
Definition: ataprint.h:71
bool smart_auto_offl_enable
Definition: ataprint.h:74