blob: aa7f40795df953316de005cd667b94d8b7813d60 [file] [log] [blame]
/* SPDX-License-Identifier: BSD-2-Clause */
/** @file
* Processor or Compiler specific defines and types for IA-32 architecture.
*/
#ifndef __PROCESSOR_BIND_H__
#define __PROCESSOR_BIND_H__
/*
* This to mimic a processor binding for EDK. This is just to provide the
* processor types.
*/
#include <inttypes.h>
///
/// Define the processor type so other code can make processor based choices.
///
#define MDE_CPU_IA32
///
/// 8-byte unsigned value.
///
typedef uint64_t UINT64;
///
/// 8-byte signed value.
///
typedef int64_t INT64;
///
/// 4-byte unsigned value.
///
typedef uint32_t UINT32;
///
/// 4-byte signed value.
///
typedef int32_t INT32;
///
/// 2-byte unsigned value.
///
typedef uint16_t UINT16;
///
/// 2-byte Character. Unless otherwise specified all strings are stored in the
/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
///
typedef uint16_t CHAR16;
///
/// 2-byte signed value.
///
typedef int16_t INT16;
///
/// Logical Boolean. 1-byte value containing 0 for FALSE or a 1 for TRUE. Other
/// values are undefined.
///
typedef unsigned char BOOLEAN;
///
/// 1-byte unsigned value.
///
typedef unsigned char UINT8;
///
/// 1-byte Character
///
typedef char CHAR8;
///
/// 1-byte signed value
///
typedef signed char INT8;
///
/// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions;
/// 8 bytes on supported 64-bit processor instructions.)
///
typedef uintptr_t UINTN;
///
/// Signed value of native width. (4 bytes on supported 32-bit processor instructions;
/// 8 bytes on supported 64-bit processor instructions.)
///
typedef intptr_t INTN;
//
// Processor specific defines
//
///
/// A value of native width with the highest bit set.
// Not needed for non-runtime, but it shouldb
///
//#define MAX_BIT 0x80000000
// No API requirements as this is not for runtime.
#define EFIAPI
#endif