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