ReactOS  0.4.15-dev-1152-g6c94e4f
Base.h File Reference
#include <ProcessorBind.h>
Include dependency graph for Base.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define VERIFY_SIZE_OF(TYPE, Size)   extern UINT8 _VerifySizeof##TYPE[(sizeof(TYPE) == (Size)) / (sizeof(TYPE) == (Size))]
 
#define GLOBAL_REMOVE_IF_UNREFERENCED
 
#define ASM_FUNCTION_REMOVE_IF_UNREFERENCED
 
#define PACKED
 
#define BIT0   0x00000001
 
#define BIT1   0x00000002
 
#define BIT2   0x00000004
 
#define BIT3   0x00000008
 
#define BIT4   0x00000010
 
#define BIT5   0x00000020
 
#define BIT6   0x00000040
 
#define BIT7   0x00000080
 
#define BIT8   0x00000100
 
#define BIT9   0x00000200
 
#define BIT10   0x00000400
 
#define BIT11   0x00000800
 
#define BIT12   0x00001000
 
#define BIT13   0x00002000
 
#define BIT14   0x00004000
 
#define BIT15   0x00008000
 
#define BIT16   0x00010000
 
#define BIT17   0x00020000
 
#define BIT18   0x00040000
 
#define BIT19   0x00080000
 
#define BIT20   0x00100000
 
#define BIT21   0x00200000
 
#define BIT22   0x00400000
 
#define BIT23   0x00800000
 
#define BIT24   0x01000000
 
#define BIT25   0x02000000
 
#define BIT26   0x04000000
 
#define BIT27   0x08000000
 
#define BIT28   0x10000000
 
#define BIT29   0x20000000
 
#define BIT30   0x40000000
 
#define BIT31   0x80000000
 
#define BIT32   0x0000000100000000ULL
 
#define BIT33   0x0000000200000000ULL
 
#define BIT34   0x0000000400000000ULL
 
#define BIT35   0x0000000800000000ULL
 
#define BIT36   0x0000001000000000ULL
 
#define BIT37   0x0000002000000000ULL
 
#define BIT38   0x0000004000000000ULL
 
#define BIT39   0x0000008000000000ULL
 
#define BIT40   0x0000010000000000ULL
 
#define BIT41   0x0000020000000000ULL
 
#define BIT42   0x0000040000000000ULL
 
#define BIT43   0x0000080000000000ULL
 
#define BIT44   0x0000100000000000ULL
 
#define BIT45   0x0000200000000000ULL
 
#define BIT46   0x0000400000000000ULL
 
#define BIT47   0x0000800000000000ULL
 
#define BIT48   0x0001000000000000ULL
 
#define BIT49   0x0002000000000000ULL
 
#define BIT50   0x0004000000000000ULL
 
#define BIT51   0x0008000000000000ULL
 
#define BIT52   0x0010000000000000ULL
 
#define BIT53   0x0020000000000000ULL
 
#define BIT54   0x0040000000000000ULL
 
#define BIT55   0x0080000000000000ULL
 
#define BIT56   0x0100000000000000ULL
 
#define BIT57   0x0200000000000000ULL
 
#define BIT58   0x0400000000000000ULL
 
#define BIT59   0x0800000000000000ULL
 
#define BIT60   0x1000000000000000ULL
 
#define BIT61   0x2000000000000000ULL
 
#define BIT62   0x4000000000000000ULL
 
#define BIT63   0x8000000000000000ULL
 
#define SIZE_1KB   0x00000400
 
#define SIZE_2KB   0x00000800
 
#define SIZE_4KB   0x00001000
 
#define SIZE_8KB   0x00002000
 
#define SIZE_16KB   0x00004000
 
#define SIZE_32KB   0x00008000
 
#define SIZE_64KB   0x00010000
 
#define SIZE_128KB   0x00020000
 
#define SIZE_256KB   0x00040000
 
#define SIZE_512KB   0x00080000
 
#define SIZE_1MB   0x00100000
 
#define SIZE_2MB   0x00200000
 
#define SIZE_4MB   0x00400000
 
#define SIZE_8MB   0x00800000
 
#define SIZE_16MB   0x01000000
 
#define SIZE_32MB   0x02000000
 
#define SIZE_64MB   0x04000000
 
#define SIZE_128MB   0x08000000
 
#define SIZE_256MB   0x10000000
 
#define SIZE_512MB   0x20000000
 
#define SIZE_1GB   0x40000000
 
#define SIZE_2GB   0x80000000
 
#define SIZE_4GB   0x0000000100000000ULL
 
#define SIZE_8GB   0x0000000200000000ULL
 
#define SIZE_16GB   0x0000000400000000ULL
 
#define SIZE_32GB   0x0000000800000000ULL
 
#define SIZE_64GB   0x0000001000000000ULL
 
#define SIZE_128GB   0x0000002000000000ULL
 
#define SIZE_256GB   0x0000004000000000ULL
 
#define SIZE_512GB   0x0000008000000000ULL
 
#define SIZE_1TB   0x0000010000000000ULL
 
#define SIZE_2TB   0x0000020000000000ULL
 
#define SIZE_4TB   0x0000040000000000ULL
 
#define SIZE_8TB   0x0000080000000000ULL
 
#define SIZE_16TB   0x0000100000000000ULL
 
#define SIZE_32TB   0x0000200000000000ULL
 
#define SIZE_64TB   0x0000400000000000ULL
 
#define SIZE_128TB   0x0000800000000000ULL
 
#define SIZE_256TB   0x0001000000000000ULL
 
#define SIZE_512TB   0x0002000000000000ULL
 
#define SIZE_1PB   0x0004000000000000ULL
 
#define SIZE_2PB   0x0008000000000000ULL
 
#define SIZE_4PB   0x0010000000000000ULL
 
#define SIZE_8PB   0x0020000000000000ULL
 
#define SIZE_16PB   0x0040000000000000ULL
 
#define SIZE_32PB   0x0080000000000000ULL
 
#define SIZE_64PB   0x0100000000000000ULL
 
#define SIZE_128PB   0x0200000000000000ULL
 
#define SIZE_256PB   0x0400000000000000ULL
 
#define SIZE_512PB   0x0800000000000000ULL
 
#define SIZE_1EB   0x1000000000000000ULL
 
#define SIZE_2EB   0x2000000000000000ULL
 
#define SIZE_4EB   0x4000000000000000ULL
 
#define SIZE_8EB   0x8000000000000000ULL
 
#define BASE_1KB   0x00000400
 
#define BASE_2KB   0x00000800
 
#define BASE_4KB   0x00001000
 
#define BASE_8KB   0x00002000
 
#define BASE_16KB   0x00004000
 
#define BASE_32KB   0x00008000
 
#define BASE_64KB   0x00010000
 
#define BASE_128KB   0x00020000
 
#define BASE_256KB   0x00040000
 
#define BASE_512KB   0x00080000
 
#define BASE_1MB   0x00100000
 
#define BASE_2MB   0x00200000
 
#define BASE_4MB   0x00400000
 
#define BASE_8MB   0x00800000
 
#define BASE_16MB   0x01000000
 
#define BASE_32MB   0x02000000
 
#define BASE_64MB   0x04000000
 
#define BASE_128MB   0x08000000
 
#define BASE_256MB   0x10000000
 
#define BASE_512MB   0x20000000
 
#define BASE_1GB   0x40000000
 
#define BASE_2GB   0x80000000
 
#define BASE_4GB   0x0000000100000000ULL
 
#define BASE_8GB   0x0000000200000000ULL
 
#define BASE_16GB   0x0000000400000000ULL
 
#define BASE_32GB   0x0000000800000000ULL
 
#define BASE_64GB   0x0000001000000000ULL
 
#define BASE_128GB   0x0000002000000000ULL
 
#define BASE_256GB   0x0000004000000000ULL
 
#define BASE_512GB   0x0000008000000000ULL
 
#define BASE_1TB   0x0000010000000000ULL
 
#define BASE_2TB   0x0000020000000000ULL
 
#define BASE_4TB   0x0000040000000000ULL
 
#define BASE_8TB   0x0000080000000000ULL
 
#define BASE_16TB   0x0000100000000000ULL
 
#define BASE_32TB   0x0000200000000000ULL
 
#define BASE_64TB   0x0000400000000000ULL
 
#define BASE_128TB   0x0000800000000000ULL
 
#define BASE_256TB   0x0001000000000000ULL
 
#define BASE_512TB   0x0002000000000000ULL
 
#define BASE_1PB   0x0004000000000000ULL
 
#define BASE_2PB   0x0008000000000000ULL
 
#define BASE_4PB   0x0010000000000000ULL
 
#define BASE_8PB   0x0020000000000000ULL
 
#define BASE_16PB   0x0040000000000000ULL
 
#define BASE_32PB   0x0080000000000000ULL
 
#define BASE_64PB   0x0100000000000000ULL
 
#define BASE_128PB   0x0200000000000000ULL
 
#define BASE_256PB   0x0400000000000000ULL
 
#define BASE_512PB   0x0800000000000000ULL
 
#define BASE_1EB   0x1000000000000000ULL
 
#define BASE_2EB   0x2000000000000000ULL
 
#define BASE_4EB   0x4000000000000000ULL
 
#define BASE_8EB   0x8000000000000000ULL
 
#define _INT_SIZE_OF(n)   ((sizeof (n) + sizeof (UINTN) - 1) &~(sizeof (UINTN) - 1))
 
#define VA_START(Marker, Parameter)   (Marker = (VA_LIST) ((UINTN) & (Parameter) + _INT_SIZE_OF (Parameter)))
 
#define VA_ARG(Marker, TYPE)   (*(TYPE *) ((Marker += _INT_SIZE_OF (TYPE)) - _INT_SIZE_OF (TYPE)))
 
#define VA_END(Marker)   (Marker = (VA_LIST) 0)
 
#define VA_COPY(Dest, Start)   ((void)((Dest) = (Start)))
 
#define _BASE_INT_SIZE_OF(TYPE)   ((sizeof (TYPE) + sizeof (UINTN) - 1) / sizeof (UINTN))
 
#define BASE_ARG(Marker, TYPE)   (*(TYPE *) ((Marker += _BASE_INT_SIZE_OF (TYPE)) - _BASE_INT_SIZE_OF (TYPE)))
 
#define OFFSET_OF(TYPE, Field)   ((UINTN) &(((TYPE *)0)->Field))
 
#define BASE_CR(Record, TYPE, Field)   ((TYPE *) ((CHAR8 *) (Record) - (CHAR8 *) &(((TYPE *) 0)->Field)))
 
#define ALIGN_VALUE(Value, Alignment)   ((Value) + (((Alignment) - (Value)) & ((Alignment) - 1)))
 
#define ALIGN_POINTER(Pointer, Alignment)   ((VOID *) (ALIGN_VALUE ((UINTN)(Pointer), (Alignment))))
 
#define ALIGN_VARIABLE(Value)   ALIGN_VALUE ((Value), sizeof (UINTN))
 
#define MAX(a, b)   (((a) > (b)) ? (a) : (b))
 
#define MIN(a, b)   (((a) < (b)) ? (a) : (b))
 
#define ABS(a)   (((a) < 0) ? (-(a)) : (a))
 
#define ENCODE_ERROR(StatusCode)   ((RETURN_STATUS)(MAX_BIT | (StatusCode)))
 
#define ENCODE_WARNING(StatusCode)   ((RETURN_STATUS)(StatusCode))
 
#define RETURN_ERROR(StatusCode)   (((INTN)(RETURN_STATUS)(StatusCode)) < 0)
 
#define RETURN_SUCCESS   0
 
#define RETURN_LOAD_ERROR   ENCODE_ERROR (1)
 
#define RETURN_INVALID_PARAMETER   ENCODE_ERROR (2)
 
#define RETURN_UNSUPPORTED   ENCODE_ERROR (3)
 
#define RETURN_BAD_BUFFER_SIZE   ENCODE_ERROR (4)
 
#define RETURN_BUFFER_TOO_SMALL   ENCODE_ERROR (5)
 
#define RETURN_NOT_READY   ENCODE_ERROR (6)
 
#define RETURN_DEVICE_ERROR   ENCODE_ERROR (7)
 
#define RETURN_WRITE_PROTECTED   ENCODE_ERROR (8)
 
#define RETURN_OUT_OF_RESOURCES   ENCODE_ERROR (9)
 
#define RETURN_VOLUME_CORRUPTED   ENCODE_ERROR (10)
 
#define RETURN_VOLUME_FULL   ENCODE_ERROR (11)
 
#define RETURN_NO_MEDIA   ENCODE_ERROR (12)
 
#define RETURN_MEDIA_CHANGED   ENCODE_ERROR (13)
 
#define RETURN_NOT_FOUND   ENCODE_ERROR (14)
 
#define RETURN_ACCESS_DENIED   ENCODE_ERROR (15)
 
#define RETURN_NO_RESPONSE   ENCODE_ERROR (16)
 
#define RETURN_NO_MAPPING   ENCODE_ERROR (17)
 
#define RETURN_TIMEOUT   ENCODE_ERROR (18)
 
#define RETURN_NOT_STARTED   ENCODE_ERROR (19)
 
#define RETURN_ALREADY_STARTED   ENCODE_ERROR (20)
 
#define RETURN_ABORTED   ENCODE_ERROR (21)
 
#define RETURN_ICMP_ERROR   ENCODE_ERROR (22)
 
#define RETURN_TFTP_ERROR   ENCODE_ERROR (23)
 
#define RETURN_PROTOCOL_ERROR   ENCODE_ERROR (24)
 
#define RETURN_INCOMPATIBLE_VERSION   ENCODE_ERROR (25)
 
#define RETURN_SECURITY_VIOLATION   ENCODE_ERROR (26)
 
#define RETURN_CRC_ERROR   ENCODE_ERROR (27)
 
#define RETURN_END_OF_MEDIA   ENCODE_ERROR (28)
 
#define RETURN_END_OF_FILE   ENCODE_ERROR (31)
 
#define RETURN_INVALID_LANGUAGE   ENCODE_ERROR (32)
 
#define RETURN_COMPROMISED_DATA   ENCODE_ERROR (33)
 
#define RETURN_WARN_UNKNOWN_GLYPH   ENCODE_WARNING (1)
 
#define RETURN_WARN_DELETE_FAILURE   ENCODE_WARNING (2)
 
#define RETURN_WARN_WRITE_FAILURE   ENCODE_WARNING (3)
 
#define RETURN_WARN_BUFFER_TOO_SMALL   ENCODE_WARNING (4)
 
#define RETURN_WARN_STALE_DATA   ENCODE_WARNING (5)
 
#define SIGNATURE_16(A, B)   ((A) | (B << 8))
 
#define SIGNATURE_32(A, B, C, D)   (SIGNATURE_16 (A, B) | (SIGNATURE_16 (C, D) << 16))
 
#define SIGNATURE_64(A, B, C, D, E, F, G, H)   (SIGNATURE_32(A, B, C, D) | ((UINT64) (SIGNATURE_32(E, F, G, H)) << 32))
 

Typedefs

typedef CHAR8VA_LIST
 
typedef UINTNBASE_LIST
 
typedef UINTN RETURN_STATUS
 

Functions

 VERIFY_SIZE_OF (BOOLEAN, 1)
 
 VERIFY_SIZE_OF (INT8, 1)
 
 VERIFY_SIZE_OF (INT16, 2)
 
 VERIFY_SIZE_OF (UINT16, 2)
 
 VERIFY_SIZE_OF (INT32, 4)
 
 VERIFY_SIZE_OF (UINT32, 4)
 
 VERIFY_SIZE_OF (INT64, 8)
 
 VERIFY_SIZE_OF (UINT64, 8)
 

Detailed Description

Root include file for Mde Package Base type modules

This is the include file for any module of type base. Base modules only use types defined via this include file and can be ported easily to any environment. There are a set of base libraries in the Mde Package that can be used to implement base modules.

Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.
Portions copyright (c) 2008 - 2009, Apple Inc. 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.

Definition in file Base.h.

Macro Definition Documentation

◆ _BASE_INT_SIZE_OF

#define _BASE_INT_SIZE_OF (   TYPE)    ((sizeof (TYPE) + sizeof (UINTN) - 1) / sizeof (UINTN))

Returns the size of a data type in sizeof(UINTN) units rounded up to the nearest UINTN boundary.

Parameters
TYPEThe date type to determine the size of.
Returns
The size of TYPE in sizeof (UINTN) units rounded up to the nearest UINTN boundary.

Definition at line 561 of file Base.h.

◆ _INT_SIZE_OF

#define _INT_SIZE_OF (   n)    ((sizeof (n) + sizeof (UINTN) - 1) &~(sizeof (UINTN) - 1))

Return the size of argument that has been aligned to sizeof (UINTN).

Parameters
nThe parameter size to be aligned.
Returns
The aligned size.

Definition at line 433 of file Base.h.

◆ ABS

#define ABS (   a)    (((a) < 0) ? (-(a)) : (a))

Return the absolute value of a signed operand.

This macro returns the absolute value of the signed operand specified by a.

Parameters
aThe signed operand.
Returns
The absolute value of the signed operand.

Definition at line 710 of file Base.h.

◆ ALIGN_POINTER

#define ALIGN_POINTER (   Pointer,
  Alignment 
)    ((VOID *) (ALIGN_VALUE ((UINTN)(Pointer), (Alignment))))

Adjust a pointer by adding the minimum offset required for it to be aligned on a specified alignment boundary.

This function rounds the pointer specified by Pointer to the next alignment boundary specified by Alignment. The pointer to the aligned address is returned.

Parameters
PointerThe pointer to round up.
AlignmentThe alignment boundary to use to return an aligned pointer.
Returns
Pointer to the aligned address.

Definition at line 652 of file Base.h.

◆ ALIGN_VALUE

#define ALIGN_VALUE (   Value,
  Alignment 
)    ((Value) + (((Alignment) - (Value)) & ((Alignment) - 1)))

Rounds a value up to the next boundary using a specified alignment.

This function rounds Value up to the next boundary using the specified Alignment. This aligned value is returned.

Parameters
ValueThe value to round up.
AlignmentThe alignment boundary used to return the aligned value.
Returns
A value up to the next boundary.

Definition at line 637 of file Base.h.

◆ ALIGN_VARIABLE

#define ALIGN_VARIABLE (   Value)    ALIGN_VALUE ((Value), sizeof (UINTN))

Rounds a value up to the next natural boundary for the current CPU. This is 4-bytes for 32-bit CPUs and 8-bytes for 64-bit CPUs.

This function rounds the value specified by Value up to the next natural boundary for the current CPU. This rounded value is returned.

Parameters
ValueThe value to round up.
Returns
Rounded value specified by Value.

Definition at line 666 of file Base.h.

◆ ASM_FUNCTION_REMOVE_IF_UNREFERENCED

#define ASM_FUNCTION_REMOVE_IF_UNREFERENCED

Definition at line 104 of file Base.h.

◆ BASE_128GB

#define BASE_128GB   0x0000002000000000ULL

Definition at line 357 of file Base.h.

◆ BASE_128KB

#define BASE_128KB   0x00020000

Definition at line 337 of file Base.h.

◆ BASE_128MB

#define BASE_128MB   0x08000000

Definition at line 347 of file Base.h.

◆ BASE_128PB

#define BASE_128PB   0x0200000000000000ULL

Definition at line 377 of file Base.h.

◆ BASE_128TB

#define BASE_128TB   0x0000800000000000ULL

Definition at line 367 of file Base.h.

◆ BASE_16GB

#define BASE_16GB   0x0000000400000000ULL

Definition at line 354 of file Base.h.

◆ BASE_16KB

#define BASE_16KB   0x00004000

Definition at line 334 of file Base.h.

◆ BASE_16MB

#define BASE_16MB   0x01000000

Definition at line 344 of file Base.h.

◆ BASE_16PB

#define BASE_16PB   0x0040000000000000ULL

Definition at line 374 of file Base.h.

◆ BASE_16TB

#define BASE_16TB   0x0000100000000000ULL

Definition at line 364 of file Base.h.

◆ BASE_1EB

#define BASE_1EB   0x1000000000000000ULL

Definition at line 380 of file Base.h.

◆ BASE_1GB

#define BASE_1GB   0x40000000

Definition at line 350 of file Base.h.

◆ BASE_1KB

#define BASE_1KB   0x00000400

Definition at line 330 of file Base.h.

◆ BASE_1MB

#define BASE_1MB   0x00100000

Definition at line 340 of file Base.h.

◆ BASE_1PB

#define BASE_1PB   0x0004000000000000ULL

Definition at line 370 of file Base.h.

◆ BASE_1TB

#define BASE_1TB   0x0000010000000000ULL

Definition at line 360 of file Base.h.

◆ BASE_256GB

#define BASE_256GB   0x0000004000000000ULL

Definition at line 358 of file Base.h.

◆ BASE_256KB

#define BASE_256KB   0x00040000

Definition at line 338 of file Base.h.

◆ BASE_256MB

#define BASE_256MB   0x10000000

Definition at line 348 of file Base.h.

◆ BASE_256PB

#define BASE_256PB   0x0400000000000000ULL

Definition at line 378 of file Base.h.

◆ BASE_256TB

#define BASE_256TB   0x0001000000000000ULL

Definition at line 368 of file Base.h.

◆ BASE_2EB

#define BASE_2EB   0x2000000000000000ULL

Definition at line 381 of file Base.h.

◆ BASE_2GB

#define BASE_2GB   0x80000000

Definition at line 351 of file Base.h.

◆ BASE_2KB

#define BASE_2KB   0x00000800

Definition at line 331 of file Base.h.

◆ BASE_2MB

#define BASE_2MB   0x00200000

Definition at line 341 of file Base.h.

◆ BASE_2PB

#define BASE_2PB   0x0008000000000000ULL

Definition at line 371 of file Base.h.

◆ BASE_2TB

#define BASE_2TB   0x0000020000000000ULL

Definition at line 361 of file Base.h.

◆ BASE_32GB

#define BASE_32GB   0x0000000800000000ULL

Definition at line 355 of file Base.h.

◆ BASE_32KB

#define BASE_32KB   0x00008000

Definition at line 335 of file Base.h.

◆ BASE_32MB

#define BASE_32MB   0x02000000

Definition at line 345 of file Base.h.

◆ BASE_32PB

#define BASE_32PB   0x0080000000000000ULL

Definition at line 375 of file Base.h.

◆ BASE_32TB

#define BASE_32TB   0x0000200000000000ULL

Definition at line 365 of file Base.h.

◆ BASE_4EB

#define BASE_4EB   0x4000000000000000ULL

Definition at line 382 of file Base.h.

◆ BASE_4GB

#define BASE_4GB   0x0000000100000000ULL

Definition at line 352 of file Base.h.

◆ BASE_4KB

#define BASE_4KB   0x00001000

Definition at line 332 of file Base.h.

◆ BASE_4MB

#define BASE_4MB   0x00400000

Definition at line 342 of file Base.h.

◆ BASE_4PB

#define BASE_4PB   0x0010000000000000ULL

Definition at line 372 of file Base.h.

◆ BASE_4TB

#define BASE_4TB   0x0000040000000000ULL

Definition at line 362 of file Base.h.

◆ BASE_512GB

#define BASE_512GB   0x0000008000000000ULL

Definition at line 359 of file Base.h.

◆ BASE_512KB

#define BASE_512KB   0x00080000

Definition at line 339 of file Base.h.

◆ BASE_512MB

#define BASE_512MB   0x20000000

Definition at line 349 of file Base.h.

◆ BASE_512PB

#define BASE_512PB   0x0800000000000000ULL

Definition at line 379 of file Base.h.

◆ BASE_512TB

#define BASE_512TB   0x0002000000000000ULL

Definition at line 369 of file Base.h.

◆ BASE_64GB

#define BASE_64GB   0x0000001000000000ULL

Definition at line 356 of file Base.h.

◆ BASE_64KB

#define BASE_64KB   0x00010000

Definition at line 336 of file Base.h.

◆ BASE_64MB

#define BASE_64MB   0x04000000

Definition at line 346 of file Base.h.

◆ BASE_64PB

#define BASE_64PB   0x0100000000000000ULL

Definition at line 376 of file Base.h.

◆ BASE_64TB

#define BASE_64TB   0x0000400000000000ULL

Definition at line 366 of file Base.h.

◆ BASE_8EB

#define BASE_8EB   0x8000000000000000ULL

Definition at line 383 of file Base.h.

◆ BASE_8GB

#define BASE_8GB   0x0000000200000000ULL

Definition at line 353 of file Base.h.

◆ BASE_8KB

#define BASE_8KB   0x00002000

Definition at line 333 of file Base.h.

◆ BASE_8MB

#define BASE_8MB   0x00800000

Definition at line 343 of file Base.h.

◆ BASE_8PB

#define BASE_8PB   0x0020000000000000ULL

Definition at line 373 of file Base.h.

◆ BASE_8TB

#define BASE_8TB   0x0000080000000000ULL

Definition at line 363 of file Base.h.

◆ BASE_ARG

#define BASE_ARG (   Marker,
  TYPE 
)    (*(TYPE *) ((Marker += _BASE_INT_SIZE_OF (TYPE)) - _BASE_INT_SIZE_OF (TYPE)))

Returns an argument of a specified type from a variable argument list and updates the pointer to the variable argument list to point to the next argument.

This function returns an argument of the type specified by TYPE from the beginning of the variable argument list specified by Marker. Marker is then updated to point to the next argument in the variable argument list. The method for computing the pointer to the next argument in the argument list is CPU specific following the EFIAPI ABI.

Parameters
MarkerThe pointer to the beginning of a variable argument list.
TYPEThe type of argument to retrieve from the beginning of the variable argument list.
Returns
An argument of the type specified by TYPE.

Definition at line 579 of file Base.h.

◆ BASE_CR

#define BASE_CR (   Record,
  TYPE,
  Field 
)    ((TYPE *) ((CHAR8 *) (Record) - (CHAR8 *) &(((TYPE *) 0)->Field)))

Macro that returns a pointer to the data structure that contains a specified field of that data structure. This is a lightweight method to hide information by placing a public data structure inside a larger private data structure and using a pointer to the public data structure to retrieve a pointer to the private data structure.

This function computes the offset, in bytes, of field specified by Field from the beginning of the data structure specified by TYPE. This offset is subtracted from Record, and is used to return a pointer to a data structure of the type specified by TYPE. If the data type specified by TYPE does not contain the field specified by Field, then the module will not compile.

Parameters
RecordPointer to the field specified by Field within a data structure of type TYPE.
TYPEThe name of the data structure type to return. This data structure must contain the field specified by Field.
FieldThe name of the field in the data structure specified by TYPE to which Record points.
Returns
A pointer to the structure from one of it's elements.

Definition at line 623 of file Base.h.

◆ BIT0

#define BIT0   0x00000001

Definition at line 210 of file Base.h.

◆ BIT1

#define BIT1   0x00000002

Definition at line 211 of file Base.h.

◆ BIT10

#define BIT10   0x00000400

Definition at line 220 of file Base.h.

◆ BIT11

#define BIT11   0x00000800

Definition at line 221 of file Base.h.

◆ BIT12

#define BIT12   0x00001000

Definition at line 222 of file Base.h.

◆ BIT13

#define BIT13   0x00002000

Definition at line 223 of file Base.h.

◆ BIT14

#define BIT14   0x00004000

Definition at line 224 of file Base.h.

◆ BIT15

#define BIT15   0x00008000

Definition at line 225 of file Base.h.

◆ BIT16

#define BIT16   0x00010000

Definition at line 226 of file Base.h.

◆ BIT17

#define BIT17   0x00020000

Definition at line 227 of file Base.h.

◆ BIT18

#define BIT18   0x00040000

Definition at line 228 of file Base.h.

◆ BIT19

#define BIT19   0x00080000

Definition at line 229 of file Base.h.

◆ BIT2

#define BIT2   0x00000004

Definition at line 212 of file Base.h.

◆ BIT20

#define BIT20   0x00100000

Definition at line 230 of file Base.h.

◆ BIT21

#define BIT21   0x00200000

Definition at line 231 of file Base.h.

◆ BIT22

#define BIT22   0x00400000

Definition at line 232 of file Base.h.

◆ BIT23

#define BIT23   0x00800000

Definition at line 233 of file Base.h.

◆ BIT24

#define BIT24   0x01000000

Definition at line 234 of file Base.h.

◆ BIT25

#define BIT25   0x02000000

Definition at line 235 of file Base.h.

◆ BIT26

#define BIT26   0x04000000

Definition at line 236 of file Base.h.

◆ BIT27

#define BIT27   0x08000000

Definition at line 237 of file Base.h.

◆ BIT28

#define BIT28   0x10000000

Definition at line 238 of file Base.h.

◆ BIT29

#define BIT29   0x20000000

Definition at line 239 of file Base.h.

◆ BIT3

#define BIT3   0x00000008

Definition at line 213 of file Base.h.

◆ BIT30

#define BIT30   0x40000000

Definition at line 240 of file Base.h.

◆ BIT31

#define BIT31   0x80000000

Definition at line 241 of file Base.h.

◆ BIT32

#define BIT32   0x0000000100000000ULL

Definition at line 242 of file Base.h.

◆ BIT33

#define BIT33   0x0000000200000000ULL

Definition at line 243 of file Base.h.

◆ BIT34

#define BIT34   0x0000000400000000ULL

Definition at line 244 of file Base.h.

◆ BIT35

#define BIT35   0x0000000800000000ULL

Definition at line 245 of file Base.h.

◆ BIT36

#define BIT36   0x0000001000000000ULL

Definition at line 246 of file Base.h.

◆ BIT37

#define BIT37   0x0000002000000000ULL

Definition at line 247 of file Base.h.

◆ BIT38

#define BIT38   0x0000004000000000ULL

Definition at line 248 of file Base.h.

◆ BIT39

#define BIT39   0x0000008000000000ULL

Definition at line 249 of file Base.h.

◆ BIT4

#define BIT4   0x00000010

Definition at line 214 of file Base.h.

◆ BIT40

#define BIT40   0x0000010000000000ULL

Definition at line 250 of file Base.h.

◆ BIT41

#define BIT41   0x0000020000000000ULL

Definition at line 251 of file Base.h.

◆ BIT42

#define BIT42   0x0000040000000000ULL

Definition at line 252 of file Base.h.

◆ BIT43

#define BIT43   0x0000080000000000ULL

Definition at line 253 of file Base.h.

◆ BIT44

#define BIT44   0x0000100000000000ULL

Definition at line 254 of file Base.h.

◆ BIT45

#define BIT45   0x0000200000000000ULL

Definition at line 255 of file Base.h.

◆ BIT46

#define BIT46   0x0000400000000000ULL

Definition at line 256 of file Base.h.

◆ BIT47

#define BIT47   0x0000800000000000ULL

Definition at line 257 of file Base.h.

◆ BIT48

#define BIT48   0x0001000000000000ULL

Definition at line 258 of file Base.h.

◆ BIT49

#define BIT49   0x0002000000000000ULL

Definition at line 259 of file Base.h.

◆ BIT5

#define BIT5   0x00000020

Definition at line 215 of file Base.h.

◆ BIT50

#define BIT50   0x0004000000000000ULL

Definition at line 260 of file Base.h.

◆ BIT51

#define BIT51   0x0008000000000000ULL

Definition at line 261 of file Base.h.

◆ BIT52

#define BIT52   0x0010000000000000ULL

Definition at line 262 of file Base.h.

◆ BIT53

#define BIT53   0x0020000000000000ULL

Definition at line 263 of file Base.h.

◆ BIT54

#define BIT54   0x0040000000000000ULL

Definition at line 264 of file Base.h.

◆ BIT55

#define BIT55   0x0080000000000000ULL

Definition at line 265 of file Base.h.

◆ BIT56

#define BIT56   0x0100000000000000ULL

Definition at line 266 of file Base.h.

◆ BIT57

#define BIT57   0x0200000000000000ULL

Definition at line 267 of file Base.h.

◆ BIT58

#define BIT58   0x0400000000000000ULL

Definition at line 268 of file Base.h.

◆ BIT59

#define BIT59   0x0800000000000000ULL

Definition at line 269 of file Base.h.

◆ BIT6

#define BIT6   0x00000040

Definition at line 216 of file Base.h.

◆ BIT60

#define BIT60   0x1000000000000000ULL

Definition at line 270 of file Base.h.

◆ BIT61

#define BIT61   0x2000000000000000ULL

Definition at line 271 of file Base.h.

◆ BIT62

#define BIT62   0x4000000000000000ULL

Definition at line 272 of file Base.h.

◆ BIT63

#define BIT63   0x8000000000000000ULL

Definition at line 273 of file Base.h.

◆ BIT7

#define BIT7   0x00000080

Definition at line 217 of file Base.h.

◆ BIT8

#define BIT8   0x00000100

Definition at line 218 of file Base.h.

◆ BIT9

#define BIT9   0x00000200

Definition at line 219 of file Base.h.

◆ ENCODE_ERROR

#define ENCODE_ERROR (   StatusCode)    ((RETURN_STATUS)(MAX_BIT | (StatusCode)))

Produces a RETURN_STATUS code with the highest bit set.

Parameters
StatusCodeThe status code value to convert into a warning code. StatusCode must be in the range 0x00000000..0x7FFFFFFF.
Returns
The value specified by StatusCode with the highest bit set.

Definition at line 727 of file Base.h.

◆ ENCODE_WARNING

#define ENCODE_WARNING (   StatusCode)    ((RETURN_STATUS)(StatusCode))

Produces a RETURN_STATUS code with the highest bit clear.

Parameters
StatusCodeThe status code value to convert into a warning code. StatusCode must be in the range 0x00000000..0x7FFFFFFF.
Returns
The value specified by StatusCode with the highest bit clear.

Definition at line 738 of file Base.h.

◆ GLOBAL_REMOVE_IF_UNREFERENCED

#define GLOBAL_REMOVE_IF_UNREFERENCED

Remove the global variable from the linked image if there are no references to it after all compiler and linker optimizations have been performed.

Definition at line 77 of file Base.h.

◆ MAX

#define MAX (   a,
  b 
)    (((a) > (b)) ? (a) : (b))

Return the maximum of two operands.

This macro returns the maximum of two operand specified by a and b. Both a and b must be the same numerical types, signed or unsigned.

Parameters
aThe first operand with any numerical type.
bThe second operand. Can be any numerical type as long as is the same type as a.
Returns
Maximum of two operands.

Definition at line 682 of file Base.h.

◆ MIN

#define MIN (   a,
  b 
)    (((a) < (b)) ? (a) : (b))

Return the minimum of two operands.

This macro returns the minimal of two operand specified by a and b. Both a and b must be the same numerical types, signed or unsigned.

Parameters
aThe first operand with any numerical type.
bThe second operand. It should be the same any numerical type with a.
Returns
Minimum of two operands.

Definition at line 697 of file Base.h.

◆ OFFSET_OF

#define OFFSET_OF (   TYPE,
  Field 
)    ((UINTN) &(((TYPE *)0)->Field))

The macro that returns the byte offset of a field in a data structure.

This function returns the offset, in bytes, of field specified by Field from the beginning of the data structure specified by TYPE. If TYPE does not contain Field, the module will not compile.

Parameters
TYPEThe name of the data structure that contains the field specified by Field.
FieldThe name of the field in the data structure.
Returns
Offset, in bytes, of field.

Definition at line 601 of file Base.h.

◆ PACKED

Definition at line 114 of file Base.h.

◆ RETURN_ABORTED

#define RETURN_ABORTED   ENCODE_ERROR (21)

The operation was aborted.

Definition at line 867 of file Base.h.

◆ RETURN_ACCESS_DENIED

#define RETURN_ACCESS_DENIED   ENCODE_ERROR (15)

Access was denied.

Definition at line 837 of file Base.h.

◆ RETURN_ALREADY_STARTED

#define RETURN_ALREADY_STARTED   ENCODE_ERROR (20)

The protocol has already been started.

Definition at line 862 of file Base.h.

◆ RETURN_BAD_BUFFER_SIZE

#define RETURN_BAD_BUFFER_SIZE   ENCODE_ERROR (4)

The buffer was not the proper size for the request.

Definition at line 776 of file Base.h.

◆ RETURN_BUFFER_TOO_SMALL

#define RETURN_BUFFER_TOO_SMALL   ENCODE_ERROR (5)

The buffer was not large enough to hold the requested data. The required buffer size is returned in the appropriate parameter when this error occurs.

Definition at line 783 of file Base.h.

◆ RETURN_COMPROMISED_DATA

#define RETURN_COMPROMISED_DATA   ENCODE_ERROR (33)

The security status of the data is unknown or compromised and the data must be updated or replaced to restore a valid security status.

Definition at line 920 of file Base.h.

◆ RETURN_CRC_ERROR

#define RETURN_CRC_ERROR   ENCODE_ERROR (27)

A CRC error was detected.

Definition at line 898 of file Base.h.

◆ RETURN_DEVICE_ERROR

#define RETURN_DEVICE_ERROR   ENCODE_ERROR (7)

The physical device reported an error while attempting the operation.

Definition at line 794 of file Base.h.

◆ RETURN_END_OF_FILE

#define RETURN_END_OF_FILE   ENCODE_ERROR (31)

The end of the file was reached.

Definition at line 908 of file Base.h.

◆ RETURN_END_OF_MEDIA

#define RETURN_END_OF_MEDIA   ENCODE_ERROR (28)

The beginning or end of media was reached.

Definition at line 903 of file Base.h.

◆ RETURN_ERROR

#define RETURN_ERROR (   StatusCode)    (((INTN)(RETURN_STATUS)(StatusCode)) < 0)

Returns TRUE if a specified RETURN_STATUS code is an error code.

This function returns TRUE if StatusCode has the high bit set. Otherwise, FALSE is returned.

Parameters
StatusCodeThe status code value to evaluate.
Return values
TRUEThe high bit of StatusCode is set.
FALSEThe high bit of StatusCode is clear.

Definition at line 751 of file Base.h.

◆ RETURN_ICMP_ERROR

#define RETURN_ICMP_ERROR   ENCODE_ERROR (22)

An ICMP error occurred during the network operation.

Definition at line 872 of file Base.h.

◆ RETURN_INCOMPATIBLE_VERSION

#define RETURN_INCOMPATIBLE_VERSION   ENCODE_ERROR (25)

A function encountered an internal version that was incompatible with a version requested by the caller.

Definition at line 888 of file Base.h.

◆ RETURN_INVALID_LANGUAGE

#define RETURN_INVALID_LANGUAGE   ENCODE_ERROR (32)

The language specified was invalid.

Definition at line 913 of file Base.h.

◆ RETURN_INVALID_PARAMETER

#define RETURN_INVALID_PARAMETER   ENCODE_ERROR (2)

The parameter was incorrect.

Definition at line 766 of file Base.h.

◆ RETURN_LOAD_ERROR

#define RETURN_LOAD_ERROR   ENCODE_ERROR (1)

The image failed to load.

Definition at line 761 of file Base.h.

◆ RETURN_MEDIA_CHANGED

#define RETURN_MEDIA_CHANGED   ENCODE_ERROR (13)

The medium in the device has changed since the last access.

Definition at line 827 of file Base.h.

◆ RETURN_NO_MAPPING

#define RETURN_NO_MAPPING   ENCODE_ERROR (17)

A mapping to the device does not exist.

Definition at line 847 of file Base.h.

◆ RETURN_NO_MEDIA

#define RETURN_NO_MEDIA   ENCODE_ERROR (12)

The device does not contain any medium to perform the operation.

Definition at line 821 of file Base.h.

◆ RETURN_NO_RESPONSE

#define RETURN_NO_RESPONSE   ENCODE_ERROR (16)

The server was not found or did not respond to the request.

Definition at line 842 of file Base.h.

◆ RETURN_NOT_FOUND

#define RETURN_NOT_FOUND   ENCODE_ERROR (14)

The item was not found.

Definition at line 832 of file Base.h.

◆ RETURN_NOT_READY

#define RETURN_NOT_READY   ENCODE_ERROR (6)

There is no data pending upon return.

Definition at line 788 of file Base.h.

◆ RETURN_NOT_STARTED

#define RETURN_NOT_STARTED   ENCODE_ERROR (19)

The protocol has not been started.

Definition at line 857 of file Base.h.

◆ RETURN_OUT_OF_RESOURCES

#define RETURN_OUT_OF_RESOURCES   ENCODE_ERROR (9)

The resource has run out.

Definition at line 804 of file Base.h.

◆ RETURN_PROTOCOL_ERROR

#define RETURN_PROTOCOL_ERROR   ENCODE_ERROR (24)

A protocol error occurred during the network operation.

Definition at line 882 of file Base.h.

◆ RETURN_SECURITY_VIOLATION

#define RETURN_SECURITY_VIOLATION   ENCODE_ERROR (26)

The function was not performed due to a security violation.

Definition at line 893 of file Base.h.

◆ RETURN_SUCCESS

#define RETURN_SUCCESS   0

The operation completed successfully.

Definition at line 756 of file Base.h.

◆ RETURN_TFTP_ERROR

#define RETURN_TFTP_ERROR   ENCODE_ERROR (23)

A TFTP error occurred during the network operation.

Definition at line 877 of file Base.h.

◆ RETURN_TIMEOUT

#define RETURN_TIMEOUT   ENCODE_ERROR (18)

A timeout time expired.

Definition at line 852 of file Base.h.

◆ RETURN_UNSUPPORTED

#define RETURN_UNSUPPORTED   ENCODE_ERROR (3)

The operation is not supported.

Definition at line 771 of file Base.h.

◆ RETURN_VOLUME_CORRUPTED

#define RETURN_VOLUME_CORRUPTED   ENCODE_ERROR (10)

An inconsistency was detected on the file system causing the operation to fail.

Definition at line 810 of file Base.h.

◆ RETURN_VOLUME_FULL

#define RETURN_VOLUME_FULL   ENCODE_ERROR (11)

There is no more space on the file system.

Definition at line 815 of file Base.h.

◆ RETURN_WARN_BUFFER_TOO_SMALL

#define RETURN_WARN_BUFFER_TOO_SMALL   ENCODE_WARNING (4)

The resulting buffer was too small, and the data was truncated to the buffer size.

Definition at line 943 of file Base.h.

◆ RETURN_WARN_DELETE_FAILURE

#define RETURN_WARN_DELETE_FAILURE   ENCODE_WARNING (2)

The handle was closed, but the file was not deleted.

Definition at line 931 of file Base.h.

◆ RETURN_WARN_STALE_DATA

#define RETURN_WARN_STALE_DATA   ENCODE_WARNING (5)

The data has not been updated within the timeframe set by local policy for this type of data.

Definition at line 949 of file Base.h.

◆ RETURN_WARN_UNKNOWN_GLYPH

#define RETURN_WARN_UNKNOWN_GLYPH   ENCODE_WARNING (1)

The string contained one or more characters that the device could not render and were skipped.

Definition at line 926 of file Base.h.

◆ RETURN_WARN_WRITE_FAILURE

#define RETURN_WARN_WRITE_FAILURE   ENCODE_WARNING (3)

The handle was closed, but the data to the file was not flushed properly.

Definition at line 937 of file Base.h.

◆ RETURN_WRITE_PROTECTED

#define RETURN_WRITE_PROTECTED   ENCODE_ERROR (8)

The device can not be written to.

Definition at line 799 of file Base.h.

◆ SIGNATURE_16

#define SIGNATURE_16 (   A,
  B 
)    ((A) | (B << 8))

Returns a 16-bit signature built from 2 ASCII characters.

This macro returns a 16-bit value built from the two ASCII characters specified by A and B.

Parameters
AThe first ASCII character.
BThe second ASCII character.
Returns
A 16-bit value built from the two ASCII characters specified by A and B.

Definition at line 963 of file Base.h.

◆ SIGNATURE_32

#define SIGNATURE_32 (   A,
  B,
  C,
  D 
)    (SIGNATURE_16 (A, B) | (SIGNATURE_16 (C, D) << 16))

Returns a 32-bit signature built from 4 ASCII characters.

This macro returns a 32-bit value built from the four ASCII characters specified by A, B, C, and D.

Parameters
AThe first ASCII character.
BThe second ASCII character.
CThe third ASCII character.
DThe fourth ASCII character.
Returns
A 32-bit value built from the two ASCII characters specified by A, B, C and D.

Definition at line 980 of file Base.h.

◆ SIGNATURE_64

#define SIGNATURE_64 (   A,
  B,
  C,
  D,
  E,
  F,
  G,
  H 
)    (SIGNATURE_32(A, B, C, D) | ((UINT64) (SIGNATURE_32(E, F, G, H)) << 32))

Returns a 64-bit signature built from 8 ASCII characters.

This macro returns a 64-bit value built from the eight ASCII characters specified by A, B, C, D, E, F, G,and H.

Parameters
AThe first ASCII character.
BThe second ASCII character.
CThe third ASCII character.
DThe fourth ASCII character.
EThe fifth ASCII character.
FThe sixth ASCII character.
GThe seventh ASCII character.
HThe eighth ASCII character.
Returns
A 64-bit value built from the two ASCII characters specified by A, B, C, D, E, F, G and H.

Definition at line 1001 of file Base.h.

◆ SIZE_128GB

#define SIZE_128GB   0x0000002000000000ULL

Definition at line 302 of file Base.h.

◆ SIZE_128KB

#define SIZE_128KB   0x00020000

Definition at line 282 of file Base.h.

◆ SIZE_128MB

#define SIZE_128MB   0x08000000

Definition at line 292 of file Base.h.

◆ SIZE_128PB

#define SIZE_128PB   0x0200000000000000ULL

Definition at line 322 of file Base.h.

◆ SIZE_128TB

#define SIZE_128TB   0x0000800000000000ULL

Definition at line 312 of file Base.h.

◆ SIZE_16GB

#define SIZE_16GB   0x0000000400000000ULL

Definition at line 299 of file Base.h.

◆ SIZE_16KB

#define SIZE_16KB   0x00004000

Definition at line 279 of file Base.h.

◆ SIZE_16MB

#define SIZE_16MB   0x01000000

Definition at line 289 of file Base.h.

◆ SIZE_16PB

#define SIZE_16PB   0x0040000000000000ULL

Definition at line 319 of file Base.h.

◆ SIZE_16TB

#define SIZE_16TB   0x0000100000000000ULL

Definition at line 309 of file Base.h.

◆ SIZE_1EB

#define SIZE_1EB   0x1000000000000000ULL

Definition at line 325 of file Base.h.

◆ SIZE_1GB

#define SIZE_1GB   0x40000000

Definition at line 295 of file Base.h.

◆ SIZE_1KB

#define SIZE_1KB   0x00000400

Definition at line 275 of file Base.h.

◆ SIZE_1MB

#define SIZE_1MB   0x00100000

Definition at line 285 of file Base.h.

◆ SIZE_1PB

#define SIZE_1PB   0x0004000000000000ULL

Definition at line 315 of file Base.h.

◆ SIZE_1TB

#define SIZE_1TB   0x0000010000000000ULL

Definition at line 305 of file Base.h.

◆ SIZE_256GB

#define SIZE_256GB   0x0000004000000000ULL

Definition at line 303 of file Base.h.

◆ SIZE_256KB

#define SIZE_256KB   0x00040000

Definition at line 283 of file Base.h.

◆ SIZE_256MB

#define SIZE_256MB   0x10000000

Definition at line 293 of file Base.h.

◆ SIZE_256PB

#define SIZE_256PB   0x0400000000000000ULL

Definition at line 323 of file Base.h.

◆ SIZE_256TB

#define SIZE_256TB   0x0001000000000000ULL

Definition at line 313 of file Base.h.

◆ SIZE_2EB

#define SIZE_2EB   0x2000000000000000ULL

Definition at line 326 of file Base.h.

◆ SIZE_2GB

#define SIZE_2GB   0x80000000

Definition at line 296 of file Base.h.

◆ SIZE_2KB

#define SIZE_2KB   0x00000800

Definition at line 276 of file Base.h.

◆ SIZE_2MB

#define SIZE_2MB   0x00200000

Definition at line 286 of file Base.h.

◆ SIZE_2PB

#define SIZE_2PB   0x0008000000000000ULL

Definition at line 316 of file Base.h.

◆ SIZE_2TB

#define SIZE_2TB   0x0000020000000000ULL

Definition at line 306 of file Base.h.

◆ SIZE_32GB

#define SIZE_32GB   0x0000000800000000ULL

Definition at line 300 of file Base.h.

◆ SIZE_32KB

#define SIZE_32KB   0x00008000

Definition at line 280 of file Base.h.

◆ SIZE_32MB

#define SIZE_32MB   0x02000000

Definition at line 290 of file Base.h.

◆ SIZE_32PB

#define SIZE_32PB   0x0080000000000000ULL

Definition at line 320 of file Base.h.

◆ SIZE_32TB

#define SIZE_32TB   0x0000200000000000ULL

Definition at line 310 of file Base.h.

◆ SIZE_4EB

#define SIZE_4EB   0x4000000000000000ULL

Definition at line 327 of file Base.h.

◆ SIZE_4GB

#define SIZE_4GB   0x0000000100000000ULL

Definition at line 297 of file Base.h.

◆ SIZE_4KB

#define SIZE_4KB   0x00001000

Definition at line 277 of file Base.h.

◆ SIZE_4MB

#define SIZE_4MB   0x00400000

Definition at line 287 of file Base.h.

◆ SIZE_4PB

#define SIZE_4PB   0x0010000000000000ULL

Definition at line 317 of file Base.h.

◆ SIZE_4TB

#define SIZE_4TB   0x0000040000000000ULL

Definition at line 307 of file Base.h.

◆ SIZE_512GB

#define SIZE_512GB   0x0000008000000000ULL

Definition at line 304 of file Base.h.

◆ SIZE_512KB

#define SIZE_512KB   0x00080000

Definition at line 284 of file Base.h.

◆ SIZE_512MB

#define SIZE_512MB   0x20000000

Definition at line 294 of file Base.h.

◆ SIZE_512PB

#define SIZE_512PB   0x0800000000000000ULL

Definition at line 324 of file Base.h.

◆ SIZE_512TB

#define SIZE_512TB   0x0002000000000000ULL

Definition at line 314 of file Base.h.

◆ SIZE_64GB

#define SIZE_64GB   0x0000001000000000ULL

Definition at line 301 of file Base.h.

◆ SIZE_64KB

#define SIZE_64KB   0x00010000

Definition at line 281 of file Base.h.

◆ SIZE_64MB

#define SIZE_64MB   0x04000000

Definition at line 291 of file Base.h.

◆ SIZE_64PB

#define SIZE_64PB   0x0100000000000000ULL

Definition at line 321 of file Base.h.

◆ SIZE_64TB

#define SIZE_64TB   0x0000400000000000ULL

Definition at line 311 of file Base.h.

◆ SIZE_8EB

#define SIZE_8EB   0x8000000000000000ULL

Definition at line 328 of file Base.h.

◆ SIZE_8GB

#define SIZE_8GB   0x0000000200000000ULL

Definition at line 298 of file Base.h.

◆ SIZE_8KB

#define SIZE_8KB   0x00002000

Definition at line 278 of file Base.h.

◆ SIZE_8MB

#define SIZE_8MB   0x00800000

Definition at line 288 of file Base.h.

◆ SIZE_8PB

#define SIZE_8PB   0x0020000000000000ULL

Definition at line 318 of file Base.h.

◆ SIZE_8TB

#define SIZE_8TB   0x0000080000000000ULL

Definition at line 308 of file Base.h.

◆ VA_ARG

#define VA_ARG (   Marker,
  TYPE 
)    (*(TYPE *) ((Marker += _INT_SIZE_OF (TYPE)) - _INT_SIZE_OF (TYPE)))

Returns an argument of a specified type from a variable argument list and updates the pointer to the variable argument list to point to the next argument.

This function returns an argument of the type specified by TYPE from the beginning of the variable argument list specified by Marker. Marker is then updated to point to the next argument in the variable argument list. The method for computing the pointer to the next argument in the argument list is CPU-specific following the EFIAPI ABI.

Parameters
MarkerVA_LIST used to traverse the list of arguments.
TYPEThe type of argument to retrieve from the beginning of the variable argument list.
Returns
An argument of the type specified by TYPE.

Definition at line 520 of file Base.h.

◆ VA_COPY

#define VA_COPY (   Dest,
  Start 
)    ((void)((Dest) = (Start)))

Initializes a VA_LIST as a copy of an existing VA_LIST.

This macro initializes Dest as a copy of Start, as if the VA_START macro had been applied to Dest followed by the same sequence of uses of the VA_ARG macro as had previously been used to reach the present state of Start.

Parameters
DestVA_LIST used to traverse the list of arguments.
StartVA_LIST used to traverse the list of arguments.

Definition at line 545 of file Base.h.

◆ VA_END

#define VA_END (   Marker)    (Marker = (VA_LIST) 0)

Terminates the use of a variable argument list.

This function initializes Marker so it can no longer be used with VA_ARG(). After this macro is used, the only way to access the variable argument list is by using VA_START() again.

Parameters
MarkerVA_LIST used to traverse the list of arguments.

Definition at line 532 of file Base.h.

◆ VA_START

#define VA_START (   Marker,
  Parameter 
)    (Marker = (VA_LIST) ((UINTN) & (Parameter) + _INT_SIZE_OF (Parameter)))

Retrieves a pointer to the beginning of a variable argument list, based on the name of the parameter that immediately precedes the variable argument list.

This function initializes Marker to point to the beginning of the variable argument list that immediately follows Parameter. The method for computing the pointer to the next argument in the argument list is CPU-specific following the EFIAPI ABI.

Parameters
MarkerThe VA_LIST used to traverse the list of arguments.
ParameterThe name of the parameter that immediately precedes the variable argument list.
Returns
A pointer to the beginning of a variable argument list.

Definition at line 502 of file Base.h.

◆ VERIFY_SIZE_OF

#define VERIFY_SIZE_OF (   TYPE,
  Size 
)    extern UINT8 _VerifySizeof##TYPE[(sizeof(TYPE) == (Size)) / (sizeof(TYPE) == (Size))]

Verifies the storage size of a given data type.

This macro generates a divide by zero error or a zero size array declaration in the preprocessor if the size is incorrect. These are declared as "extern" so the space for these arrays will not be in the modules.

Parameters
TYPEThe date type to determine the size of.
SizeThe expected size for the TYPE.

Definition at line 41 of file Base.h.

Typedef Documentation

◆ BASE_LIST

typedef UINTN* BASE_LIST

Pointer to the start of a variable argument list stored in a memory buffer. Same as UINT8 *.

Definition at line 552 of file Base.h.

◆ RETURN_STATUS

Definition at line 716 of file Base.h.

◆ VA_LIST

typedef CHAR8* VA_LIST

Variable used to traverse the list of arguments. This type can vary by implementation and could be an array or structure.

Definition at line 484 of file Base.h.

Function Documentation

◆ VERIFY_SIZE_OF() [1/8]

VERIFY_SIZE_OF ( BOOLEAN  ,
 
)

◆ VERIFY_SIZE_OF() [2/8]

VERIFY_SIZE_OF ( INT8  ,
 
)

◆ VERIFY_SIZE_OF() [3/8]

VERIFY_SIZE_OF ( INT16  ,
 
)

◆ VERIFY_SIZE_OF() [4/8]

VERIFY_SIZE_OF ( UINT16  ,
 
)

◆ VERIFY_SIZE_OF() [5/8]

VERIFY_SIZE_OF ( INT32  ,
 
)

◆ VERIFY_SIZE_OF() [6/8]

VERIFY_SIZE_OF ( UINT32  ,
 
)

◆ VERIFY_SIZE_OF() [7/8]

VERIFY_SIZE_OF ( INT64  ,
 
)

◆ VERIFY_SIZE_OF() [8/8]

VERIFY_SIZE_OF ( UINT64  ,
 
)