ACPICA: Ensure that all structures in acobject.h are aligned, via #pragma.
Thus, even if the default compiler setting is non-aligned, the header is compiled correctly. Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
8876016bb3
commit
7c9626bade
@ -52,7 +52,15 @@
|
|||||||
* to the interpreter, and to keep track of the various handlers such as
|
* to the interpreter, and to keep track of the various handlers such as
|
||||||
* address space handlers and notify handlers. The object is a constant
|
* address space handlers and notify handlers. The object is a constant
|
||||||
* size in order to allow it to be cached and reused.
|
* size in order to allow it to be cached and reused.
|
||||||
|
*
|
||||||
|
* Note: The object is optimized to be aligned and will not work if it is
|
||||||
|
* byte-packed.
|
||||||
*/
|
*/
|
||||||
|
#if ACPI_MACHINE_WIDTH == 64
|
||||||
|
#pragma pack(8)
|
||||||
|
#else
|
||||||
|
#pragma pack(4)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
@ -101,7 +109,8 @@ struct acpi_object_common {
|
|||||||
ACPI_OBJECT_COMMON_HEADER};
|
ACPI_OBJECT_COMMON_HEADER};
|
||||||
|
|
||||||
struct acpi_object_integer {
|
struct acpi_object_integer {
|
||||||
ACPI_OBJECT_COMMON_HEADER acpi_integer value;
|
ACPI_OBJECT_COMMON_HEADER u8 fill[3]; /* Prevent warning on some compilers */
|
||||||
|
acpi_integer value;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -203,7 +212,9 @@ struct acpi_object_power_resource {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct acpi_object_processor {
|
struct acpi_object_processor {
|
||||||
ACPI_OBJECT_COMMON_HEADER u8 proc_id;
|
ACPI_OBJECT_COMMON_HEADER
|
||||||
|
/* The next two fields take advantage of the 3-byte space before NOTIFY_INFO */
|
||||||
|
u8 proc_id;
|
||||||
u8 length;
|
u8 length;
|
||||||
ACPI_COMMON_NOTIFY_INFO acpi_io_address address;
|
ACPI_COMMON_NOTIFY_INFO acpi_io_address address;
|
||||||
};
|
};
|
||||||
@ -406,4 +417,6 @@ union acpi_descriptor {
|
|||||||
union acpi_parse_object op;
|
union acpi_parse_object op;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
#endif /* _ACOBJECT_H */
|
#endif /* _ACOBJECT_H */
|
||||||
|
@ -156,6 +156,7 @@ typedef u64 acpi_physical_address;
|
|||||||
#define ACPI_MAX_PTR ACPI_UINT64_MAX
|
#define ACPI_MAX_PTR ACPI_UINT64_MAX
|
||||||
#define ACPI_SIZE_MAX ACPI_UINT64_MAX
|
#define ACPI_SIZE_MAX ACPI_UINT64_MAX
|
||||||
|
|
||||||
|
#define ACPI_NATIVE_BOUNDARY 8
|
||||||
#define ACPI_USE_NATIVE_DIVIDE /* Has native 64-bit integer support */
|
#define ACPI_USE_NATIVE_DIVIDE /* Has native 64-bit integer support */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -196,6 +197,8 @@ typedef u32 acpi_physical_address;
|
|||||||
#define ACPI_MAX_PTR ACPI_UINT32_MAX
|
#define ACPI_MAX_PTR ACPI_UINT32_MAX
|
||||||
#define ACPI_SIZE_MAX ACPI_UINT32_MAX
|
#define ACPI_SIZE_MAX ACPI_UINT32_MAX
|
||||||
|
|
||||||
|
#define ACPI_NATIVE_BOUNDARY 4
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
* Types specific to 16-bit targets
|
* Types specific to 16-bit targets
|
||||||
@ -222,6 +225,7 @@ typedef char *acpi_physical_address;
|
|||||||
#define ACPI_MAX_PTR ACPI_UINT16_MAX
|
#define ACPI_MAX_PTR ACPI_UINT16_MAX
|
||||||
#define ACPI_SIZE_MAX ACPI_UINT16_MAX
|
#define ACPI_SIZE_MAX ACPI_UINT16_MAX
|
||||||
|
|
||||||
|
#define ACPI_NATIVE_BOUNDARY 2
|
||||||
#define ACPI_USE_NATIVE_DIVIDE /* No 64-bit integers, ok to use native divide */
|
#define ACPI_USE_NATIVE_DIVIDE /* No 64-bit integers, ok to use native divide */
|
||||||
|
|
||||||
/* 64-bit integers cannot be supported */
|
/* 64-bit integers cannot be supported */
|
||||||
|
Loading…
Reference in New Issue
Block a user