]>
Commit | Line | Data |
---|---|---|
832b75ed GG |
1 | /* |
2 | * ataprint.h | |
3 | * | |
4 | * Home page of code is: http://smartmontools.sourceforge.net | |
5 | * | |
2127e193 GI |
6 | * Copyright (C) 2002-9 Bruce Allen <smartmontools-support@lists.sourceforge.net> |
7 | * Copyright (C) 2008-9 Christian Franke <smartmontools-support@lists.sourceforge.net> | |
832b75ed GG |
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, write to the Free | |
17 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
18 | * | |
19 | * This code was originally developed as a Senior Thesis by Michael Cornwell | |
20 | * at the Concurrent Systems Laboratory (now part of the Storage Systems | |
21 | * Research Center), Jack Baskin School of Engineering, University of | |
22 | * California, Santa Cruz. http://ssrc.soe.ucsc.edu/ | |
23 | * | |
24 | */ | |
25 | ||
26 | #ifndef ATAPRINT_H_ | |
27 | #define ATAPRINT_H_ | |
28 | ||
a7e8ffec | 29 | #define ATAPRINT_H_CVSID "$Id: ataprint.h 3316 2011-04-19 19:34:57Z chrfranke $\n" |
832b75ed | 30 | |
2127e193 | 31 | #include <vector> |
832b75ed | 32 | |
2127e193 GI |
33 | // Request to dump a GP or SMART log |
34 | struct ata_log_request | |
35 | { | |
36 | bool gpl; // false: SMART, true: GP | |
37 | unsigned char logaddr; // Log address | |
38 | unsigned page; // First page (sector) | |
39 | unsigned nsectors; // # Sectors | |
832b75ed | 40 | |
2127e193 GI |
41 | ata_log_request() |
42 | : gpl(false), logaddr(0), page(0), nsectors(0) | |
43 | { } | |
44 | }; | |
832b75ed | 45 | |
2127e193 | 46 | // Options for ataPrintMain |
2127e193 GI |
47 | struct ata_print_options |
48 | { | |
49 | bool drive_info; | |
50 | bool smart_check_status; | |
51 | bool smart_general_values; | |
52 | bool smart_vendor_attrib; | |
53 | bool smart_error_log; | |
54 | bool smart_selftest_log; | |
55 | bool smart_selective_selftest_log; | |
832b75ed | 56 | |
2127e193 GI |
57 | bool gp_logdir, smart_logdir; |
58 | unsigned smart_ext_error_log; | |
59 | unsigned smart_ext_selftest_log; | |
60 | bool retry_error_log, retry_selftest_log; | |
832b75ed | 61 | |
2127e193 | 62 | std::vector<ata_log_request> log_requests; |
832b75ed | 63 | |
2127e193 | 64 | bool sct_temp_sts, sct_temp_hist; |
7f0798ef GI |
65 | bool sct_erc_get; |
66 | bool sct_erc_set; | |
67 | unsigned sct_erc_readtime, sct_erc_writetime; | |
2127e193 | 68 | bool sataphy, sataphy_reset; |
832b75ed | 69 | |
2127e193 GI |
70 | bool smart_disable, smart_enable; |
71 | bool smart_auto_offl_disable, smart_auto_offl_enable; | |
72 | bool smart_auto_save_disable, smart_auto_save_enable; | |
832b75ed | 73 | |
2127e193 GI |
74 | int smart_selftest_type; // OFFLINE_FULL_SCAN, ..., see atacmds.h. -1 for no test |
75 | ata_selective_selftest_args smart_selective_args; // Extra args for selective self-test | |
832b75ed | 76 | |
2127e193 GI |
77 | unsigned sct_temp_int; |
78 | bool sct_temp_int_pers; | |
832b75ed | 79 | |
a7e8ffec | 80 | unsigned char output_format; // 0=old, 1=brief |
2127e193 GI |
81 | unsigned char fix_firmwarebug; // FIX_*, see atacmds.h |
82 | bool fix_swapped_id; // Fix swapped ID strings returned by some buggy drivers | |
832b75ed | 83 | |
bed94269 | 84 | ata_vendor_attr_defs attribute_defs; // -v options |
2127e193 GI |
85 | |
86 | bool ignore_presets; // Ignore presets from drive database | |
87 | bool show_presets; // Show presets and exit | |
88 | unsigned char powermode; // Skip check, if disk in idle or standby mode | |
89 | ||
90 | ata_print_options() | |
91 | : drive_info(false), | |
92 | smart_check_status(false), | |
93 | smart_general_values(false), | |
94 | smart_vendor_attrib(false), | |
95 | smart_error_log(false), | |
96 | smart_selftest_log(false), | |
97 | smart_selective_selftest_log(false), | |
98 | gp_logdir(false), smart_logdir(false), | |
99 | smart_ext_error_log(0), | |
100 | smart_ext_selftest_log(0), | |
101 | retry_error_log(false), retry_selftest_log(false), | |
102 | sct_temp_sts(false), sct_temp_hist(false), | |
7f0798ef GI |
103 | sct_erc_get(false), |
104 | sct_erc_set(false), | |
105 | sct_erc_readtime(0), sct_erc_writetime(0), | |
2127e193 GI |
106 | sataphy(false), sataphy_reset(false), |
107 | smart_disable(false), smart_enable(false), | |
108 | smart_auto_offl_disable(false), smart_auto_offl_enable(false), | |
109 | smart_auto_save_disable(false), smart_auto_save_enable(false), | |
110 | smart_selftest_type(-1), | |
111 | sct_temp_int(0), sct_temp_int_pers(false), | |
a7e8ffec | 112 | output_format(0), |
2127e193 GI |
113 | fix_firmwarebug(FIX_NOTSPECIFIED), |
114 | fix_swapped_id(false), | |
115 | ignore_presets(false), | |
116 | show_presets(false), | |
117 | powermode(0) | |
bed94269 | 118 | { } |
2127e193 GI |
119 | }; |
120 | ||
121 | int ataPrintMain(ata_device * device, const ata_print_options & options); | |
832b75ed GG |
122 | |
123 | #endif |