MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ProcessorBind.h File Reference

Macros

#define MDE_CPU_RISCV64
 
#define MAX_BIT   0x8000000000000000ULL
 
#define MAX_2_BITS   0xC000000000000000ULL
 
#define MAX_ADDRESS   0xFFFFFFFFFFFFFFFFULL
 
#define MAX_ALLOC_ADDRESS   0xFFFFFFFFFFFFULL
 
#define MAX_INTN   ((INTN)0x7FFFFFFFFFFFFFFFULL)
 
#define MAX_UINTN   ((UINTN)0xFFFFFFFFFFFFFFFFULL)
 
#define CPU_STACK_ALIGNMENT   16
 
#define DEFAULT_PAGE_ALLOCATION_GRANULARITY   (0x1000)
 
#define RUNTIME_PAGE_ALLOCATION_GRANULARITY   (0x1000)
 
#define EFIAPI
 
#define ASM_GLOBAL   .globl
 
#define FUNCTION_ENTRY_POINT(FunctionPointer)   (VOID *)(UINTN)(FunctionPointer)
 
#define __USER_LABEL_PREFIX__
 

Typedefs

typedef unsigned long long UINT64 __attribute__ ((aligned(8)))
 
typedef unsigned char BOOLEAN
 
typedef unsigned char UINT8
 
typedef char CHAR8
 
typedef signed char INT8
 

Detailed Description

Processor or Compiler specific defines and types for RISC-V

Copyright (c) 2016 - 2020, Hewlett Packard Enterprise Development LP. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#define __USER_LABEL_PREFIX__
#define ASM_GLOBAL   .globl

For GNU assembly code, .global or .globl can declare global symbols. Define this macro to unify the usage.

#define CPU_STACK_ALIGNMENT   16

The stack alignment required for RISC-V

#define DEFAULT_PAGE_ALLOCATION_GRANULARITY   (0x1000)

Page allocation granularity for RISC-V

#define EFIAPI

Define the standard calling convention regardless of optimization level The GCC support assumes a GCC compiler that supports the EFI ABI. The EFI ABI is much closer to the x64 Microsoft* ABI than standard x64 (x86-64) GCC ABI. Thus a standard x64 (x86-64) GCC compiler can not be used for x64. Warning the assembly code in the MDE x64 does not follow the correct ABI for the standard x64 (x86-64) GCC.

#define FUNCTION_ENTRY_POINT (   FunctionPointer)    (VOID *)(UINTN)(FunctionPointer)

Return the pointer to the first instruction of a function given a function pointer. On x64 CPU architectures, these two pointer values are the same, so the implementation of this macro is very simple.

Parameters
FunctionPointerA pointer to a function.
Returns
The pointer to the first instruction of a function given a function pointer.
#define MAX_2_BITS   0xC000000000000000ULL

A value of native width with the two highest bits set.

#define MAX_ADDRESS   0xFFFFFFFFFFFFFFFFULL

Maximum legal RV64 address

#define MAX_ALLOC_ADDRESS   0xFFFFFFFFFFFFULL

Maximum usable address at boot time (48 bits using 4 KB pages in Supervisor mode)

#define MAX_BIT   0x8000000000000000ULL

A value of native width with the highest bit set.

#define MAX_INTN   ((INTN)0x7FFFFFFFFFFFFFFFULL)

Maximum legal RISC-V INTN and UINTN values.

#define MAX_UINTN   ((UINTN)0xFFFFFFFFFFFFFFFFULL)
#define MDE_CPU_RISCV64

Define the processor type so other code can make processor based choices

#define RUNTIME_PAGE_ALLOCATION_GRANULARITY   (0x1000)

Typedef Documentation

typedef INT64 INTN __attribute__((aligned(8)))

8-byte unsigned value

8-byte signed value

4-byte unsigned value

4-byte signed value

2-byte unsigned value

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.

2-byte signed value

Unsigned value of native width. (4 bytes on supported 32-bit processor instructions, 8 bytes on supported 64-bit processor instructions)

Signed value of native width. (4 bytes on supported 32-bit processor instructions, 8 bytes on supported 64-bit processor instructions)

typedef unsigned char BOOLEAN

Logical Boolean. 1-byte value containing 0 for FALSE or a 1 for TRUE. Other values are undefined.

typedef char CHAR8

1-byte Character

typedef signed char INT8

1-byte signed value

typedef unsigned char UINT8

1-byte unsigned value