The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/pci/mly_tables.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: ab657e9f34a47f60e8d970ba39016ce0


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.