1 /* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11 12 /* 13 * Copyright (C) 2013 Hewlett-Packard Development Company, L.P. 14 */ 15 16 #ifndef _CPQARY3_BD_H 17 #define _CPQARY3_BD_H 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 /* 24 * This file collects various info about each supported 25 * controller that the driver needs to know in order to 26 * properly support the board. during device attach, the 27 * driver can use cpqary3_bd_getbybid() to fetch the board 28 * definition for the device to which it has attached. 29 * 30 * the source for the board definitions themselves is kept 31 * in controllers, which is used to generate the c code to 32 * define a static array of structs. this array and its 33 * search functions are defined in cpqary3_bd.c 34 * 35 * NOTE: if new fields are added or if the order of the 36 * fields is altered, then the cpqary3_bd.c definitions 37 * must be updated! 38 */ 39 40 struct cpqary3_bd { 41 char *bd_dispname; /* display name */ 42 offset_t bd_maplen; /* register map length */ 43 uint16_t bd_pci_subvenid; /* PCI subvendor ID */ 44 uint16_t bd_pci_subsysid; /* PCI subsystem ID */ 45 uint32_t bd_intrpendmask; /* interrupt pending mask */ 46 uint32_t bd_flags; /* flags */ 47 uint32_t bd_is_e200; 48 uint32_t bd_intrmask; 49 uint32_t bd_lockup_intrmask; 50 uint32_t bd_is_ssll; 51 }; 52 typedef struct cpqary3_bd cpqary3_bd_t; 53 54 /* bd_flags */ 55 #define SA_BD_SAS 0x00000001 /* board is a sas controller */ 56 57 58 extern cpqary3_bd_t *cpqary3_bd_getbybid(uint32_t); 59 60 #ifdef __cplusplus 61 } 62 #endif 63 64 #endif /* _CPQARY3_BD_H */ 65