#ifndef SMARTD_H_CVSID
-#define SMARTD_H_CVSID "$Id: smartd.h,v 1.76 2006/04/12 14:54:28 ballen4705 Exp $\n"
+#define SMARTD_H_CVSID "$Id: smartd.h,v 1.83 2006/09/15 08:01:21 sxzzsf Exp $\n"
#endif
// Configuration file
// Number of allowed mail message types
-#define SMARTD_NMAIL 12
+#define SMARTD_NMAIL 13
typedef struct mailinfo_s {
int logged;// number of times an email has been sent
// REGISTERED AND WE LEARN ITS CAPABILITIES.
int lineno; // Line number of entry in file
char *name; // Device name (+ optional [3ware_disk_XX])
- unsigned char controller_type; // Controller type, ATA/SCSI/3Ware/(more to come)
+ unsigned char controller_explicit; // Controller (device) type has been specified explicitly
+ unsigned char controller_type; // Controller type, ATA/SCSI/SAT/3Ware/(more to come)
unsigned char controller_port; // 1 + (disk number in controller). 0 means controller only handles one disk.
+ unsigned char hpt_data[3]; // combined controller/channle/pmport for highpoint rocketraid controller
+ unsigned char satpassthrulen; // length of SAT ata pass through scsi commands (12, 16 or 0 (platform choice))
char smartcheck; // Check SMART status
char usagefailed; // Check for failed Usage Attributes
char prefail; // Track changes in Prefail Attributes
char removable; // Device may disappear (not be present)
char powermode; // skip check, if disk in idle or standby mode
char powerquiet; // skip powermode 'skipping checks' message
+ unsigned char tempdiff; // Track Temperature changes >= this limit
+ unsigned char tempinfo, tempcrit; // Track Temperatures >= these limits as LOG_INFO, LOG_CRIT+mail
+ unsigned char tempmin, tempmax; // Min/Max Temperatures
unsigned char selflogcount; // total number of self-test errors
unsigned short selfloghour; // lifetime hours of last self-test error
testinfo *testdata; // Pointer to data on scheduled testing
// THE NEXT SET OF ENTRIES ALSO TRACK DEVICE STATE AND ARE DYNAMIC
maildata *mailwarn; // non-NULL: info about sending mail or executing script
+ unsigned char temperature; // last recorded Temperature (in Celsius)
+ unsigned char tempmininc; // #checks where Min Temperature is increased after powerup
+ int powerskipcnt; // Number of checks skipped due to idle or standby mode
// SCSI ONLY
unsigned char SmartPageSupported; // has log sense IE page (0x2f)
unsigned char TempPageSupported; // has log sense temperature page (0xd)
- unsigned char Temperature; // last recorded figure (in Celsius)
unsigned char SuppressReport; // minimize nuisance reports
unsigned char modese_len; // mode sense/select cmd len: 0 (don't
// know yet) 6 or 10
#ifndef __GNUC__
#define __attribute__(x) /* nothing */
#endif
-void PrintOut(int priority,char *fmt, ...) __attribute__ ((format(printf, 2, 3)));
+void PrintOut(int priority, const char *fmt, ...) __attribute__ ((format(printf, 2, 3)));
void PrintAndMail(cfgfile *cfg, int which, int priority, char *fmt, ...) __attribute__ ((format(printf, 4, 5)));