• Lv Zheng's avatar
    ACPICA: acpidump: Remove integer types translation protection. · e252652f
    Lv Zheng authored
    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: default avatarLv Zheng <lv.zheng@intel.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    e252652f
aclinux.h 7.67 KB