1*d14abf15SRobert Mustacchi /******************************************************************************* 2*d14abf15SRobert Mustacchi * CDDL HEADER START 3*d14abf15SRobert Mustacchi * 4*d14abf15SRobert Mustacchi * The contents of this file are subject to the terms of the 5*d14abf15SRobert Mustacchi * Common Development and Distribution License (the "License"). 6*d14abf15SRobert Mustacchi * You may not use this file except in compliance with the License. 7*d14abf15SRobert Mustacchi * 8*d14abf15SRobert Mustacchi * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*d14abf15SRobert Mustacchi * or http://www.opensolaris.org/os/licensing. 10*d14abf15SRobert Mustacchi * See the License for the specific language governing permissions 11*d14abf15SRobert Mustacchi * and limitations under the License. 12*d14abf15SRobert Mustacchi * 13*d14abf15SRobert Mustacchi * When distributing Covered Code, include this CDDL HEADER in each 14*d14abf15SRobert Mustacchi * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*d14abf15SRobert Mustacchi * If applicable, add the following below this CDDL HEADER, with the 16*d14abf15SRobert Mustacchi * fields enclosed by brackets "[]" replaced with your own identifying 17*d14abf15SRobert Mustacchi * information: Portions Copyright [yyyy] [name of copyright owner] 18*d14abf15SRobert Mustacchi * 19*d14abf15SRobert Mustacchi * CDDL HEADER END 20*d14abf15SRobert Mustacchi * 21*d14abf15SRobert Mustacchi * Copyright 2014 QLogic Corporation 22*d14abf15SRobert Mustacchi * The contents of this file are subject to the terms of the 23*d14abf15SRobert Mustacchi * QLogic End User License (the "License"). 24*d14abf15SRobert Mustacchi * You may not use this file except in compliance with the License. 25*d14abf15SRobert Mustacchi * 26*d14abf15SRobert Mustacchi * You can obtain a copy of the License at 27*d14abf15SRobert Mustacchi * http://www.qlogic.com/Resources/Documents/DriverDownloadHelp/ 28*d14abf15SRobert Mustacchi * QLogic_End_User_Software_License.txt 29*d14abf15SRobert Mustacchi * See the License for the specific language governing permissions 30*d14abf15SRobert Mustacchi * and limitations under the License. 31*d14abf15SRobert Mustacchi * 32*d14abf15SRobert Mustacchi ****************************************************************************/ 33*d14abf15SRobert Mustacchi #ifndef __bcmtype_h__ 34*d14abf15SRobert Mustacchi #define __bcmtype_h__ 35*d14abf15SRobert Mustacchi 36*d14abf15SRobert Mustacchi #if defined(UEFI) && defined (EVEREST_DIAG) 37*d14abf15SRobert Mustacchi #include <machine/endian.h> 38*d14abf15SRobert Mustacchi #endif 39*d14abf15SRobert Mustacchi 40*d14abf15SRobert Mustacchi #ifndef IN 41*d14abf15SRobert Mustacchi #define IN 42*d14abf15SRobert Mustacchi #endif /* IN */ 43*d14abf15SRobert Mustacchi 44*d14abf15SRobert Mustacchi #ifndef OUT 45*d14abf15SRobert Mustacchi #define OUT 46*d14abf15SRobert Mustacchi #endif /* OUT */ 47*d14abf15SRobert Mustacchi 48*d14abf15SRobert Mustacchi #ifndef INOUT 49*d14abf15SRobert Mustacchi #define INOUT 50*d14abf15SRobert Mustacchi #endif /* INOUT */ 51*d14abf15SRobert Mustacchi 52*d14abf15SRobert Mustacchi #ifndef OPTIONAL 53*d14abf15SRobert Mustacchi #define OPTIONAL 54*d14abf15SRobert Mustacchi #endif /* OPTIONAL */ 55*d14abf15SRobert Mustacchi 56*d14abf15SRobert Mustacchi #if defined(__LINUX) || defined (USER_LINUX) 57*d14abf15SRobert Mustacchi 58*d14abf15SRobert Mustacchi #ifdef __LINUX 59*d14abf15SRobert Mustacchi 60*d14abf15SRobert Mustacchi #ifdef __BIG_ENDIAN 61*d14abf15SRobert Mustacchi #ifndef BIG_ENDIAN 62*d14abf15SRobert Mustacchi #define BIG_ENDIAN 63*d14abf15SRobert Mustacchi #endif 64*d14abf15SRobert Mustacchi #else /* __LITTLE_ENDIAN */ 65*d14abf15SRobert Mustacchi #ifndef LITTLE_ENDIAN 66*d14abf15SRobert Mustacchi #define LITTLE_ENDIAN 67*d14abf15SRobert Mustacchi #endif 68*d14abf15SRobert Mustacchi #endif 69*d14abf15SRobert Mustacchi 70*d14abf15SRobert Mustacchi /* 71*d14abf15SRobert Mustacchi * define underscore-t types 72*d14abf15SRobert Mustacchi */ 73*d14abf15SRobert Mustacchi typedef u64 u64_t; 74*d14abf15SRobert Mustacchi typedef u32 u32_t; 75*d14abf15SRobert Mustacchi typedef u16 u16_t; 76*d14abf15SRobert Mustacchi typedef u8 u8_t; 77*d14abf15SRobert Mustacchi 78*d14abf15SRobert Mustacchi typedef s64 s64_t; 79*d14abf15SRobert Mustacchi typedef s32 s32_t; 80*d14abf15SRobert Mustacchi typedef s16 s16_t; 81*d14abf15SRobert Mustacchi typedef s8 s8_t; 82*d14abf15SRobert Mustacchi 83*d14abf15SRobert Mustacchi typedef unsigned long int_ptr_t; 84*d14abf15SRobert Mustacchi 85*d14abf15SRobert Mustacchi #else /* USER_LINUX */ 86*d14abf15SRobert Mustacchi 87*d14abf15SRobert Mustacchi #if __BYTE_ORDER == __LITTLE_ENDIAN 88*d14abf15SRobert Mustacchi #undef BIG_ENDIAN 89*d14abf15SRobert Mustacchi #undef __BIG_ENDIAN 90*d14abf15SRobert Mustacchi #else 91*d14abf15SRobert Mustacchi #undef LITTLE_ENDIAN 92*d14abf15SRobert Mustacchi #undef __LITTLE_ENDIAN 93*d14abf15SRobert Mustacchi #endif 94*d14abf15SRobert Mustacchi 95*d14abf15SRobert Mustacchi /* 96*d14abf15SRobert Mustacchi * define underscore-t types 97*d14abf15SRobert Mustacchi */ 98*d14abf15SRobert Mustacchi typedef u_int64_t u64_t; 99*d14abf15SRobert Mustacchi typedef u_int32_t u32_t; 100*d14abf15SRobert Mustacchi typedef u_int16_t u16_t; 101*d14abf15SRobert Mustacchi typedef u_int8_t u8_t; 102*d14abf15SRobert Mustacchi 103*d14abf15SRobert Mustacchi typedef int64_t s64_t; 104*d14abf15SRobert Mustacchi typedef int32_t s32_t; 105*d14abf15SRobert Mustacchi typedef int16_t s16_t; 106*d14abf15SRobert Mustacchi typedef int8_t s8_t; 107*d14abf15SRobert Mustacchi 108*d14abf15SRobert Mustacchi typedef u_int64_t u64; 109*d14abf15SRobert Mustacchi typedef u_int32_t u32; 110*d14abf15SRobert Mustacchi typedef u_int16_t u16; 111*d14abf15SRobert Mustacchi typedef u_int8_t u8; 112*d14abf15SRobert Mustacchi 113*d14abf15SRobert Mustacchi typedef int64_t s64; 114*d14abf15SRobert Mustacchi typedef int32_t s32; 115*d14abf15SRobert Mustacchi typedef int16_t s16; 116*d14abf15SRobert Mustacchi typedef int8_t s8; 117*d14abf15SRobert Mustacchi 118*d14abf15SRobert Mustacchi typedef unsigned long int_ptr_t; 119*d14abf15SRobert Mustacchi 120*d14abf15SRobert Mustacchi /* Define upper case types */ 121*d14abf15SRobert Mustacchi 122*d14abf15SRobert Mustacchi typedef u64_t U64; 123*d14abf15SRobert Mustacchi typedef u32_t U32; 124*d14abf15SRobert Mustacchi typedef u16_t U16; 125*d14abf15SRobert Mustacchi typedef u8_t U8; 126*d14abf15SRobert Mustacchi 127*d14abf15SRobert Mustacchi typedef s64_t S64; 128*d14abf15SRobert Mustacchi typedef s32_t S32; 129*d14abf15SRobert Mustacchi typedef s16_t S16; 130*d14abf15SRobert Mustacchi typedef s8_t S8; 131*d14abf15SRobert Mustacchi 132*d14abf15SRobert Mustacchi #endif 133*d14abf15SRobert Mustacchi 134*d14abf15SRobert Mustacchi 135*d14abf15SRobert Mustacchi 136*d14abf15SRobert Mustacchi #else 137*d14abf15SRobert Mustacchi /* 138*d14abf15SRobert Mustacchi * define the data model 139*d14abf15SRobert Mustacchi */ 140*d14abf15SRobert Mustacchi #if !defined(LP64) && !defined(P64) && !defined(LLP64) 141*d14abf15SRobert Mustacchi /* VC 32-bit compiler 5.0 or later */ 142*d14abf15SRobert Mustacchi #if (defined(_MSC_VER) && (_MSC_VER > 800)) || defined(TARGET_WINDOWS) 143*d14abf15SRobert Mustacchi #define P64 144*d14abf15SRobert Mustacchi #elif defined(__sun) 145*d14abf15SRobert Mustacchi /* Solaris */ 146*d14abf15SRobert Mustacchi #define LP64 147*d14abf15SRobert Mustacchi #elif defined(_HPUX_SOURCE) 148*d14abf15SRobert Mustacchi /* HP/UX */ 149*d14abf15SRobert Mustacchi #define LP64 150*d14abf15SRobert Mustacchi #elif defined(__FreeBSD__) 151*d14abf15SRobert Mustacchi /* FreeBSD */ 152*d14abf15SRobert Mustacchi #define LP64 153*d14abf15SRobert Mustacchi #elif defined(LINUX) 154*d14abf15SRobert Mustacchi /* Linux */ 155*d14abf15SRobert Mustacchi #define LP64 156*d14abf15SRobert Mustacchi #elif defined(__bsdi__) 157*d14abf15SRobert Mustacchi /* BSDI */ 158*d14abf15SRobert Mustacchi #define LP64 159*d14abf15SRobert Mustacchi #elif defined(_IRIX) 160*d14abf15SRobert Mustacchi /* IRIX */ 161*d14abf15SRobert Mustacchi #define LP64 162*d14abf15SRobert Mustacchi #elif defined(UNIXWARE) 163*d14abf15SRobert Mustacchi /* UnixWare */ 164*d14abf15SRobert Mustacchi #define LP64 165*d14abf15SRobert Mustacchi #endif /* UNIXWARE */ 166*d14abf15SRobert Mustacchi #endif /* !LP64 && !P64 && !LLP64 */ 167*d14abf15SRobert Mustacchi 168*d14abf15SRobert Mustacchi /* 169*d14abf15SRobert Mustacchi * define sized type 170*d14abf15SRobert Mustacchi */ 171*d14abf15SRobert Mustacchi #if defined(P64) || defined(LLP64) 172*d14abf15SRobert Mustacchi /* P64 */ 173*d14abf15SRobert Mustacchi typedef unsigned __int64 U64; 174*d14abf15SRobert Mustacchi typedef unsigned int U32; 175*d14abf15SRobert Mustacchi typedef unsigned short U16; 176*d14abf15SRobert Mustacchi typedef unsigned char U8; 177*d14abf15SRobert Mustacchi typedef signed __int64 S64; 178*d14abf15SRobert Mustacchi typedef signed int S32; 179*d14abf15SRobert Mustacchi typedef signed short S16; 180*d14abf15SRobert Mustacchi typedef signed char S8; 181*d14abf15SRobert Mustacchi 182*d14abf15SRobert Mustacchi #if defined(IA64) || defined(AMD64) 183*d14abf15SRobert Mustacchi typedef U64 int_ptr_t; 184*d14abf15SRobert Mustacchi #else 185*d14abf15SRobert Mustacchi #ifndef UEFI64 186*d14abf15SRobert Mustacchi typedef unsigned long int_ptr_t; 187*d14abf15SRobert Mustacchi #endif 188*d14abf15SRobert Mustacchi #endif 189*d14abf15SRobert Mustacchi #elif defined(LP64) 190*d14abf15SRobert Mustacchi /* LP64: Sun, HP and etc */ 191*d14abf15SRobert Mustacchi typedef unsigned long long U64; 192*d14abf15SRobert Mustacchi typedef unsigned int U32; 193*d14abf15SRobert Mustacchi typedef unsigned short U16; 194*d14abf15SRobert Mustacchi typedef unsigned char U8; 195*d14abf15SRobert Mustacchi typedef signed long long S64; 196*d14abf15SRobert Mustacchi typedef signed int S32; 197*d14abf15SRobert Mustacchi typedef signed short S16; 198*d14abf15SRobert Mustacchi typedef signed char S8; 199*d14abf15SRobert Mustacchi typedef unsigned long int_ptr_t; 200*d14abf15SRobert Mustacchi #elif defined(__WATCOMC__) 201*d14abf15SRobert Mustacchi typedef unsigned __int64 U64; 202*d14abf15SRobert Mustacchi typedef unsigned long U32; 203*d14abf15SRobert Mustacchi typedef unsigned short U16; 204*d14abf15SRobert Mustacchi typedef unsigned char U8; 205*d14abf15SRobert Mustacchi typedef signed __int64 S64; 206*d14abf15SRobert Mustacchi typedef signed long S32; 207*d14abf15SRobert Mustacchi typedef signed short S16; 208*d14abf15SRobert Mustacchi typedef signed char S8; 209*d14abf15SRobert Mustacchi typedef unsigned long int_ptr_t; 210*d14abf15SRobert Mustacchi #else 211*d14abf15SRobert Mustacchi /* assume others: 16-bit */ 212*d14abf15SRobert Mustacchi typedef unsigned char U64[8]; 213*d14abf15SRobert Mustacchi typedef unsigned long U32; 214*d14abf15SRobert Mustacchi typedef unsigned short U16; 215*d14abf15SRobert Mustacchi typedef unsigned char U8; 216*d14abf15SRobert Mustacchi typedef signed char S64[8]; 217*d14abf15SRobert Mustacchi typedef signed long S32; 218*d14abf15SRobert Mustacchi typedef signed short S16; 219*d14abf15SRobert Mustacchi typedef signed char S8; 220*d14abf15SRobert Mustacchi typedef unsigned long int_ptr_t; 221*d14abf15SRobert Mustacchi #endif /* */ 222*d14abf15SRobert Mustacchi 223*d14abf15SRobert Mustacchi 224*d14abf15SRobert Mustacchi 225*d14abf15SRobert Mustacchi /* 226*d14abf15SRobert Mustacchi * define lower case types 227*d14abf15SRobert Mustacchi */ 228*d14abf15SRobert Mustacchi typedef U64 u64_t; 229*d14abf15SRobert Mustacchi typedef U32 u32_t; 230*d14abf15SRobert Mustacchi typedef U16 u16_t; 231*d14abf15SRobert Mustacchi typedef U8 u8_t; 232*d14abf15SRobert Mustacchi 233*d14abf15SRobert Mustacchi typedef S64 s64_t; 234*d14abf15SRobert Mustacchi typedef S32 s32_t; 235*d14abf15SRobert Mustacchi typedef S16 s16_t; 236*d14abf15SRobert Mustacchi typedef S8 s8_t; 237*d14abf15SRobert Mustacchi 238*d14abf15SRobert Mustacchi #ifndef LINUX 239*d14abf15SRobert Mustacchi typedef U64 u64; 240*d14abf15SRobert Mustacchi typedef U32 u32; 241*d14abf15SRobert Mustacchi typedef U16 u16; 242*d14abf15SRobert Mustacchi typedef U8 u8; 243*d14abf15SRobert Mustacchi 244*d14abf15SRobert Mustacchi typedef S64 s64; 245*d14abf15SRobert Mustacchi typedef S32 s32; 246*d14abf15SRobert Mustacchi typedef S16 s16; 247*d14abf15SRobert Mustacchi typedef S8 s8; 248*d14abf15SRobert Mustacchi #endif 249*d14abf15SRobert Mustacchi 250*d14abf15SRobert Mustacchi #endif 251*d14abf15SRobert Mustacchi 252*d14abf15SRobert Mustacchi #ifdef UEFI 253*d14abf15SRobert Mustacchi #if BYTE_ORDER == LITTLE_ENDIAN 254*d14abf15SRobert Mustacchi #undef BIG_ENDIAN 255*d14abf15SRobert Mustacchi #endif 256*d14abf15SRobert Mustacchi #ifdef UEFI64 257*d14abf15SRobert Mustacchi typedef u64_t int_ptr_t; 258*d14abf15SRobert Mustacchi #endif 259*d14abf15SRobert Mustacchi #endif 260*d14abf15SRobert Mustacchi 261*d14abf15SRobert Mustacchi #ifdef LITTLE_ENDIAN 262*d14abf15SRobert Mustacchi #ifndef __LITTLE_ENDIAN 263*d14abf15SRobert Mustacchi #define __LITTLE_ENDIAN LITTLE_ENDIAN 264*d14abf15SRobert Mustacchi #endif /* __LITTLE_ENDIAN */ 265*d14abf15SRobert Mustacchi #endif /* LITTLE_ENDIAN */ 266*d14abf15SRobert Mustacchi 267*d14abf15SRobert Mustacchi #ifdef BIG_ENDIAN 268*d14abf15SRobert Mustacchi #ifndef __BIG_ENDIAN 269*d14abf15SRobert Mustacchi #define __BIG_ENDIAN BIG_ENDIAN 270*d14abf15SRobert Mustacchi #endif /* __BIG_ENDIAN */ 271*d14abf15SRobert Mustacchi #endif /* BIG_ENDIAN */ 272*d14abf15SRobert Mustacchi 273*d14abf15SRobert Mustacchi #ifdef __FreeBSD__ 274*d14abf15SRobert Mustacchi #if _BYTE_ORDER == _LITTLE_ENDIAN 275*d14abf15SRobert Mustacchi #undef BIG_ENDIAN 276*d14abf15SRobert Mustacchi #undef __BIG_ENDIAN 277*d14abf15SRobert Mustacchi #else 278*d14abf15SRobert Mustacchi #undef LITTLE_ENDIAN 279*d14abf15SRobert Mustacchi #undef __LITTLE_ENDIAN 280*d14abf15SRobert Mustacchi #endif 281*d14abf15SRobert Mustacchi #endif /* __FreeBSD__ */ 282*d14abf15SRobert Mustacchi 283*d14abf15SRobert Mustacchi /* Signed subtraction macros with no sign extending. */ 284*d14abf15SRobert Mustacchi #define S64_SUB(_a, _b) ((s64_t) ((s64_t) (_a) - (s64_t) (_b))) 285*d14abf15SRobert Mustacchi #define u64_SUB(_a, _b) ((u64_t) ((s64_t) (_a) - (s64_t) (_b))) 286*d14abf15SRobert Mustacchi #define S32_SUB(_a, _b) ((s32_t) ((s32_t) (_a) - (s32_t) (_b))) 287*d14abf15SRobert Mustacchi #define uS32_SUB(_a, _b) ((u32_t) ((s32_t) (_a) - (s32_t) (_b))) 288*d14abf15SRobert Mustacchi #define S16_SUB(_a, _b) ((s16_t) ((s16_t) (_a) - (s16_t) (_b))) 289*d14abf15SRobert Mustacchi #define u16_SUB(_a, _b) ((u16_t) ((s16_t) (_a) - (s16_t) (_b))) 290*d14abf15SRobert Mustacchi #define PTR_SUB(_a, _b) ((u8_t *) (_a) - (u8_t *) (_b)) 291*d14abf15SRobert Mustacchi 292*d14abf15SRobert Mustacchi #if (!defined LINUX ) && (!defined MFW) 293*d14abf15SRobert Mustacchi #define __builtin_offsetof(path1_nvm_image_t, f) (u32_t)((int_ptr_t)(&(((path1_nvm_image_t *)0)->f))) 294*d14abf15SRobert Mustacchi #endif 295*d14abf15SRobert Mustacchi 296*d14abf15SRobert Mustacchi #endif/* __bcmtype_h__ */ 297*d14abf15SRobert Mustacchi 298