/*
* smartctl.h
*
- * Home page of code is: http://smartmontools.sourceforge.net
+ * Home page of code is: http://www.smartmontools.org
*
- * Copyright (C) 2002-8 Bruce Allen <smartmontools-support@lists.sourceforge.net>
+ * Copyright (C) 2002-10 Bruce Allen <smartmontools-support@lists.sourceforge.net>
+ * Copyright (C) 2008-10 Christian Franke <smartmontools-support@lists.sourceforge.net>
* Copyright (C) 2000 Michael Cornwell <cornwell@acm.org>
*
* This program is free software; you can redistribute it and/or modify
* any later version.
*
* You should have received a copy of the GNU General Public License
- * (for example COPYING); if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * (for example COPYING); if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This code was originally developed as a Senior Thesis by Michael Cornwell
* at the Concurrent Systems Laboratory (now part of the Storage Systems
#ifndef SMARTCTL_H_
#define SMARTCTL_H_
-#define SMARTCTL_H_CVSID "$Id: smartctl.h,v 1.25 2008/03/04 22:09:47 ballen4705 Exp $\n"
-
-/* Boolean Values */
-#define TRUE 0x01
-#define FALSE 0x00
+#define SMARTCTL_H_CVSID "$Id: smartctl.h 4120 2015-08-27 16:12:21Z samm2 $\n"
// Return codes (bitmask)
// command set." The 'mandatory' S.M.A.R.T. commands are: (1)
// Enable/Disable Attribute Autosave, (2) Enable/Disable S.M.A.R.T.,
// and (3) S.M.A.R.T. Return Status. All others are optional.
-#define OPTIONAL_CMD 1
-#define MANDATORY_CMD 2
-
-void print_smartctl_examples();
+enum failure_type {
+ OPTIONAL_CMD,
+ MANDATORY_CMD,
+};
+
+// Globals to set failuretest() policy
+extern bool failuretest_conservative;
+extern unsigned char failuretest_permissive;
+
+// Compares failure type to policy in effect, and either exits or
+// simply returns to the calling routine.
+void failuretest(failure_type type, int returnvalue);
+
+// Globals to control printing
+extern bool printing_is_switchable;
+extern bool printing_is_off;
+
+// Printing control functions
+inline void print_on()
+{
+ if (printing_is_switchable)
+ printing_is_off = false;
+}
+inline void print_off()
+{
+ if (printing_is_switchable)
+ printing_is_off = true;
+}
#endif