1*86d7f5d3SJohn Marino /*-
2*86d7f5d3SJohn Marino * Copyright (c) 2000 Michael Smith
3*86d7f5d3SJohn Marino * Copyright (c) 2000 BSDi
4*86d7f5d3SJohn Marino * All rights reserved.
5*86d7f5d3SJohn Marino *
6*86d7f5d3SJohn Marino * Redistribution and use in source and binary forms, with or without
7*86d7f5d3SJohn Marino * modification, are permitted provided that the following conditions
8*86d7f5d3SJohn Marino * are met:
9*86d7f5d3SJohn Marino * 1. Redistributions of source code must retain the above copyright
10*86d7f5d3SJohn Marino * notice, this list of conditions and the following disclaimer.
11*86d7f5d3SJohn Marino * 2. Redistributions in binary form must reproduce the above copyright
12*86d7f5d3SJohn Marino * notice, this list of conditions and the following disclaimer in the
13*86d7f5d3SJohn Marino * documentation and/or other materials provided with the distribution.
14*86d7f5d3SJohn Marino *
15*86d7f5d3SJohn Marino * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16*86d7f5d3SJohn Marino * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17*86d7f5d3SJohn Marino * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18*86d7f5d3SJohn Marino * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19*86d7f5d3SJohn Marino * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20*86d7f5d3SJohn Marino * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21*86d7f5d3SJohn Marino * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22*86d7f5d3SJohn Marino * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23*86d7f5d3SJohn Marino * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24*86d7f5d3SJohn Marino * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25*86d7f5d3SJohn Marino * SUCH DAMAGE.
26*86d7f5d3SJohn Marino *
27*86d7f5d3SJohn Marino * $FreeBSD: src/sys/dev/mly/mly_tables.h,v 1.3 2002/02/27 23:57:18 peter Exp $
28*86d7f5d3SJohn Marino */
29*86d7f5d3SJohn Marino
30*86d7f5d3SJohn Marino /*
31*86d7f5d3SJohn Marino * Lookup table for code-to-text translations.
32*86d7f5d3SJohn Marino */
33*86d7f5d3SJohn Marino struct mly_code_lookup {
34*86d7f5d3SJohn Marino char *string;
35*86d7f5d3SJohn Marino u_int32_t code;
36*86d7f5d3SJohn Marino };
37*86d7f5d3SJohn Marino
38*86d7f5d3SJohn Marino static char *mly_describe_code(struct mly_code_lookup *table, u_int32_t code);
39*86d7f5d3SJohn Marino
40*86d7f5d3SJohn Marino /********************************************************************************
41*86d7f5d3SJohn Marino * Look up a text description of a numeric code and return a pointer to same.
42*86d7f5d3SJohn Marino */
43*86d7f5d3SJohn Marino static char *
mly_describe_code(struct mly_code_lookup * table,u_int32_t code)44*86d7f5d3SJohn Marino mly_describe_code(struct mly_code_lookup *table, u_int32_t code)
45*86d7f5d3SJohn Marino {
46*86d7f5d3SJohn Marino int i;
47*86d7f5d3SJohn Marino
48*86d7f5d3SJohn Marino for (i = 0; table[i].string != NULL; i++)
49*86d7f5d3SJohn Marino if (table[i].code == code)
50*86d7f5d3SJohn Marino return(table[i].string);
51*86d7f5d3SJohn Marino return(table[i+1].string);
52*86d7f5d3SJohn Marino }
53*86d7f5d3SJohn Marino
54*86d7f5d3SJohn Marino #if 0
55*86d7f5d3SJohn Marino static struct mly_code_lookup mly_table_bustype[] = {
56*86d7f5d3SJohn Marino {"SCSI", 0x00},
57*86d7f5d3SJohn Marino {"FC-AL", 0x01},
58*86d7f5d3SJohn Marino {"PCI", 0x03},
59*86d7f5d3SJohn Marino {NULL, 0},
60*86d7f5d3SJohn Marino {"unknown bus", 0}
61*86d7f5d3SJohn Marino };
62*86d7f5d3SJohn Marino #endif
63*86d7f5d3SJohn Marino
64*86d7f5d3SJohn Marino static struct mly_code_lookup mly_table_controllertype[] = {
65*86d7f5d3SJohn Marino #if 0 /* not supported by this driver */
66*86d7f5d3SJohn Marino {"DAC960E", 0x01}, /* EISA */
67*86d7f5d3SJohn Marino {"DAC960M", 0x08}, /* MCA */
68*86d7f5d3SJohn Marino {"DAC960PD", 0x10}, /* PCI Dual */
69*86d7f5d3SJohn Marino {"DAC960PL", 0x11}, /* PCU low-cost */
70*86d7f5d3SJohn Marino {"DAC960PDU", 0x12}, /* PD Ultra */
71*86d7f5d3SJohn Marino {"DAC960PE", 0x13}, /* Peregrine low-cost */
72*86d7f5d3SJohn Marino {"DAC960PG", 0x14}, /* Peregrine high-performance */
73*86d7f5d3SJohn Marino {"DAC960PJ", 0x15}, /* Road Runner */
74*86d7f5d3SJohn Marino {"DAC960PTL0", 0x16}, /* Jaguar */
75*86d7f5d3SJohn Marino {"DAC960PR", 0x17}, /* Road Runner (again?) */
76*86d7f5d3SJohn Marino {"DAC960PRL", 0x18}, /* Tomcat */
77*86d7f5d3SJohn Marino {"DAC960PT", 0x19}, /* Road Runner (yet again?) */
78*86d7f5d3SJohn Marino {"DAC1164P", 0x1a}, /* Little Apple */
79*86d7f5d3SJohn Marino {"DAC960PTL1", 0x1b}, /* Jaguar+ */
80*86d7f5d3SJohn Marino #endif
81*86d7f5d3SJohn Marino {"EXR2000P", 0x1c}, /* Big Apple */
82*86d7f5d3SJohn Marino {"EXR3000P", 0x1d}, /* Fibre Apple */
83*86d7f5d3SJohn Marino {"AcceleRAID 352", 0x1e}, /* Leopard */
84*86d7f5d3SJohn Marino {"AcceleRAID 170", 0x1f}, /* Lynx */
85*86d7f5d3SJohn Marino {"AcceleRAID 160", 0x20}, /* Bobcat */
86*86d7f5d3SJohn Marino {NULL, 0},
87*86d7f5d3SJohn Marino {"unknown adapter", 0}
88*86d7f5d3SJohn Marino };
89*86d7f5d3SJohn Marino
90*86d7f5d3SJohn Marino static struct mly_code_lookup mly_table_oemname[] = {
91*86d7f5d3SJohn Marino {"Mylex", MLY_OEM_MYLEX},
92*86d7f5d3SJohn Marino {"IBM", MLY_OEM_IBM},
93*86d7f5d3SJohn Marino {"Hewlett-Packard", MLY_OEM_HP},
94*86d7f5d3SJohn Marino {"DEC/Compaq", MLY_OEM_DEC},
95*86d7f5d3SJohn Marino {"Siemens", MLY_OEM_SIEMENS},
96*86d7f5d3SJohn Marino {"Intel", MLY_OEM_INTEL},
97*86d7f5d3SJohn Marino {NULL, 0},
98*86d7f5d3SJohn Marino {"unknown OEM", 0}
99*86d7f5d3SJohn Marino };
100*86d7f5d3SJohn Marino
101*86d7f5d3SJohn Marino static struct mly_code_lookup mly_table_memorytype[] = {
102*86d7f5d3SJohn Marino {"DRAM", 0x01},
103*86d7f5d3SJohn Marino {"EDRAM", 0x02},
104*86d7f5d3SJohn Marino {"EDO RAM", 0x03},
105*86d7f5d3SJohn Marino {"SDRAM", 0x04},
106*86d7f5d3SJohn Marino {NULL, 0},
107*86d7f5d3SJohn Marino {"unknown memory", 0}
108*86d7f5d3SJohn Marino };
109*86d7f5d3SJohn Marino
110*86d7f5d3SJohn Marino static struct mly_code_lookup mly_table_cputype[] = {
111*86d7f5d3SJohn Marino {"i960CA", 0x01},
112*86d7f5d3SJohn Marino {"i960RD", 0x02},
113*86d7f5d3SJohn Marino {"i960RN", 0x03},
114*86d7f5d3SJohn Marino {"i960RP", 0x04},
115*86d7f5d3SJohn Marino {"NorthBay(?)", 0x05},
116*86d7f5d3SJohn Marino {"StrongArm", 0x06},
117*86d7f5d3SJohn Marino {"i960RM", 0x07},
118*86d7f5d3SJohn Marino {NULL, 0},
119*86d7f5d3SJohn Marino {"unknown CPU", 0}
120*86d7f5d3SJohn Marino };
121*86d7f5d3SJohn Marino
122*86d7f5d3SJohn Marino /*
123*86d7f5d3SJohn Marino * This table is directly derived from the corresponding table in the
124*86d7f5d3SJohn Marino * Linux driver, and uses a derivative encoding for simplicity's sake.
125*86d7f5d3SJohn Marino *
126*86d7f5d3SJohn Marino * The first character of the string determines the format of the message.
127*86d7f5d3SJohn Marino *
128*86d7f5d3SJohn Marino * p "physical device <channel>:<target> <text>" (physical device status)
129*86d7f5d3SJohn Marino * s "physical device <channel>:<target> <text>" (scsi message or error)
130*86d7f5d3SJohn Marino * " sense key <key> asc <asc> ascq <ascq>"
131*86d7f5d3SJohn Marino * " info <info> csi <csi>"
132*86d7f5d3SJohn Marino * l "logical drive <unit>: <text>" (logical device status)
133*86d7f5d3SJohn Marino * m "logical drive <unit>: <text>" (logical device message)
134*86d7f5d3SJohn Marino *
135*86d7f5d3SJohn Marino * Messages which are typically suppressed have the first character capitalised.
136*86d7f5d3SJohn Marino * These messages will only be printed if bootverbose is set.
137*86d7f5d3SJohn Marino *
138*86d7f5d3SJohn Marino * The second character in the string indicates an action to be taken as a
139*86d7f5d3SJohn Marino * result of the event.
140*86d7f5d3SJohn Marino *
141*86d7f5d3SJohn Marino * r rescan the device for possible state change
142*86d7f5d3SJohn Marino *
143*86d7f5d3SJohn Marino */
144*86d7f5d3SJohn Marino static struct mly_code_lookup mly_table_event[] = {
145*86d7f5d3SJohn Marino /* physical device events (0x0000 - 0x007f) */
146*86d7f5d3SJohn Marino {"pr online", 0x0001},
147*86d7f5d3SJohn Marino {"pr standby", 0x0002},
148*86d7f5d3SJohn Marino {"p automatic rebuild started", 0x0005},
149*86d7f5d3SJohn Marino {"p manual rebuild started", 0x0006},
150*86d7f5d3SJohn Marino {"pr rebuild completed", 0x0007},
151*86d7f5d3SJohn Marino {"pr rebuild cancelled", 0x0008},
152*86d7f5d3SJohn Marino {"pr rebuild failed for unknown reasons", 0x0009},
153*86d7f5d3SJohn Marino {"pr rebuild failed due to new physical device", 0x000a},
154*86d7f5d3SJohn Marino {"pr rebuild failed due to logical drive failure", 0x000b},
155*86d7f5d3SJohn Marino {"sr offline", 0x000c},
156*86d7f5d3SJohn Marino {"pr found", 0x000d},
157*86d7f5d3SJohn Marino {"pr gone", 0x000e},
158*86d7f5d3SJohn Marino {"p unconfigured", 0x000f},
159*86d7f5d3SJohn Marino {"p expand capacity started", 0x0010},
160*86d7f5d3SJohn Marino {"pr expand capacity completed", 0x0011},
161*86d7f5d3SJohn Marino {"pr expand capacity failed", 0x0012},
162*86d7f5d3SJohn Marino {"p parity error", 0x0016},
163*86d7f5d3SJohn Marino {"p soft error", 0x0017},
164*86d7f5d3SJohn Marino {"p miscellaneous error", 0x0018},
165*86d7f5d3SJohn Marino {"p reset", 0x0019},
166*86d7f5d3SJohn Marino {"p active spare found", 0x001a},
167*86d7f5d3SJohn Marino {"p warm spare found", 0x001b},
168*86d7f5d3SJohn Marino {"s sense data received", 0x001c},
169*86d7f5d3SJohn Marino {"p initialization started", 0x001d},
170*86d7f5d3SJohn Marino {"pr initialization completed", 0x001e},
171*86d7f5d3SJohn Marino {"pr initialization failed", 0x001f},
172*86d7f5d3SJohn Marino {"pr initialization cancelled", 0x0020},
173*86d7f5d3SJohn Marino {"P write recovery failed", 0x0021},
174*86d7f5d3SJohn Marino {"p scsi bus reset failed", 0x0022},
175*86d7f5d3SJohn Marino {"p double check condition", 0x0023},
176*86d7f5d3SJohn Marino {"p device cannot be accessed", 0x0024},
177*86d7f5d3SJohn Marino {"p gross error on scsi processor", 0x0025},
178*86d7f5d3SJohn Marino {"p bad tag from device", 0x0026},
179*86d7f5d3SJohn Marino {"p command timeout", 0x0027},
180*86d7f5d3SJohn Marino {"pr system reset", 0x0028},
181*86d7f5d3SJohn Marino {"p busy status or parity error", 0x0029},
182*86d7f5d3SJohn Marino {"pr host set device to failed state", 0x002a},
183*86d7f5d3SJohn Marino {"pr selection timeout", 0x002b},
184*86d7f5d3SJohn Marino {"p scsi bus phase error", 0x002c},
185*86d7f5d3SJohn Marino {"pr device returned unknown status", 0x002d},
186*86d7f5d3SJohn Marino {"pr device not ready", 0x002e},
187*86d7f5d3SJohn Marino {"p device not found at startup", 0x002f},
188*86d7f5d3SJohn Marino {"p COD write operation failed", 0x0030},
189*86d7f5d3SJohn Marino {"p BDT write operation failed", 0x0031},
190*86d7f5d3SJohn Marino {"p missing at startup", 0x0039},
191*86d7f5d3SJohn Marino {"p start rebuild failed due to physical drive too small", 0x003a},
192*86d7f5d3SJohn Marino /* logical device events (0x0080 - 0x00ff) */
193*86d7f5d3SJohn Marino {"m consistency check started", 0x0080},
194*86d7f5d3SJohn Marino {"mr consistency check completed", 0x0081},
195*86d7f5d3SJohn Marino {"mr consistency check cancelled", 0x0082},
196*86d7f5d3SJohn Marino {"mr consistency check completed with errors", 0x0083},
197*86d7f5d3SJohn Marino {"mr consistency check failed due to logical drive failure", 0x0084},
198*86d7f5d3SJohn Marino {"mr consistency check failed due to physical device failure", 0x0085},
199*86d7f5d3SJohn Marino {"lr offline", 0x0086},
200*86d7f5d3SJohn Marino {"lr critical", 0x0087},
201*86d7f5d3SJohn Marino {"lr online", 0x0088},
202*86d7f5d3SJohn Marino {"m automatic rebuild started", 0x0089},
203*86d7f5d3SJohn Marino {"m manual rebuild started", 0x008a},
204*86d7f5d3SJohn Marino {"mr rebuild completed", 0x008b},
205*86d7f5d3SJohn Marino {"mr rebuild cancelled", 0x008c},
206*86d7f5d3SJohn Marino {"mr rebuild failed for unknown reasons", 0x008d},
207*86d7f5d3SJohn Marino {"mr rebuild failed due to new physical device", 0x008e},
208*86d7f5d3SJohn Marino {"mr rebuild failed due to logical drive failure", 0x008f},
209*86d7f5d3SJohn Marino {"l initialization started", 0x0090},
210*86d7f5d3SJohn Marino {"lr initialization completed", 0x0091},
211*86d7f5d3SJohn Marino {"lr initialization cancelled", 0x0092},
212*86d7f5d3SJohn Marino {"lr initialization failed", 0x0093},
213*86d7f5d3SJohn Marino {"lr found", 0x0094},
214*86d7f5d3SJohn Marino {"lr gone", 0x0095},
215*86d7f5d3SJohn Marino {"l expand capacity started", 0x0096},
216*86d7f5d3SJohn Marino {"lr expand capacity completed", 0x0097},
217*86d7f5d3SJohn Marino {"lr expand capacity failed", 0x0098},
218*86d7f5d3SJohn Marino {"l bad block found", 0x0099},
219*86d7f5d3SJohn Marino {"lr size changed", 0x009a},
220*86d7f5d3SJohn Marino {"lr type changed", 0x009b},
221*86d7f5d3SJohn Marino {"l bad data block found", 0x009c},
222*86d7f5d3SJohn Marino {"l read of data block in bdt", 0x009e},
223*86d7f5d3SJohn Marino {"l write back data for disk block lost", 0x009f},
224*86d7f5d3SJohn Marino /* enclosure management events (0x0100 - 0x017f) */
225*86d7f5d3SJohn Marino {"e enclosure %d fan %d failed", 0x0140},
226*86d7f5d3SJohn Marino {"e enclosure %d fan %d ok", 0x0141},
227*86d7f5d3SJohn Marino {"e enclosure %d fan %d not present", 0x0142},
228*86d7f5d3SJohn Marino {"e enclosure %d power supply %d failed", 0x0143},
229*86d7f5d3SJohn Marino {"e enclosure %d power supply %d ok", 0x0144},
230*86d7f5d3SJohn Marino {"e enclosure %d power supply %d not present", 0x0145},
231*86d7f5d3SJohn Marino {"e enclosure %d temperature sensor %d failed", 0x0146},
232*86d7f5d3SJohn Marino {"e enclosure %d temperature sensor %d critical", 0x0147},
233*86d7f5d3SJohn Marino {"e enclosure %d temperature sensor %d ok", 0x0148},
234*86d7f5d3SJohn Marino {"e enclosure %d temperature sensor %d not present", 0x0149},
235*86d7f5d3SJohn Marino {"e enclosure %d unit %d access critical", 0x014a},
236*86d7f5d3SJohn Marino {"e enclosure %d unit %d access ok", 0x014b},
237*86d7f5d3SJohn Marino {"e enclosure %d unit %d access offline", 0x014c},
238*86d7f5d3SJohn Marino /* controller events (0x0180 - 0x01ff) */
239*86d7f5d3SJohn Marino {"c cache write back error", 0x0181},
240*86d7f5d3SJohn Marino {"c battery backup unit found", 0x0188},
241*86d7f5d3SJohn Marino {"c battery backup unit charge level low", 0x0189},
242*86d7f5d3SJohn Marino {"c battery backup unit charge level ok", 0x018a},
243*86d7f5d3SJohn Marino {"c installation aborted", 0x0193},
244*86d7f5d3SJohn Marino {"c mirror race recovery in progress", 0x0195},
245*86d7f5d3SJohn Marino {"c mirror race on critical drive", 0x0196},
246*86d7f5d3SJohn Marino {"c memory soft ecc error", 0x019e},
247*86d7f5d3SJohn Marino {"c memory hard ecc error", 0x019f},
248*86d7f5d3SJohn Marino {"c battery backup unit failed", 0x01a2},
249*86d7f5d3SJohn Marino {NULL, 0},
250*86d7f5d3SJohn Marino {"? unknown event code", 0}
251*86d7f5d3SJohn Marino };
252*86d7f5d3SJohn Marino
253*86d7f5d3SJohn Marino /*
254*86d7f5d3SJohn Marino * Values here must be 16 characters or less, as they are packed into
255*86d7f5d3SJohn Marino * the 'product' field in the SCSI inquiry data.
256*86d7f5d3SJohn Marino */
257*86d7f5d3SJohn Marino static struct mly_code_lookup mly_table_device_state[] = {
258*86d7f5d3SJohn Marino {"offline", MLY_DEVICE_STATE_OFFLINE},
259*86d7f5d3SJohn Marino {"unconfigured", MLY_DEVICE_STATE_UNCONFIGURED},
260*86d7f5d3SJohn Marino {"online", MLY_DEVICE_STATE_ONLINE},
261*86d7f5d3SJohn Marino {"critical", MLY_DEVICE_STATE_CRITICAL},
262*86d7f5d3SJohn Marino {"writeonly", MLY_DEVICE_STATE_WRITEONLY},
263*86d7f5d3SJohn Marino {"standby", MLY_DEVICE_STATE_STANDBY},
264*86d7f5d3SJohn Marino {"missing", MLY_DEVICE_STATE_MISSING},
265*86d7f5d3SJohn Marino {NULL, 0},
266*86d7f5d3SJohn Marino {"unknown state", 0}
267*86d7f5d3SJohn Marino };
268*86d7f5d3SJohn Marino
269*86d7f5d3SJohn Marino /*
270*86d7f5d3SJohn Marino * Values here must be 8 characters or less, as they are packed into
271*86d7f5d3SJohn Marino * the 'vendor' field in the SCSI inquiry data.
272*86d7f5d3SJohn Marino */
273*86d7f5d3SJohn Marino static struct mly_code_lookup mly_table_device_type[] = {
274*86d7f5d3SJohn Marino {"MLYRAID0", MLY_DEVICE_TYPE_RAID0},
275*86d7f5d3SJohn Marino {"MLYRAID1", MLY_DEVICE_TYPE_RAID1},
276*86d7f5d3SJohn Marino {"MLYRAID3", MLY_DEVICE_TYPE_RAID3}, /* right asymmetric parity */
277*86d7f5d3SJohn Marino {"MLYRAID5", MLY_DEVICE_TYPE_RAID5}, /* right asymmetric parity */
278*86d7f5d3SJohn Marino {"MLYRAID6", MLY_DEVICE_TYPE_RAID6}, /* Mylex RAID 6 */
279*86d7f5d3SJohn Marino {"MLYRAID7", MLY_DEVICE_TYPE_RAID7}, /* JBOD */
280*86d7f5d3SJohn Marino {"MLY SPAN", MLY_DEVICE_TYPE_NEWSPAN}, /* New Mylex SPAN */
281*86d7f5d3SJohn Marino {"MLYRAID3", MLY_DEVICE_TYPE_RAID3F}, /* fixed parity */
282*86d7f5d3SJohn Marino {"MLYRAID3", MLY_DEVICE_TYPE_RAID3L}, /* left symmetric parity */
283*86d7f5d3SJohn Marino {"MLY SPAN", MLY_DEVICE_TYPE_SPAN}, /* current spanning implementation */
284*86d7f5d3SJohn Marino {"MLYRAID5", MLY_DEVICE_TYPE_RAID5L}, /* left symmetric parity */
285*86d7f5d3SJohn Marino {"MLYRAIDE", MLY_DEVICE_TYPE_RAIDE}, /* concatenation */
286*86d7f5d3SJohn Marino {"MLY PHYS", MLY_DEVICE_TYPE_PHYSICAL}, /* physical device */
287*86d7f5d3SJohn Marino {NULL, 0},
288*86d7f5d3SJohn Marino {"MLY UNKN", 0}
289*86d7f5d3SJohn Marino };
290*86d7f5d3SJohn Marino
291*86d7f5d3SJohn Marino #if 0
292*86d7f5d3SJohn Marino static struct mly_code_lookup mly_table_stripe_size[] = {
293*86d7f5d3SJohn Marino {"NONE", MLY_STRIPE_ZERO},
294*86d7f5d3SJohn Marino {"512B", MLY_STRIPE_512b},
295*86d7f5d3SJohn Marino {"1k", MLY_STRIPE_1k},
296*86d7f5d3SJohn Marino {"2k", MLY_STRIPE_2k},
297*86d7f5d3SJohn Marino {"4k", MLY_STRIPE_4k},
298*86d7f5d3SJohn Marino {"8k", MLY_STRIPE_8k},
299*86d7f5d3SJohn Marino {"16k", MLY_STRIPE_16k},
300*86d7f5d3SJohn Marino {"32k", MLY_STRIPE_32k},
301*86d7f5d3SJohn Marino {"64k", MLY_STRIPE_64k},
302*86d7f5d3SJohn Marino {"128k", MLY_STRIPE_128k},
303*86d7f5d3SJohn Marino {"256k", MLY_STRIPE_256k},
304*86d7f5d3SJohn Marino {"512k", MLY_STRIPE_512k},
305*86d7f5d3SJohn Marino {"1M", MLY_STRIPE_1m},
306*86d7f5d3SJohn Marino {NULL, 0},
307*86d7f5d3SJohn Marino {"unknown", 0}
308*86d7f5d3SJohn Marino };
309*86d7f5d3SJohn Marino
310*86d7f5d3SJohn Marino static struct mly_code_lookup mly_table_cacheline_size[] = {
311*86d7f5d3SJohn Marino {"NONE", MLY_CACHELINE_ZERO},
312*86d7f5d3SJohn Marino {"512B", MLY_CACHELINE_512b},
313*86d7f5d3SJohn Marino {"1k", MLY_CACHELINE_1k},
314*86d7f5d3SJohn Marino {"2k", MLY_CACHELINE_2k},
315*86d7f5d3SJohn Marino {"4k", MLY_CACHELINE_4k},
316*86d7f5d3SJohn Marino {"8k", MLY_CACHELINE_8k},
317*86d7f5d3SJohn Marino {"16k", MLY_CACHELINE_16k},
318*86d7f5d3SJohn Marino {"32k", MLY_CACHELINE_32k},
319*86d7f5d3SJohn Marino {"64k", MLY_CACHELINE_64k},
320*86d7f5d3SJohn Marino {NULL, 0},
321*86d7f5d3SJohn Marino {"unknown", 0}
322*86d7f5d3SJohn Marino };
323*86d7f5d3SJohn Marino #endif
324