ACPICA: Add support for complex _PLD buffers.

_PLD (Physical Location of Device) returns a bit-packed buffer that
is difficult to parse. This change adds a new interface,
AcpiDecodePldBuffer that parses the buffer into a more usable
local struct. Also adds macros to both get and set individual
fields within the packed _PLD buffer. Adds a new include file,
acbuffer.h - which will be expanded to add structs for other
ACPI names that return buffers. ACPICA BZ 954.

Emit (in comments) the decoded contents of a static _PLD buffer
in order to improve comprehension of this bit-packed buffer.

Add multi-endian support to the _PLD decode routine. Deploy the
multi-endian macros to extract data from the _PLD buffer.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Feng Tang <feng.tang@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Bu işleme şunda yer alıyor:
Bob Moore
2012-08-17 13:07:54 +08:00
işlemeyi yapan: Len Brown
ebeveyn 4e2f9c278a
işleme be030a5768
10 değiştirilmiş dosya ile 360 ekleme ve 24 silme

Dosyayı Görüntüle

@@ -52,6 +52,7 @@
#include "acconfig.h"
#include "actypes.h"
#include "actbl.h"
#include "acbuffer.h"
extern u8 acpi_gbl_permanent_mmap;
@@ -144,6 +145,10 @@ acpi_check_address_range(acpi_adr_space_type space_id,
acpi_physical_address address,
acpi_size length, u8 warn);
acpi_status
acpi_decode_pld_buffer(u8 *in_buffer,
acpi_size length, struct acpi_pld_info **return_buffer);
/*
* ACPI Memory management
*/