From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.groups.io with SMTP id smtpd.web10.7938.1681376010796108497 for ; Thu, 13 Apr 2023 01:53:31 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=dySZk9rT; spf=pass (domain: redhat.com, ip: 170.10.133.124, mailfrom: kraxel@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1681376009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=M0NUKxn3pwfwACgQDO9kgxOcfp2yBzjBJTJ+OYpyBdM=; b=dySZk9rTub7MlNeGy6iWEikhP0eOGTTmx2m7P1oBAIyHOTKRnzhVzePHCCEW8EWkgL3sZc j3EvAoFPWcaHu3faAm2lnT+EQ9GxNs3lK2Sry23dPPv/QnogrAhj4ElpBICN4oz+ZIb0de 53uc3JT3qn+EUv64WrWJAaV+U4WJ3EE= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-594-Kh3hBjSLPiO_k-RO2wvDKg-1; Thu, 13 Apr 2023 04:53:19 -0400 X-MC-Unique: Kh3hBjSLPiO_k-RO2wvDKg-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A1E712817234; Thu, 13 Apr 2023 08:53:18 +0000 (UTC) Received: from sirius.home.kraxel.org (unknown [10.39.192.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0FBFD492B00; Thu, 13 Apr 2023 08:53:18 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id C747B1800600; Thu, 13 Apr 2023 10:53:13 +0200 (CEST) From: "Gerd Hoffmann" To: devel@edk2.groups.io Cc: Sunil V L , Zhiguang Liu , Rebecca Cran , Chao Li , Michael D Kinney , Pawel Polawski , Baoqi Zhang , Leif Lindholm , Dongyan Qian , Oliver Steffen , Bob Feng , Liming Gao , Ard Biesheuvel , =?UTF-8?q?Marvin=20H=C3=A4user?= , Daniel Schaefer , Yuwei Chen , Gerd Hoffmann Subject: [PATCH v3 04/10] BaseTools: remove duplicate includes: /ProcessorBind.h Date: Thu, 13 Apr 2023 10:53:07 +0200 Message-Id: <20230413085313.273483-5-kraxel@redhat.com> In-Reply-To: <20230413085313.273483-1-kraxel@redhat.com> References: <20230413085313.273483-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true Use the MdePkg version instead of maintaining a copy in BaseTools. Signed-off-by: Gerd Hoffmann Reviewed-by: Chao Li --- .../Source/C/Include/AArch64/ProcessorBind.h | 148 -------------- .../Source/C/Include/Arm/ProcessorBind.h | 147 -------------- .../Source/C/Include/Ia32/ProcessorBind.h | 155 --------------- .../C/Include/LoongArch64/ProcessorBind.h | 80 -------- .../Source/C/Include/RiscV64/ProcessorBind.h | 85 -------- .../Source/C/Include/X64/ProcessorBind.h | 183 ------------------ BaseTools/Source/C/Common/Decompress.c | 1 + BaseTools/Source/C/Makefiles/header.makefile | 14 +- BaseTools/Source/C/Makefiles/ms.common | 12 +- 9 files changed, 19 insertions(+), 806 deletions(-) delete mode 100644 BaseTools/Source/C/Include/AArch64/ProcessorBind.h delete mode 100644 BaseTools/Source/C/Include/Arm/ProcessorBind.h delete mode 100644 BaseTools/Source/C/Include/Ia32/ProcessorBind.h delete mode 100644 BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h delete mode 100644 BaseTools/Source/C/Include/RiscV64/ProcessorBind.h delete mode 100644 BaseTools/Source/C/Include/X64/ProcessorBind.h diff --git a/BaseTools/Source/C/Include/AArch64/ProcessorBind.h b/BaseTools/Source/C/Include/AArch64/ProcessorBind.h deleted file mode 100644 index dfa725b2e363..000000000000 --- a/BaseTools/Source/C/Include/AArch64/ProcessorBind.h +++ /dev/null @@ -1,148 +0,0 @@ -/** @file - Processor or Compiler specific defines and types for AArch64. - - Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
- Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
- Portions copyright (c) 2013, ARM Ltd. All rights reserved.
- - SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#ifndef __PROCESSOR_BIND_H__ -#define __PROCESSOR_BIND_H__ - -/// -/// Define the processor type so other code can make processor based choices -/// -#define MDE_CPU_AARCH64 - -// -// Make sure we are using the correct packing rules per EFI specification -// -#ifndef __GNUC__ -#pragma pack() -#endif - -#if _MSC_EXTENSIONS - // - // use Microsoft* C compiler dependent integer width types - // - typedef unsigned __int64 UINT64; - typedef __int64 INT64; - typedef unsigned __int32 UINT32; - typedef __int32 INT32; - typedef unsigned short UINT16; - typedef unsigned short CHAR16; - typedef short INT16; - typedef unsigned char BOOLEAN; - typedef unsigned char UINT8; - typedef char CHAR8; - typedef signed char INT8; -#else - // - // Use ANSI C 2000 stdint.h integer width declarations - // - #include - typedef uint8_t BOOLEAN; - typedef int8_t INT8; - typedef uint8_t UINT8; - typedef int16_t INT16; - typedef uint16_t UINT16; - typedef int32_t INT32; - typedef uint32_t UINT32; - typedef int64_t INT64; - typedef uint64_t UINT64; - typedef char CHAR8; - typedef uint16_t CHAR16; - -#endif - -/// -/// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions, -/// 8 bytes on supported 64-bit processor instructions) -/// -typedef UINT64 UINTN; - -/// -/// Signed value of native width. (4 bytes on supported 32-bit processor instructions, -/// 8 bytes on supported 64-bit processor instructions) -/// -typedef INT64 INTN; - -// -// Processor specific defines -// - -/// -/// A value of native width with the highest bit set. -/// -#define MAX_BIT 0x8000000000000000 - -/// -/// A value of native width with the two highest bits set. -/// -#define MAX_2_BITS 0xC000000000000000 - -/// -/// The stack alignment required for AARCH64 -/// -#define CPU_STACK_ALIGNMENT 16 - -// -// Modifier to ensure that all protocol member functions and EFI intrinsics -// use the correct C calling convention. All protocol member functions and -// EFI intrinsics are required to modify their member functions with EFIAPI. -// -#define EFIAPI - -#if defined(__GNUC__) - /// - /// For GNU assembly code, .global or .globl can declare global symbols. - /// Define this macro to unify the usage. - /// - #define ASM_GLOBAL .globl - - #if !defined(__APPLE__) - /// - /// ARM EABI defines that the linker should not manipulate call relocations - /// (do bl/blx conversion) unless the target symbol has function type. - /// CodeSourcery 2010.09 started requiring the .type to function properly - /// - #define INTERWORK_FUNC(func__) .type ASM_PFX(func__), %function - - #define GCC_ASM_EXPORT(func__) \ - .global _CONCATENATE (__USER_LABEL_PREFIX__, func__) ;\ - .type ASM_PFX(func__), %function - - #define GCC_ASM_IMPORT(func__) \ - .extern _CONCATENATE (__USER_LABEL_PREFIX__, func__) - - #else - // - // .type not supported by Apple Xcode tools - // - #define INTERWORK_FUNC(func__) - - #define GCC_ASM_EXPORT(func__) \ - .globl _CONCATENATE (__USER_LABEL_PREFIX__, func__) \ - - #define GCC_ASM_IMPORT(name) - - #endif -#endif - -/** - Return the pointer to the first instruction of a function given a function pointer. - On ARM CPU architectures, these two pointer values are the same, - so the implementation of this macro is very simple. - - @param FunctionPointer A pointer to a function. - - @return The pointer to the first instruction of a function given a function pointer. - -**/ -#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer) - -#endif - diff --git a/BaseTools/Source/C/Include/Arm/ProcessorBind.h b/BaseTools/Source/C/Include/Arm/ProcessorBind.h deleted file mode 100644 index 8fe4d5f1626a..000000000000 --- a/BaseTools/Source/C/Include/Arm/ProcessorBind.h +++ /dev/null @@ -1,147 +0,0 @@ -/** @file - Processor or Compiler specific defines and types for ARM. - - Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
- Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
- SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#ifndef __PROCESSOR_BIND_H__ -#define __PROCESSOR_BIND_H__ - -/// -/// Define the processor type so other code can make processor based choices -/// -#define MDE_CPU_ARM - -// -// Make sure we are using the correct packing rules per EFI specification -// -#ifndef __GNUC__ -#pragma pack() -#endif - -#if _MSC_EXTENSIONS - // - // use Microsoft* C compiler dependent integer width types - // - typedef unsigned __int64 UINT64; - typedef __int64 INT64; - typedef unsigned __int32 UINT32; - typedef __int32 INT32; - typedef unsigned short UINT16; - typedef unsigned short CHAR16; - typedef short INT16; - typedef unsigned char BOOLEAN; - typedef unsigned char UINT8; - typedef char CHAR8; - typedef signed char INT8; -#else - // - // Assume standard ARM alignment. - // - typedef unsigned long long UINT64; - typedef long long INT64; - typedef unsigned int UINT32; - typedef int INT32; - typedef unsigned short UINT16; - typedef unsigned short CHAR16; - typedef short INT16; - typedef unsigned char BOOLEAN; - typedef unsigned char UINT8; - typedef char CHAR8; - typedef signed char INT8; - - #define UINT8_MAX 0xff -#endif - -/// -/// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions, -/// 8 bytes on supported 64-bit processor instructions) -/// -typedef UINT32 UINTN; - -/// -/// Signed value of native width. (4 bytes on supported 32-bit processor instructions, -/// 8 bytes on supported 64-bit processor instructions) -/// -typedef INT32 INTN; - -// -// Processor specific defines -// - -/// -/// A value of native width with the highest bit set. -/// -#define MAX_BIT 0x80000000 - -/// -/// A value of native width with the two highest bits set. -/// -#define MAX_2_BITS 0xC0000000 - -/// -/// The stack alignment required for ARM -/// -#define CPU_STACK_ALIGNMENT sizeof(UINT64) - -// -// Modifier to ensure that all protocol member functions and EFI intrinsics -// use the correct C calling convention. All protocol member functions and -// EFI intrinsics are required to modify their member functions with EFIAPI. -// -#define EFIAPI - -#if defined(__GNUC__) - /// - /// For GNU assembly code, .global or .globl can declare global symbols. - /// Define this macro to unify the usage. - /// - #define ASM_GLOBAL .globl - - #if !defined(__APPLE__) - /// - /// ARM EABI defines that the linker should not manipulate call relocations - /// (do bl/blx conversion) unless the target symbol has function type. - /// CodeSourcery 2010.09 started requiring the .type to function properly - /// - #define INTERWORK_FUNC(func__) .type ASM_PFX(func__), %function - - #define GCC_ASM_EXPORT(func__) \ - .global _CONCATENATE (__USER_LABEL_PREFIX__, func__) ;\ - .type ASM_PFX(func__), %function - - #define GCC_ASM_IMPORT(func__) \ - .extern _CONCATENATE (__USER_LABEL_PREFIX__, func__) - - #else - // - // .type not supported by Apple Xcode tools - // - #define INTERWORK_FUNC(func__) - - #define GCC_ASM_EXPORT(func__) \ - .globl _CONCATENATE (__USER_LABEL_PREFIX__, func__) \ - - #define GCC_ASM_IMPORT(name) - - #endif -#endif - -/** - Return the pointer to the first instruction of a function given a function pointer. - On ARM CPU architectures, these two pointer values are the same, - so the implementation of this macro is very simple. - - @param FunctionPointer A pointer to a function. - - @return The pointer to the first instruction of a function given a function pointer. - -**/ -#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer) - -#endif - - diff --git a/BaseTools/Source/C/Include/Ia32/ProcessorBind.h b/BaseTools/Source/C/Include/Ia32/ProcessorBind.h deleted file mode 100644 index d1b77ad04a8b..000000000000 --- a/BaseTools/Source/C/Include/Ia32/ProcessorBind.h +++ /dev/null @@ -1,155 +0,0 @@ -/** @file - Processor or Compiler specific defines and types for x64. - - Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
- - SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#ifndef __PROCESSOR_BIND_H__ -#define __PROCESSOR_BIND_H__ - -// -// Define the processor type so other code can make processor based choices -// -#define MDE_CPU_IA32 - -// -// Make sure we are useing the correct packing rules per EFI specification -// -#ifndef __GNUC__ -#pragma pack() -#endif - -#if _MSC_EXTENSIONS - -// -// Disable warning that make it impossible to compile at /W4 -// This only works for Microsoft* tools -// - -// -// Disabling bitfield type checking warnings. -// -#pragma warning ( disable : 4214 ) - -// -// Disabling the unreferenced formal parameter warnings. -// -#pragma warning ( disable : 4100 ) - -// -// Disable slightly different base types warning as CHAR8 * can not be set -// to a constant string. -// -#pragma warning ( disable : 4057 ) - -// -// ASSERT(FALSE) or while (TRUE) are legal constructs so suppress this warning -// -#pragma warning ( disable : 4127 ) - - -#endif - - -#if !defined(__GNUC__) && (__STDC_VERSION__ < 199901L) - // - // No ANSI C 2000 stdint.h integer width declarations, so define equivalents - // - - #if _MSC_EXTENSIONS - - // - // use Microsoft* C compiler dependent integer width types - // - typedef unsigned __int64 UINT64; - typedef __int64 INT64; - typedef unsigned __int32 UINT32; - typedef __int32 INT32; - typedef unsigned short UINT16; - typedef unsigned short CHAR16; - typedef short INT16; - typedef unsigned char BOOLEAN; - typedef unsigned char UINT8; - typedef char CHAR8; - typedef char INT8; - #else - - // - // Assume standard IA-32 alignment. - // BugBug: Need to check portability of long long - // - typedef unsigned long long UINT64; - typedef long long INT64; - typedef unsigned int UINT32; - typedef int INT32; - typedef unsigned short UINT16; - typedef unsigned short CHAR16; - typedef short INT16; - typedef unsigned char BOOLEAN; - typedef unsigned char UINT8; - typedef char CHAR8; - typedef char INT8; - #endif - - #define UINT8_MAX 0xff - -#else - // - // Use ANSI C 2000 stdint.h integer width declarations - // - #include "stdint.h" - typedef uint8_t BOOLEAN; - typedef int8_t INT8; - typedef uint8_t UINT8; - typedef int16_t INT16; - typedef uint16_t UINT16; - typedef int32_t INT32; - typedef uint32_t UINT32; - typedef int64_t INT64; - typedef uint64_t UINT64; - typedef char CHAR8; - typedef uint16_t CHAR16; - -#endif - -typedef UINT32 UINTN; -typedef INT32 INTN; - - -// -// Processor specific defines -// -#define MAX_BIT 0x80000000 -#define MAX_2_BITS 0xC0000000 - -// -// Modifier to ensure that all protocol member functions and EFI intrinsics -// use the correct C calling convention. All protocol member functions and -// EFI intrinsics are required to modify their member functions with EFIAPI. -// -#if _MSC_EXTENSIONS - // - // Microsoft* compiler requires _EFIAPI usage, __cdecl is Microsoft* specific C. - // - #define EFIAPI __cdecl -#endif - -#if __GNUC__ - #define EFIAPI __attribute__((cdecl)) -#endif - -// -// The Microsoft* C compiler can removed references to unreferenced data items -// if the /OPT:REF linker option is used. We defined a macro as this is a -// a non standard extension -// -#if _MSC_EXTENSIONS - #define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany) -#else - #define GLOBAL_REMOVE_IF_UNREFERENCED -#endif - -#endif diff --git a/BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h b/BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h deleted file mode 100644 index 0267859deece..000000000000 --- a/BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h +++ /dev/null @@ -1,80 +0,0 @@ -/** @file - Processor or Compiler specific defines and types for LoongArch - - Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
- - SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ -#ifndef PROCESSOR_BIND_H_ -#define PROCESSOR_BIND_H_ - -// -// Define the processor type so other code can make processor based choices -// -#define MDE_CPU_LOONGARCH64 - -#define EFIAPI - -// -// Make sure we are using the correct packing rules per EFI specification -// -#ifndef __GNUC__ -#pragma pack() -#endif - -// -// Use ANSI C 2000 stdint.h integer width declarations -// -#include -typedef uint8_t BOOLEAN; -typedef int8_t INT8; -typedef uint8_t UINT8; -typedef int16_t INT16; -typedef uint16_t UINT16; -typedef int32_t INT32; -typedef uint32_t UINT32; -typedef int64_t INT64; -typedef uint64_t UINT64; -typedef char CHAR8; -typedef uint16_t CHAR16; - -// -// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions, -// 8 bytes on supported 64-bit processor instructions) -// -typedef UINT64 UINTN; - -// -// Signed value of native width. (4 bytes on supported 32-bit processor instructions, -// 8 bytes on supported 64-bit processor instructions) -// -typedef INT64 INTN; - -// -// Processor specific defines -// - -// -// A value of native width with the highest bit set. -// -#define MAX_BIT 0x8000000000000000ULL -// -// A value of native width with the two highest bits set. -// -#define MAX_2_BITS 0xC000000000000000ULL - -#if defined (__GNUC__) -// -// For GNU assembly code, .global or .globl can declare global symbols. -// Define this macro to unify the usage. -// -#define ASM_GLOBAL .globl -#endif - -// -// The stack alignment required for LoongArch -// -#define CPU_STACK_ALIGNMENT 16 - -#endif diff --git a/BaseTools/Source/C/Include/RiscV64/ProcessorBind.h b/BaseTools/Source/C/Include/RiscV64/ProcessorBind.h deleted file mode 100644 index 1612d6ea7f16..000000000000 --- a/BaseTools/Source/C/Include/RiscV64/ProcessorBind.h +++ /dev/null @@ -1,85 +0,0 @@ -/** @file - Processor or Compiler specific defines and types for RISC-V. - - SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#ifndef __PROCESSOR_BIND_H__ -#define __PROCESSOR_BIND_H__ - -// -// Define the processor type so other code can make processor based choices -// -#define MDE_CPU_RISCV64 - -// -// Make sure we are using the correct packing rules per EFI specification -// -#ifndef __GNUC__ -#pragma pack() -#endif - -// -// Use ANSI C 2000 stdint.h integer width declarations -// -#include -typedef uint8_t BOOLEAN; -typedef int8_t INT8; -typedef uint8_t UINT8; -typedef int16_t INT16; -typedef uint16_t UINT16; -typedef int32_t INT32; -typedef uint32_t UINT32; -typedef int64_t INT64; -typedef uint64_t UINT64; -typedef char CHAR8; -typedef uint16_t CHAR16; - -// -// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions, -// 8 bytes on supported 64-bit processor instructions) -// -typedef UINT64 UINTN; - -// -// Signed value of native width. (4 bytes on supported 32-bit processor instructions, -// 8 bytes on supported 64-bit processor instructions) -// -typedef INT64 INTN; - -// -// Processor specific defines -// - -// -// A value of native width with the highest bit set. -// -#define MAX_BIT 0x8000000000000000 - -// -// A value of native width with the two highest bits set. -// -#define MAX_2_BITS 0xC000000000000000 - -// -// The stack alignment required for RISC-V -// -#define CPU_STACK_ALIGNMENT 16 - -// -// Modifier to ensure that all protocol member functions and EFI intrinsics -// use the correct C calling convention. All protocol member functions and -// EFI intrinsics are required to modify their member functions with EFIAPI. -// -#define EFIAPI - -#if defined(__GNUC__) - // - // For GNU assembly code, .global or .globl can declare global symbols. - // Define this macro to unify the usage. - // - #define ASM_GLOBAL .globl -#endif - -#endif diff --git a/BaseTools/Source/C/Include/X64/ProcessorBind.h b/BaseTools/Source/C/Include/X64/ProcessorBind.h deleted file mode 100644 index fce179fe7e3a..000000000000 --- a/BaseTools/Source/C/Include/X64/ProcessorBind.h +++ /dev/null @@ -1,183 +0,0 @@ -/** @file - Processor or Compiler specific defines and types x64 (Intel(r) EM64T, AMD64). - - Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
- - SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#ifndef __PROCESSOR_BIND_H__ -#define __PROCESSOR_BIND_H__ - -// -// Define the processor type so other code can make processor based choices -// -#define MDE_CPU_X64 - - -// -// Make sure we are useing the correct packing rules per EFI specification -// -#ifndef __GNUC__ -#pragma pack() -#endif - - -#if _MSC_EXTENSIONS - -// -// Disable warning that make it impossible to compile at /W4 -// This only works for Microsoft* tools -// - -// -// Disabling bitfield type checking warnings. -// -#pragma warning ( disable : 4214 ) - -// -// Disabling the unreferenced formal parameter warnings. -// -#pragma warning ( disable : 4100 ) - -// -// Disable slightly different base types warning as CHAR8 * can not be set -// to a constant string. -// -#pragma warning ( disable : 4057 ) - -// -// ASSERT(FALSE) or while (TRUE) are legal constructes so supress this warning -// -#pragma warning ( disable : 4127 ) - - -#endif - - -#if !defined(__GNUC__) && (__STDC_VERSION__ < 199901L) - // - // No ANSI C 2000 stdint.h integer width declarations, so define equivalents - // - - #if _MSC_EXTENSIONS - - - // - // use Microsoft C compiler dependent integer width types - // - typedef unsigned __int64 UINT64; - typedef __int64 INT64; - typedef unsigned __int32 UINT32; - typedef __int32 INT32; - typedef unsigned short UINT16; - typedef unsigned short CHAR16; - typedef short INT16; - typedef unsigned char BOOLEAN; - typedef unsigned char UINT8; - typedef char CHAR8; - typedef char INT8; - #else - #ifdef _EFI_P64 - // - // P64 - is Intel Itanium(TM) speak for pointers being 64-bit and longs and ints - // are 32-bits - // - typedef unsigned long long UINT64; - typedef long long INT64; - typedef unsigned int UINT32; - typedef int INT32; - typedef unsigned short CHAR16; - typedef unsigned short UINT16; - typedef short INT16; - typedef unsigned char BOOLEAN; - typedef unsigned char UINT8; - typedef char CHAR8; - typedef char INT8; - #else - // - // Assume LP64 - longs and pointers are 64-bit. Ints are 32-bit. - // - typedef unsigned long UINT64; - typedef long INT64; - typedef unsigned int UINT32; - typedef int INT32; - typedef unsigned short UINT16; - typedef unsigned short CHAR16; - typedef short INT16; - typedef unsigned char BOOLEAN; - typedef unsigned char UINT8; - typedef char CHAR8; - typedef char INT8; - #endif - #endif - - #define UINT8_MAX 0xff - -#else - // - // Use ANSI C 2000 stdint.h integer width declarations - // - #include - typedef uint8_t BOOLEAN; - typedef int8_t INT8; - typedef uint8_t UINT8; - typedef int16_t INT16; - typedef uint16_t UINT16; - typedef int32_t INT32; - typedef uint32_t UINT32; - typedef int64_t INT64; - typedef uint64_t UINT64; - typedef char CHAR8; - typedef uint16_t CHAR16; - -#endif - -typedef UINT64 UINTN; -typedef INT64 INTN; - - -// -// Processor specific defines -// -#define MAX_BIT 0x8000000000000000ULL -#define MAX_2_BITS 0xC000000000000000ULL - -// -// Modifier to ensure that all protocol member functions and EFI intrinsics -// use the correct C calling convention. All protocol member functions and -// EFI intrinsics are required to modify their member functions with EFIAPI. -// -#if _MSC_EXTENSIONS - /// - /// Define the standard calling convention regardless of optimization level. - /// __cdecl is Microsoft* specific C extension. - /// - #define EFIAPI __cdecl -#elif __GNUC__ - /// - /// Define the standard calling convention regardless of optimization level. - /// efidecl is an extension to GCC that supports the differnece between x64 - /// GCC ABI and x64 Microsoft* ABI. EFI is closer to the Microsoft* ABI and - /// EFIAPI makes sure the right ABI is used for public interfaces. - /// eficecl is a work in progress and we do not yet have the compiler - /// - #define EFIAPI -#else - #define EFIAPI -#endif - -// -// The Microsoft* C compiler can removed references to unreferenced data items -// if the /OPT:REF linker option is used. We defined a macro as this is a -// a non standard extension -// -#if _MSC_EXTENSIONS - #define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany) -#else - #define GLOBAL_REMOVE_IF_UNREFERENCED -#endif - -#endif - diff --git a/BaseTools/Source/C/Common/Decompress.c b/BaseTools/Source/C/Common/Decompress.c index a0f54c08342b..0f2bdbffa72e 100644 --- a/BaseTools/Source/C/Common/Decompress.c +++ b/BaseTools/Source/C/Common/Decompress.c @@ -15,6 +15,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // // Decompression algorithm begins here // +#define UINT8_MAX 0xff #define BITBUFSIZ 32 #define MAXMATCH 256 #define THRESHOLD 3 diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile index 6b743fa297b0..d3b9d946b9c6 100644 --- a/BaseTools/Source/C/Makefiles/header.makefile +++ b/BaseTools/Source/C/Makefiles/header.makefile @@ -8,6 +8,8 @@ # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent +EDK2_PATH ?= $(MAKEROOT)/../../.. + ifndef HOST_ARCH # # If HOST_ARCH is not defined, then we use 'uname -m' to attempt @@ -60,22 +62,22 @@ LD = ld endif LINKER ?= $(CC) ifeq ($(HOST_ARCH), IA32) -ARCH_INCLUDE = -I $(MAKEROOT)/Include/Ia32/ +ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/Ia32/ else ifeq ($(HOST_ARCH), X64) -ARCH_INCLUDE = -I $(MAKEROOT)/Include/X64/ +ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/X64/ else ifeq ($(HOST_ARCH), ARM) -ARCH_INCLUDE = -I $(MAKEROOT)/Include/Arm/ +ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/Arm/ else ifeq ($(HOST_ARCH), AARCH64) -ARCH_INCLUDE = -I $(MAKEROOT)/Include/AArch64/ +ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/AArch64/ else ifeq ($(HOST_ARCH), RISCV64) -ARCH_INCLUDE = -I $(MAKEROOT)/Include/RiscV64/ +ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/RiscV64/ else ifeq ($(HOST_ARCH), LOONGARCH64) -ARCH_INCLUDE = -I $(MAKEROOT)/Include/LoongArch64/ +ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/LoongArch64/ else $(error Bad HOST_ARCH) diff --git a/BaseTools/Source/C/Makefiles/ms.common b/BaseTools/Source/C/Makefiles/ms.common index 6fc4c6477847..1b86fea683a3 100644 --- a/BaseTools/Source/C/Makefiles/ms.common +++ b/BaseTools/Source/C/Makefiles/ms.common @@ -17,6 +17,14 @@ HOST_ARCH = IA32 !ENDIF +!IFNDEF MAKEROOT +MAKEROOT = $(SOURCE_PATH) +!ENDIF + +!IFNDEF EDK2_PATH +EDK2_PATH = $(MAKEROOT)\..\..\.. +!ENDIF + MAKE = nmake -nologo # DOS del command doesn't support ":\\" in the file path, such as j:\\BaseTools. Convert ":\\" to ":\" @@ -31,14 +39,14 @@ SYS_BIN_PATH=$(EDK_TOOLS_PATH)\Bin SYS_LIB_PATH=$(EDK_TOOLS_PATH)\Lib !IF "$(HOST_ARCH)"=="IA32" -ARCH_INCLUDE = $(SOURCE_PATH)\Include\Ia32 +ARCH_INCLUDE = $(EDK2_PATH)\MdePkg\Include\Ia32 BIN_PATH = $(BASE_TOOLS_PATH)\Bin\Win32 LIB_PATH = $(BASE_TOOLS_PATH)\Lib\Win32 SYS_BIN_PATH = $(EDK_TOOLS_PATH)\Bin\Win32 SYS_LIB_PATH = $(EDK_TOOLS_PATH)\Lib\Win32 !ELSEIF "$(HOST_ARCH)"=="X64" -ARCH_INCLUDE = $(SOURCE_PATH)\Include\X64 +ARCH_INCLUDE = $(EDK2_PATH)\MdePkg\Include\X64 BIN_PATH = $(BASE_TOOLS_PATH)\Bin\Win64 LIB_PATH = $(BASE_TOOLS_PATH)\Lib\Win64 SYS_BIN_PATH = $(EDK_TOOLS_PATH)\Bin\Win64 -- 2.39.2