d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/*******************************************************************************
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * CDDL HEADER START
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * The contents of this file are subject to the terms of the
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * Common Development and Distribution License (the "License").
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * You may not use this file except in compliance with the License.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * or http://www.opensolaris.org/os/licensing.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * See the License for the specific language governing permissions
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * and limitations under the License.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * When distributing Covered Code, include this CDDL HEADER in each
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * If applicable, add the following below this CDDL HEADER, with the
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * fields enclosed by brackets "[]" replaced with your own identifying
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * information: Portions Copyright [yyyy] [name of copyright owner]
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * CDDL HEADER END
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * Copyright 2014 QLogic Corporation
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * The contents of this file are subject to the terms of the
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * QLogic End User License (the "License").
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * You may not use this file except in compliance with the License.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * You can obtain a copy of the License at
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * http://www.qlogic.com/Resources/Documents/DriverDownloadHelp/
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * QLogic_End_User_Software_License.txt
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * See the License for the specific language governing permissions
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * and limitations under the License.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi ****************************************************************************/
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifndef __bcmtype_h__
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define __bcmtype_h__
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#if defined(UEFI) && defined (EVEREST_DIAG)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#include <machine/endian.h>
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifndef IN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif /* IN */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifndef OUT
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define OUT
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif /* OUT */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifndef INOUT
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define INOUT
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif /* INOUT */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifndef OPTIONAL
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define OPTIONAL
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif /* OPTIONAL */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#if defined(__LINUX) || defined (USER_LINUX)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifdef __LINUX
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifdef __BIG_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifndef BIG_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define BIG_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#else /* __LITTLE_ENDIAN */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifndef LITTLE_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define LITTLE_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/*
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * define underscore-t types
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u64 u64_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u32 u32_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u16 u16_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u8 u8_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef s64 s64_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef s32 s32_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef s16 s16_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef s8 s8_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef unsigned long int_ptr_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#else /* USER_LINUX */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#if __BYTE_ORDER == __LITTLE_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#undef BIG_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#undef __BIG_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#else
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#undef LITTLE_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#undef __LITTLE_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/*
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * define underscore-t types
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u_int64_t u64_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u_int32_t u32_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u_int16_t u16_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u_int8_t u8_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef int64_t s64_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef int32_t s32_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef int16_t s16_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef int8_t s8_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u_int64_t u64;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u_int32_t u32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u_int16_t u16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u_int8_t u8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef int64_t s64;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef int32_t s32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef int16_t s16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef int8_t s8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef unsigned long int_ptr_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/* Define upper case types */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u64_t U64;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u32_t U32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u16_t U16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u8_t U8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef s64_t S64;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef s32_t S32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef s16_t S16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef s8_t S8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#else
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/*
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * define the data model
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#if !defined(LP64) && !defined(P64) && !defined(LLP64)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* VC 32-bit compiler 5.0 or later */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #if (defined(_MSC_VER) && (_MSC_VER > 800)) || defined(TARGET_WINDOWS)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #define P64
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #elif defined(__sun)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* Solaris */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #define LP64
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #elif defined(_HPUX_SOURCE)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* HP/UX */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #define LP64
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #elif defined(__FreeBSD__)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* FreeBSD */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #define LP64
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #elif defined(LINUX)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* Linux */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #define LP64
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #elif defined(__bsdi__)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* BSDI */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #define LP64
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #elif defined(_IRIX)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* IRIX */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #define LP64
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #elif defined(UNIXWARE)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* UnixWare */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #define LP64
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #endif /* UNIXWARE */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif /* !LP64 && !P64 && !LLP64 */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/*
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * define sized type
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#if defined(P64) || defined(LLP64)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* P64 */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned __int64 U64;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned int U32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned short U16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned char U8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed __int64 S64;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed int S32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed short S16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed char S8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #if defined(IA64) || defined(AMD64)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef U64 int_ptr_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #else
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #ifndef UEFI64
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned long int_ptr_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi #endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#elif defined(LP64)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* LP64: Sun, HP and etc */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned long long U64;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned int U32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned short U16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned char U8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed long long S64;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed int S32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed short S16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed char S8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned long int_ptr_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#elif defined(__WATCOMC__)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned __int64 U64;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned long U32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned short U16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned char U8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed __int64 S64;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed long S32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed short S16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed char S8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned long int_ptr_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#else
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* assume others: 16-bit */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned char U64[8];
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned long U32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned short U16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned char U8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed char S64[8];
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed long S32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed short S16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef signed char S8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi typedef unsigned long int_ptr_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif /* */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/*
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * define lower case types
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef U64 u64_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef U32 u32_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef U16 u16_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef U8 u8_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef S64 s64_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef S32 s32_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef S16 s16_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef S8 s8_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifndef LINUX
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef U64 u64;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef U32 u32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef U16 u16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef U8 u8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef S64 s64;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef S32 s32;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef S16 s16;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef S8 s8;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifdef UEFI
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#if BYTE_ORDER == LITTLE_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#undef BIG_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifdef UEFI64
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef u64_t int_ptr_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifdef LITTLE_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifndef __LITTLE_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define __LITTLE_ENDIAN LITTLE_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif /* __LITTLE_ENDIAN */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif /* LITTLE_ENDIAN */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifdef BIG_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifndef __BIG_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define __BIG_ENDIAN BIG_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif /* __BIG_ENDIAN */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif /* BIG_ENDIAN */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifdef __FreeBSD__
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#if _BYTE_ORDER == _LITTLE_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#undef BIG_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#undef __BIG_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#else
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#undef LITTLE_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#undef __LITTLE_ENDIAN
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif /* __FreeBSD__ */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/* Signed subtraction macros with no sign extending. */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define S64_SUB(_a, _b) ((s64_t) ((s64_t) (_a) - (s64_t) (_b)))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define u64_SUB(_a, _b) ((u64_t) ((s64_t) (_a) - (s64_t) (_b)))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define S32_SUB(_a, _b) ((s32_t) ((s32_t) (_a) - (s32_t) (_b)))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define uS32_SUB(_a, _b) ((u32_t) ((s32_t) (_a) - (s32_t) (_b)))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define S16_SUB(_a, _b) ((s16_t) ((s16_t) (_a) - (s16_t) (_b)))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define u16_SUB(_a, _b) ((u16_t) ((s16_t) (_a) - (s16_t) (_b)))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define PTR_SUB(_a, _b) ((u8_t *) (_a) - (u8_t *) (_b))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#if (!defined LINUX ) && (!defined MFW)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define __builtin_offsetof(path1_nvm_image_t, f) (u32_t)((int_ptr_t)(&(((path1_nvm_image_t *)0)->f)))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif/* __bcmtype_h__ */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi