]> git.proxmox.com Git - mirror_smartmontools-debian.git/blobdiff - ataprint.h
import smartmontools 7.0
[mirror_smartmontools-debian.git] / ataprint.h
index e83020fa4ea6398c803b745908bb4fbdae6b5992..6c296b3afa59584664dd9e8f982c10cac7a008f1 100644 (file)
@@ -1,31 +1,19 @@
 /*
  * ataprint.h
  *
- * Home page of code is: http://smartmontools.sourceforge.net
+ * Home page of code is: http://www.smartmontools.org
  *
- * Copyright (C) 2002-9 Bruce Allen <smartmontools-support@lists.sourceforge.net>
- * Copyright (C) 2008-12 Christian Franke <smartmontools-support@lists.sourceforge.net>
+ * Copyright (C) 2002-09 Bruce Allen
+ * Copyright (C) 2008-18 Christian Franke
  * Copyright (C) 1999-2000 Michael Cornwell <cornwell@acm.org>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * You should have received a copy of the GNU General Public License
- * (for example COPYING); If not, see <http://www.gnu.org/licenses/>.
- *
- * This code was originally developed as a Senior Thesis by Michael Cornwell
- * at the Concurrent Systems Laboratory (now part of the Storage Systems
- * Research Center), Jack Baskin School of Engineering, University of
- * California, Santa Cruz. http://ssrc.soe.ucsc.edu/
- *
+ * SPDX-License-Identifier: GPL-2.0-or-later
  */
 
 #ifndef ATAPRINT_H_
 #define ATAPRINT_H_
 
-#define ATAPRINT_H_CVSID "$Id: ataprint.h 3825 2013-07-06 21:38:25Z samm2 $\n"
+#define ATAPRINT_H_CVSID "$Id: ataprint.h 4826 2018-11-02 20:09:12Z chrfranke $\n"
 
 #include <vector>
 
@@ -64,6 +52,8 @@ struct ata_print_options
   bool devstat_all_pages, devstat_ssd_page;
   std::vector<int> devstat_pages;
 
+  unsigned pending_defects_log;
+
   bool sct_temp_sts, sct_temp_hist;
   bool sct_erc_get;
   bool sct_erc_set;
@@ -92,6 +82,7 @@ struct ata_print_options
   bool ignore_presets; // Ignore presets from drive database
   bool show_presets; // Show presets and exit
   unsigned char powermode; // Skip check, if disk in idle or standby mode
+  unsigned char powerexit; // exit() code for low power mode
 
   bool get_set_used; // true if any get/set command is used
   bool get_aam; // print Automatic Acoustic Management status
@@ -108,6 +99,12 @@ struct ata_print_options
   int set_wcache; // disable(-1), enable(1) write cache
   bool sct_wcache_reorder_get; // print write cache reordering status
   int sct_wcache_reorder_set; // disable(-1), enable(1) write cache reordering
+  bool sct_wcache_reorder_set_pers;
+  bool sct_wcache_sct_get; // print SCT Feature Control of write cache status
+  int sct_wcache_sct_set; // determined by ata set features command(1), force enable(2), force disable(3)
+  bool sct_wcache_sct_set_pers; // persistent or volatile
+  bool get_dsn; // print DSN status
+  int set_dsn; // disable(02h), enable(01h) DSN
 
   ata_print_options()
     : drive_info(false),
@@ -123,6 +120,7 @@ struct ata_print_options
       smart_ext_selftest_log(0),
       retry_error_log(false), retry_selftest_log(false),
       devstat_all_pages(false), devstat_ssd_page(false),
+      pending_defects_log(0),
       sct_temp_sts(false), sct_temp_hist(false),
       sct_erc_get(false),
       sct_erc_set(false),
@@ -137,7 +135,7 @@ struct ata_print_options
       fix_swapped_id(false),
       ignore_presets(false),
       show_presets(false),
-      powermode(0),
+      powermode(0), powerexit(0),
       get_set_used(false),
       get_aam(false), set_aam(0),
       get_apm(false), set_apm(0),
@@ -145,7 +143,11 @@ struct ata_print_options
       set_standby(0), set_standby_now(false),
       get_security(false), set_security_freeze(false),
       get_wcache(false), set_wcache(0),
-      sct_wcache_reorder_get(false), sct_wcache_reorder_set(0)
+      sct_wcache_reorder_get(false), sct_wcache_reorder_set(0),
+      sct_wcache_reorder_set_pers(false),
+      sct_wcache_sct_get(false), sct_wcache_sct_set(0),
+      sct_wcache_sct_set_pers(false),
+      get_dsn(false), set_dsn(0)
     { }
 };