summaryrefslogtreecommitdiffstats
path: root/sys/dev/aic7xxx/aic79xx.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/aic7xxx/aic79xx.h')
-rw-r--r--sys/dev/aic7xxx/aic79xx.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/sys/dev/aic7xxx/aic79xx.h b/sys/dev/aic7xxx/aic79xx.h
index e9c8847..f59d774 100644
--- a/sys/dev/aic7xxx/aic79xx.h
+++ b/sys/dev/aic7xxx/aic79xx.h
@@ -1061,6 +1061,27 @@ typedef enum {
#define AHD_MODE_UNKNOWN_MSK AHD_MK_MSK(AHD_MODE_UNKNOWN)
#define AHD_MODE_ANY_MSK (~0)
+typedef enum {
+ AHD_SYSCTL_ROOT,
+ AHD_SYSCTL_SUMMARY,
+ AHD_SYSCTL_DEBUG,
+ AHD_SYSCTL_NUMBER
+} ahd_sysctl_types_t;
+
+typedef enum {
+ AHD_ERRORS_CORRECTABLE,
+ AHD_ERRORS_UNCORRECTABLE,
+ AHD_ERRORS_FATAL,
+ AHD_ERRORS_NUMBER
+} ahd_sysctl_errors_t;
+
+#define AHD_CORRECTABLE_ERROR(sc) \
+ (((sc)->summerr[AHD_ERRORS_CORRECTABLE])++)
+#define AHD_UNCORRECTABLE_ERROR(sc) \
+ (((sc)->summerr[AHD_ERRORS_UNCORRECTABLE])++)
+#define AHD_FATAL_ERROR(sc) \
+ (((sc)->summerr[AHD_ERRORS_FATAL])++)
+
typedef uint8_t ahd_mode_state;
typedef void ahd_callback_t (void *);
@@ -1159,6 +1180,13 @@ struct ahd_softc {
uint32_t cmdcmplt_total;
/*
+ * Errors statistics and printouts.
+ */
+ struct sysctl_ctx_list sysctl_ctx[AHD_SYSCTL_NUMBER];
+ struct sysctl_oid *sysctl_tree[AHD_SYSCTL_NUMBER];
+ u_int summerr[AHD_ERRORS_NUMBER];
+
+ /*
* Card characteristics
*/
ahd_chip chip;
OpenPOWER on IntegriCloud