1991554f2SKenneth D. Merry /*- 2991554f2SKenneth D. Merry * Copyright (c) 2009 Yahoo! Inc. 3991554f2SKenneth D. Merry * All rights reserved. 4991554f2SKenneth D. Merry * 5991554f2SKenneth D. Merry * Redistribution and use in source and binary forms, with or without 6991554f2SKenneth D. Merry * modification, are permitted provided that the following conditions 7991554f2SKenneth D. Merry * are met: 8991554f2SKenneth D. Merry * 1. Redistributions of source code must retain the above copyright 9991554f2SKenneth D. Merry * notice, this list of conditions and the following disclaimer. 10991554f2SKenneth D. Merry * 2. Redistributions in binary form must reproduce the above copyright 11991554f2SKenneth D. Merry * notice, this list of conditions and the following disclaimer in the 12991554f2SKenneth D. Merry * documentation and/or other materials provided with the distribution. 13991554f2SKenneth D. Merry * 14991554f2SKenneth D. Merry * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15991554f2SKenneth D. Merry * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16991554f2SKenneth D. Merry * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17991554f2SKenneth D. Merry * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18991554f2SKenneth D. Merry * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19991554f2SKenneth D. Merry * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20991554f2SKenneth D. Merry * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21991554f2SKenneth D. Merry * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22991554f2SKenneth D. Merry * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23991554f2SKenneth D. Merry * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24991554f2SKenneth D. Merry * SUCH DAMAGE. 25991554f2SKenneth D. Merry */ 26991554f2SKenneth D. Merry 27991554f2SKenneth D. Merry #ifndef _MPR_TABLE_H 28991554f2SKenneth D. Merry #define _MPR_TABLE_H 29991554f2SKenneth D. Merry 30991554f2SKenneth D. Merry struct mpr_table_lookup { 31991554f2SKenneth D. Merry char *string; 32991554f2SKenneth D. Merry u_int code; 33991554f2SKenneth D. Merry }; 34991554f2SKenneth D. Merry 35991554f2SKenneth D. Merry char * mpr_describe_table(struct mpr_table_lookup *table, u_int code); 36991554f2SKenneth D. Merry void mpr_describe_devinfo(uint32_t devinfo, char *string, int len); 37991554f2SKenneth D. Merry 38991554f2SKenneth D. Merry extern struct mpr_table_lookup mpr_event_names[]; 39991554f2SKenneth D. Merry extern struct mpr_table_lookup mpr_phystatus_names[]; 40991554f2SKenneth D. Merry extern struct mpr_table_lookup mpr_linkrate_names[]; 4167feec50SStephen McConnell extern struct mpr_table_lookup mpr_pcie_linkrate_names[]; 42*2bf620cbSScott Long extern struct mpr_table_lookup mpr_iocstatus_string[]; 43*2bf620cbSScott Long extern struct mpr_table_lookup mpr_scsi_status_string[]; 44*2bf620cbSScott Long extern struct mpr_table_lookup mpr_scsi_taskmgmt_string[]; 45991554f2SKenneth D. Merry 46055e2653SScott Long void mpr_print_iocfacts(struct mpr_softc *, MPI2_IOC_FACTS_REPLY *); 47055e2653SScott Long void mpr_print_portfacts(struct mpr_softc *, MPI2_PORT_FACTS_REPLY *); 48055e2653SScott Long void mpr_print_evt_generic(struct mpr_softc *, MPI2_EVENT_NOTIFICATION_REPLY *); 49055e2653SScott Long void mpr_print_sasdev0(struct mpr_softc *, MPI2_CONFIG_PAGE_SAS_DEV_0 *); 50055e2653SScott Long void mpr_print_evt_sas(struct mpr_softc *, MPI2_EVENT_NOTIFICATION_REPLY *); 51055e2653SScott Long void mpr_print_expander1(struct mpr_softc *, MPI2_CONFIG_PAGE_EXPANDER_1 *); 52055e2653SScott Long void mpr_print_sasphy0(struct mpr_softc *, MPI2_CONFIG_PAGE_SAS_PHY_0 *); 53991554f2SKenneth D. Merry void mpr_print_sgl(struct mpr_softc *, struct mpr_command *, int); 54991554f2SKenneth D. Merry void mpr_print_scsiio_cmd(struct mpr_softc *, struct mpr_command *); 55c11c484fSScott Long 56055e2653SScott Long #define MPR_DPRINT_PAGE(sc, level, func, buf) \ 57055e2653SScott Long do { \ 58055e2653SScott Long if ((sc)->mpr_debug & level) \ 59055e2653SScott Long mpr_print_##func((sc), buf); \ 60055e2653SScott Long } while (0) 61c11c484fSScott Long 62055e2653SScott Long #define MPR_DPRINT_EVENT(sc, func, buf) \ 63055e2653SScott Long MPR_DPRINT_PAGE(sc, MPR_EVENT, evt_##func, buf) 64991554f2SKenneth D. Merry #endif 65