diff options
author | Lv Zheng <lv.zheng@intel.com> | 2013-10-29 09:29:27 +0800 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-10-30 12:24:21 +0100 |
commit | b3c86c30efd83ebfa7010c5890e2ebf2678e49f8 (patch) | |
tree | f354d1d0a7a01d40345b155e3d271ca9275adb09 /include/acpi/actypes.h | |
parent | 73424473d0801f7079258897901ba1edc660dbd3 (diff) | |
download | linux-stable-b3c86c30efd83ebfa7010c5890e2ebf2678e49f8.tar.gz linux-stable-b3c86c30efd83ebfa7010c5890e2ebf2678e49f8.tar.bz2 linux-stable-b3c86c30efd83ebfa7010c5890e2ebf2678e49f8.zip |
ACPICA: Cleanup memory allocation macros and configurability.
In the common case, the ACPI_ALLOCATE and related macros now resolve
directly to their respective acpi_os* OSL interfaces. Two options:
1) The ACPI_ALLOCATE_ZEROED macro defaults to a simple local implementation
by default, unless overridden by the USE_NATIVE_ALLOCATE_ZEROED define.
2) For ACPI execution simulation environment (AcpiExec) which is not
shipped with the Linux kernel, the macros can optionally be resolved to
the local interfaces that track each allocation (used to immediately
detect memory leaks).
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'include/acpi/actypes.h')
-rw-r--r-- | include/acpi/actypes.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h index f6abf23ad0a7..fed5af2bcb93 100644 --- a/include/acpi/actypes.h +++ b/include/acpi/actypes.h @@ -306,6 +306,33 @@ typedef u32 acpi_physical_address; #define ACPI_EXPORT_SYMBOL(symbol) #endif +/******************************************************************************* + * + * Configuration + * + ******************************************************************************/ + +#ifdef ACPI_DBG_TRACK_ALLOCATIONS +/* + * Memory allocation tracking (used by acpi_exec to detect memory leaks) + */ +#define ACPI_MEM_PARAMETERS _COMPONENT, _acpi_module_name, __LINE__ +#define ACPI_ALLOCATE(a) acpi_ut_allocate_and_track ((acpi_size) (a), ACPI_MEM_PARAMETERS) +#define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed_and_track ((acpi_size) (a), ACPI_MEM_PARAMETERS) +#define ACPI_FREE(a) acpi_ut_free_and_track (a, ACPI_MEM_PARAMETERS) +#define ACPI_MEM_TRACKING(a) a + +#else +/* + * Normal memory allocation directly via the OS services layer + */ +#define ACPI_ALLOCATE(a) acpi_os_allocate ((acpi_size) (a)) +#define ACPI_ALLOCATE_ZEROED(a) acpi_os_allocate_zeroed ((acpi_size) (a)) +#define ACPI_FREE(a) acpi_os_free (a) +#define ACPI_MEM_TRACKING(a) + +#endif /* ACPI_DBG_TRACK_ALLOCATIONS */ + /****************************************************************************** * * ACPI Specification constants (Do not change unless the specification changes) |