+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- EfiBind.h\r
-\r
-Abstract:\r
-\r
- Processor or compiler specific defines and types for EBC.\r
-\r
---*/\r
-\r
-#ifndef _EFI_BIND_H_\r
-#define _EFI_BIND_H_\r
-\r
-#define EFI_DRIVER_ENTRY_POINT(InitFunction)\r
-#define EFI_APPLICATION_ENTRY_POINT EFI_DRIVER_ENTRY_POINT\r
-\r
-//\r
-// Disable warning that make it impossible to compile at /W3\r
-// This only works for Intel EBC Compiler tools\r
-//\r
-\r
-//\r
-// Disabling argument of type "TYPE **" is incompatible with parameter of type "void **"\r
-//\r
-#pragma warning ( disable : 167 )\r
-\r
-//\r
-// Disabling pointless comparison of unsigned integer with zero\r
-//\r
-#pragma warning ( disable : 186 )\r
-\r
-//\r
-// Disabling enumerated type mixed with another type\r
-//\r
-#pragma warning ( disable : 188 )\r
-\r
-//\r
-// Native integer types\r
-//\r
-typedef signed char int8_t;\r
-typedef unsigned char uint8_t;\r
-\r
-typedef short int16_t;\r
-typedef unsigned short uint16_t;\r
-\r
-typedef int int32_t;\r
-typedef unsigned int uint32_t;\r
-\r
-typedef __int64 int64_t;\r
-typedef unsigned __int64 uint64_t;\r
-\r
-//\r
-// "long" type scales to the processor native size with EBC compiler\r
-//\r
-typedef long intn_t;\r
-typedef unsigned long uintn_t;\r
-\r
-//\r
-// Scalable macro to set the most significant bit in a natural number\r
-//\r
-#define EFI_MAX_BIT ((UINTN)0x01 << ((sizeof (char *) * 8) - 1))\r
-#define MAX_2_BITS (EFI_MAX_BIT | (EFI_MAX_BIT >> 1))\r
-\r
-//\r
-// Maximum legal EBC address\r
-//\r
-#define EFI_MAX_ADDRESS (UINTN)~0\r
-\r
-//\r
-// Bad pointer value to use in check builds.\r
-// if you see this value you are using uninitialized or free'ed data\r
-//\r
-#define EFI_BAD_POINTER (UINTN)0xAFAFAFAFAFAFAFAF\r
-#define EFI_BAD_POINTER_AS_BYTE (UINTN)0xAF\r
-\r
-//\r
-// _break() is an EBC compiler intrinsic function\r
-//\r
-extern \r
-uint64_t \r
-_break (\r
- unsigned char BreakCode\r
- );\r
-\r
-//\r
-// Macro to inject a break point in the code to assist debugging.\r
-//\r
-#define EFI_BREAKPOINT() _break ( 3 )\r
-#define EFI_DEADLOOP() while (TRUE)\r
-\r
-//\r
-// Memory Fence forces serialization, and is needed to support out of order\r
-// memory transactions. The Memory Fence is mainly used to make sure IO\r
-// transactions complete in a deterministic sequence, and to syncronize locks\r
-// an other MP code. Currently no memory fencing is required.\r
-//\r
-#define MEMORY_FENCE()\r
-\r
-//\r
-// Some compilers don't support the forward reference construct:\r
-// typedef struct XXXXX. The forward reference is required for \r
-// ANSI compatibility.\r
-//\r
-// The following macro provide a workaround for such cases.\r
-//\r
-\r
-\r
-#ifdef EFI_NO_INTERFACE_DECL\r
- #define EFI_FORWARD_DECLARATION(x)\r
-#else\r
- #define EFI_FORWARD_DECLARATION(x) typedef struct _##x x\r
-#endif\r
-\r
-\r
-#define _EFIAPI \r
-\r
-#endif // ifndef _EFI_BIND_H_\r
-\r