aboutsummaryrefslogtreecommitdiffstats
path: root/include/acpi/platform
diff options
context:
space:
mode:
authorLv Zheng <lv.zheng@intel.com>2014-02-11 10:51:43 +0800
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-02-13 16:21:15 +0100
commite252652fb2664d42de19f933aa3688bbc470de3f (patch)
tree6b2c96f9ee0f7de74da29975bc3386b4ec3d5bbd /include/acpi/platform
parentACPICA: acpidump: Add sparse declarators support. (diff)
downloadlinux-dev-e252652fb2664d42de19f933aa3688bbc470de3f.tar.xz
linux-dev-e252652fb2664d42de19f933aa3688bbc470de3f.zip
ACPICA: acpidump: Remove integer types translation protection.
Remove translation protection for applications as Linux tools folder will start to use such types. In Linux kernel source tree, after removing this translation protection, the u8/u16/u32/u64/s32/s64 typedefs are exposed for both __KERNEL__ builds and !__KERNEL__ builds (tools/power/acpi) and the original definitions of ACPI_UINT8/16/32/64_MAX are changed. For !__KERNEL__ builds, this kind of defintions should already been tested by the distribution vendors that are distributing binary ACPICA package and we've achieved the successful built/run test result in the kernel source tree. For __KERNEL__ builds, there are 2 things affected: 1. u8/u16/u32/u64/s32/s64 type definitions: Since Linux has already type defined u8/u16/u32/u64/s32/s64 in include/uapi/asm-generic/int-ll64.h for __KERNEL__. In order not to introduce build regressions where the 2 typedefs are differed, ACPI_USE_SYSTEM_INTTYPES is introduced to mask out ACPICA's typedefs. It must be defined for Linux __KERNEL__ builds. 2. ACPI_UINT8/16/32/64_MAX definitions: Before applying this change: ACPI_UINT8_MAX: sizeof (UINT8) UINT8: unsigned char ACPI_UINT16_MAX: sizeof (UINT16) UINT16: unsigned short ACPI_UINT32_MAX: sizeof (UINT32) INT32: int UINT32: unsigned int ACPI_UINT64_MAX: sizeof (UINT64) INT64: COMPILER_DEPENDENT_INT64 COMPILER_DEPENDENT_INT64: signed long (IA64) or signed long long (IA32) UINT64: COMPILER_DEPENDENT_UINT64 COMPILER_DEPENDENT_UINT64: unsigned long (IA64) or unsigned long long (IA32) After applying this change: ACPI_UINT8_MAX: sizeof (u8) u8: unsigned char UINT8: (removed from actypes.h) ACPI_UINT16_MAX: sizeof (u16) u16: unsigned short UINT16: (removed from actypes.h) ACPI_UINT32_MAX: sizeof (u32) INT32/UINT32: (removed from actypes.h) s32: signed int u32: unsigned int ACPI_UINT64_MAX: sizeof (u64) INT64/UINT64: (removed from actypes.h) u64: unsigned long long s64: signed long long COMPILER_DEPENDENT_INT64: signed long (IA64) (not used any more) signed long long (IA32) (not used any more) COMPILER_DEPENDENT_UINT64: unsigned long (IA64) (not used any more) unsigned long long (IA32) (not used any more) All definitions are equal except ACPI_UINT64_MAX for CONFIG_IA64. It is changed from sizeof(unsigned long) to sizeof(unsigned long long). By investigation, 64bit Linux kernel build is LP64 compliant, i.e., sizeof(long) and (pointer) are 64. As sizeof(unsigned long) equals to sizeof(unsigned long long) on IA64 platform where CONFIG_64BIT cannot be disabled, this change actually will not affect the value of ACPI_UINT64_MAX on IA64 platforms. This patch is necessary for the ACPICA's acpidump tool to build correctly. Lv Zheng. Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'include/acpi/platform')
-rw-r--r--include/acpi/platform/aclinux.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h
index 26ef0954a2a9..1ab66659f904 100644
--- a/include/acpi/platform/aclinux.h
+++ b/include/acpi/platform/aclinux.h
@@ -52,6 +52,8 @@
#ifdef __KERNEL__
+#define ACPI_USE_SYSTEM_INTTYPES
+
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/ctype.h>