///\r
#define GLOBAL_REMOVE_IF_UNREFERENCED\r
\r
+/**\r
+ Return the pointer to the first instruction of a function given a function pointer.\r
+ On EBC architectures, these two pointer values are the same, \r
+ so the implementation of this macro is very simple.\r
+ \r
+ @param p A pointer to a function\r
+\r
+ @return The pointer to the first instruction of a function given a function pointer.\r
+**/\r
#define FUNCTION_ENTRY_POINT(p) (p)\r
\r
#endif \r
}\r
\r
#define ACPI_10_TABLE_GUID EFI_ACPI_10_TABLE_GUID\r
-///\r
-/// ACPI 2.0 or newer tables should use EFI_ACPI_TABLE_GUID.\r
-///\r
+//\r
+// ACPI 2.0 or newer tables should use EFI_ACPI_TABLE_GUID.\r
+//\r
#define EFI_ACPI_20_TABLE_GUID EFI_ACPI_TABLE_GUID\r
\r
extern EFI_GUID gEfiAcpiTableGuid;\r
#endif \r
#endif\r
\r
+/**\r
+ Return the pointer to the first instruction of a function given a function pointer.\r
+ On IA32 CPU architectures, these two pointer values are the same, \r
+ so the implementation of this macro is very simple.\r
+ \r
+ @param p A pointer to a function\r
+\r
+ @return The pointer to the first instruction of a function given a function pointer.\r
+**/\r
#define FUNCTION_ENTRY_POINT(p) (p)\r
\r
#endif\r
UINT32 Size;\r
} EFI_IMAGE_DATA_DIRECTORY;\r
\r
-#define EFI_IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107\r
-\r
//\r
// Directory Entries\r
//\r
\r
#define EFI_IMAGE_SCN_LNK_OTHER BIT8 ///< 0x00000100 ///< Reserved.\r
#define EFI_IMAGE_SCN_LNK_INFO BIT9 ///< 0x00000200 ///< Section contains comments or some other type of information.\r
-#define EFI_IMAGE_SCN_LNK_REMOVE BIT10 ///< 0x00000800 ///< Section contents will not become part of image.\r
+#define EFI_IMAGE_SCN_LNK_REMOVE BIT11 ///< 0x00000800 ///< Section contents will not become part of image.\r
#define EFI_IMAGE_SCN_LNK_COMDAT BIT12 ///< 0x00001000\r
\r
#define EFI_IMAGE_SCN_ALIGN_1BYTES BIT20 ///< 0x00100000\r
//\r
// Based relocation types.\r
//\r
-#define EFI_IMAGE_REL_BASED_ABSOLUTE 0\r
-#define EFI_IMAGE_REL_BASED_HIGH 1\r
-#define EFI_IMAGE_REL_BASED_LOW 2\r
-#define EFI_IMAGE_REL_BASED_HIGHLOW 3\r
-#define EFI_IMAGE_REL_BASED_HIGHADJ 4\r
-#define EFI_IMAGE_REL_BASED_MIPS_JMPADDR 5\r
-#define EFI_IMAGE_REL_BASED_IA64_IMM64 9\r
-#define IMAGE_REL_BASED_MIPS_JMPADDR16 9\r
-#define EFI_IMAGE_REL_BASED_DIR64 10\r
+#define EFI_IMAGE_REL_BASED_ABSOLUTE 0\r
+#define EFI_IMAGE_REL_BASED_HIGH 1\r
+#define EFI_IMAGE_REL_BASED_LOW 2\r
+#define EFI_IMAGE_REL_BASED_HIGHLOW 3\r
+#define EFI_IMAGE_REL_BASED_HIGHADJ 4\r
+#define EFI_IMAGE_REL_BASED_MIPS_JMPADDR 5\r
+#define EFI_IMAGE_REL_BASED_IA64_IMM64 9\r
+#define EFI_IMAGE_REL_BASED_MIPS_JMPADDR16 9\r
+#define EFI_IMAGE_REL_BASED_DIR64 10\r
\r
///\r
/// Line number format.\r
/**\r
Prototype of SAL procedures.\r
\r
- @param Arg0 Functional identifier.\r
+ @param FunctionId Functional identifier.\r
The upper 32 bits are ignored and only the lower 32 bits\r
are used. The following functional identifiers are defined:\r
0x01XXXXXX - Architected SAL functional group.\r
SAL_RETURN_REGS\r
(EFIAPI *SAL_PROC) (\r
IN UINT64 FunctionId,\r
+ IN UINT64 Arg1,\r
IN UINT64 Arg2,\r
IN UINT64 Arg3,\r
IN UINT64 Arg4,\r
IN UINT64 Arg5,\r
IN UINT64 Arg6,\r
- IN UINT64 Arg7,\r
- IN UINT64 Arg8\r
+ IN UINT64 Arg7\r
);\r
\r
//\r
// defined here. Please refer to SCSI standard for full value definition.\r
//\r
#define EFI_SCSI_ASC_NOT_READY (0x04)\r
-#define EFI_SCSI_ASCQ_IN_PROGRESS (0x01)\r
+#define EFI_SCSI_ASCQ_IN_PROGRESS (0x01)\r
\r
#define EFI_SCSI_ASC_MEDIA_ERR1 (0x10)\r
#define EFI_SCSI_ASC_MEDIA_ERR2 (0x11)\r
//\r
// Part 2, section 13.1.1 TPM_TRANSPORT_ATTRIBUTES Definitions\r
//\r
-#define TPM_TRANSPORT_ENCRYPT ((UINT32)0x00000001)\r
-#define TPM_TRANSPORT_LOG ((UINT32)0x00000002)\r
-#define TPM_TRANSPORT_EXCLUSIVE ((UINT32)0x00000004)\r
+#define TPM_TRANSPORT_ENCRYPT ((UINT32)BIT0)\r
+#define TPM_TRANSPORT_LOG ((UINT32)BIT1)\r
+#define TPM_TRANSPORT_EXCLUSIVE ((UINT32)BIT2)\r
\r
///\r
/// Part 2, section 13.2 TPM_TRANSPORT_INTERNAL\r
UINT64 r11;\r
} PAL_CALL_RETURN;\r
\r
+/**\r
+ Return the pointer to the first instruction of a function given a function pointer.\r
+ For Itanium CPUs, all function calls are made through a PLABEL, so a pointer to a function \r
+ is actually a pointer to a PLABEL. The pointer to the first instruction of the function \r
+ is contained within the PLABEL. This macro may be used to retrieve a pointer to the first \r
+ instruction of a function independent of the CPU architecture being used. This is very \r
+ useful when printing function addresses through DEBUG() macros.\r
+ \r
+ @param p A pointer to a function\r
+\r
+ @return The pointer to the first instruction of a function given a function pointer.\r
+**/\r
#define FUNCTION_ENTRY_POINT(p) (((EFI_PLABEL *)(p))->EntryPoint)\r
\r
#endif\r
/** @file\r
\r
- Root include file for Mde Package DXE_CORE, DXE, SMM, SAL type modules.\r
+ Root include file for Mde Package DXE_CORE, DXE, RUNTIME, SMM, SAL type modules.\r
\r
Copyright (c) 2006 - 2007, Intel Corporation\r
All rights reserved. This program and the accompanying materials\r
#endif \r
#endif\r
\r
+/**\r
+ Return the pointer to the first instruction of a function given a function pointer.\r
+ On x64 CPU architectures, these two pointer values are the same, \r
+ so the implementation of this macro is very simple.\r
+ \r
+ @param p A pointer to a function\r
+\r
+ @return The pointer to the first instruction of a function given a function pointer.\r
+**/\r
#define FUNCTION_ENTRY_POINT(p) (p)\r
\r
#endif\r