summaryrefslogtreecommitdiffstats
path: root/sys/dev/amr/amr_tables.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/amr/amr_tables.h')
-rw-r--r--sys/dev/amr/amr_tables.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/sys/dev/amr/amr_tables.h b/sys/dev/amr/amr_tables.h
new file mode 100644
index 0000000..d6e9993
--- /dev/null
+++ b/sys/dev/amr/amr_tables.h
@@ -0,0 +1,110 @@
+/*-
+ * Copyright (c) 2000 Michael Smith
+ * Copyright (c) 2000 BSDi
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Lookup table for code-to-text translations.
+ */
+struct amr_code_lookup {
+ char *string;
+ u_int32_t code;
+};
+
+extern char *amr_describe_code(struct amr_code_lookup *table, u_int32_t code);
+
+#ifndef AMR_DEFINE_TABLES
+extern struct amr_code_lookup amr_table_qinit[];
+extern struct amr_code_lookup amr_table_sinit[];
+extern struct amr_code_lookup amr_table_drvstate[];
+
+#else /* AMR_DEFINE_TABLES */
+
+/********************************************************************************
+ * Look up a text description of a numeric code and return a pointer to same.
+ */
+char *
+amr_describe_code(struct amr_code_lookup *table, u_int32_t code)
+{
+ int i;
+
+ for (i = 0; table[i].string != NULL; i++)
+ if (table[i].code == code)
+ return(table[i].string);
+ return(table[i+1].string);
+}
+
+struct amr_code_lookup amr_table_qinit[] = {
+ {"init scanning drives", AMR_QINIT_SCAN},
+ {"init scanning initialising", AMR_QINIT_SCANINIT},
+ {"init firmware initing", AMR_QINIT_FIRMWARE},
+ {"init in progress", AMR_QINIT_INPROG},
+ {"init spinning drives", AMR_QINIT_SPINUP},
+ {"insufficient memory", AMR_QINIT_NOMEM},
+ {"init flushing cache", AMR_QINIT_CACHEFLUSH},
+ {"init successfully done", AMR_QINIT_DONE},
+ {NULL, 0},
+ {"unknown init code", 0}
+};
+
+struct amr_code_lookup amr_table_sinit[] = {
+ {"init abnormal terminated", AMR_SINIT_ABEND},
+ {"insufficient memory", AMR_SINIT_NOMEM},
+ {"firmware flushing cache", AMR_SINIT_CACHEFLUSH},
+ {"init in progress", AMR_SINIT_INPROG},
+ {"firmware spinning drives", AMR_SINIT_SPINUP},
+ {"init successfully done", AMR_SINIT_DONE},
+ {NULL, 0},
+ {"unknown init code", 0}
+};
+
+struct amr_code_lookup amr_table_drvstate[] = {
+ {"offline", AMR_DRV_OFFLINE},
+ {"degraded", AMR_DRV_DEGRADED},
+ {"optimal", AMR_DRV_OPTIMAL},
+ {"online", AMR_DRV_ONLINE},
+ {"failed", AMR_DRV_FAILED},
+ {"rebuild", AMR_DRV_REBUILD},
+ {"hot spare", AMR_DRV_HOTSPARE},
+ {NULL, 0},
+ {"unknown", 0}
+};
+
+struct amr_code_lookup amr_table_adaptertype[] = {
+ {"Series 431", AMR_SIG_431},
+ {"Series 438", AMR_SIG_438},
+ {"Series 762", AMR_SIG_762},
+ {"Integrated HP NetRAID (T5)", AMR_SIG_T5},
+ {"Series 466", AMR_SIG_466},
+ {"Series 467", AMR_SIG_467},
+ {"Integrated HP NetRAID (T7)", AMR_SIG_T7},
+ {"Series 490", AMR_SIG_490},
+ {NULL, 0},
+ {"unknown adapter", 0}
+};
+
+#endif
OpenPOWER on IntegriCloud