77 lines
1.7 KiB
C
77 lines
1.7 KiB
C
/*++
|
|
|
|
Copyright (c) 2024, Quinn Stephens.
|
|
Provided under the BSD 3-Clause license.
|
|
|
|
Module Name:
|
|
|
|
efibind.h
|
|
|
|
Abstract:
|
|
|
|
Provides definitions specific to AMD64 EFI systems.
|
|
|
|
--*/
|
|
|
|
#if defined(_MSC_EXTENSIONS)
|
|
typedef unsigned __int64 uint64_t;
|
|
typedef __int64 int64_t;
|
|
typedef unsigned __int32 uint32_t;
|
|
typedef __int32 int32_t;
|
|
typedef unsigned __int16 uint16_t;
|
|
typedef __int16 int16_t;
|
|
typedef unsigned __int8 uint8_t;
|
|
typedef __int8 int8_t;
|
|
#elif defined(UNIX_LP64)
|
|
typedef unsigned long uint64_t;
|
|
typedef long int64_t;
|
|
typedef unsigned int uint32_t;
|
|
typedef int int32_t;
|
|
typedef unsigned short uint16_t;
|
|
typedef short int16_t;
|
|
typedef unsigned char uint8_t;
|
|
typedef char int8_t;
|
|
#else
|
|
typedef unsigned long long uint64_t;
|
|
typedef long long int64_t;
|
|
typedef unsigned int uint32_t;
|
|
typedef int int32_t;
|
|
typedef unsigned short uint16_t;
|
|
typedef short int16_t;
|
|
typedef unsigned char uint8_t;
|
|
typedef char int8_t;
|
|
#endif
|
|
|
|
typedef uint64_t UINT64;
|
|
typedef int64_t INT64;
|
|
typedef uint32_t UINT32;
|
|
typedef int32_t INT32;
|
|
typedef uint16_t UINT16;
|
|
typedef int16_t INT16;
|
|
typedef uint8_t UINT8;
|
|
typedef int8_t INT8;
|
|
|
|
typedef int64_t INTN;
|
|
typedef uint64_t UINTN;
|
|
|
|
#define EFI_ERROR_MASK 0x8000000000000000
|
|
#define EFI_ERROR_MASK_OEM 0xc000000000000000
|
|
#define EFIERR(e) (EFI_ERROR_MASK | e)
|
|
#define EFIERR_OEM(e) (EFI_ERROR_MASK_OEM | e)
|
|
|
|
#ifndef EFIAPI
|
|
#if defined(_MSC_EXTENSIONS)
|
|
#define EFIAPI __cdecl
|
|
#else
|
|
#define EFIAPI __attribute__((ms_abi))
|
|
#endif
|
|
#endif
|
|
|
|
#define VOLATILE volatile
|
|
|
|
#if defined(__GNUC__) || defined(_MSC_EXTENSIONS)
|
|
#define INTERFACE_DECL(n) struct n
|
|
#else
|
|
#define INTERFACE_DECL(n) typedef struct n
|
|
#endif
|