/** @file\r
Processor or Compiler specific defines and types for AArch64.\r
\r
- Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>\r
\r
//\r
// Make sure we are using the correct packing rules per EFI specification\r
//\r
-#ifndef __GNUC__\r
+#if !defined(__GNUC__) && !defined(__ASSEMBLER__)\r
#pragma pack()\r
#endif\r
\r
#define MAX_INTN ((INTN)0x7FFFFFFFFFFFFFFFULL)\r
#define MAX_UINTN ((UINTN)0xFFFFFFFFFFFFFFFFULL)\r
\r
+///\r
+/// Minimum legal AArch64 INTN value.\r
+///\r
+#define MIN_INTN (((INTN)-9223372036854775807LL) - 1)\r
+\r
///\r
/// The stack alignment required for AARCH64\r
///\r
#define CPU_STACK_ALIGNMENT 16\r
\r
+///\r
+/// Page allocation granularity for AARCH64\r
+///\r
+#define DEFAULT_PAGE_ALLOCATION_GRANULARITY (0x1000)\r
+#define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x10000)\r
+\r
//\r
// Modifier to ensure that all protocol member functions and EFI intrinsics\r
// use the correct C calling convention. All protocol member functions and\r