10 FILE_LICENCE ( GPL2_OR_LATER );
13 #include <ipxe/interface.h>
16 * An ACPI description header
18 * This is the structure common to the start of all ACPI system
21 struct acpi_description_header {
22 /** ACPI signature (4 ASCII characters) */
24 /** Length of table, in bytes, including header */
26 /** ACPI Specification minor version number */
28 /** To make sum of entire table == 0 */
30 /** OEM identification */
32 /** OEM table identification */
34 /** OEM revision number */
35 uint32_t oem_revision;
36 /** ASL compiler vendor ID */
37 char asl_compiler_id[4];
38 /** ASL compiler revision number */
39 uint32_t asl_compiler_revision;
40 } __attribute__ (( packed ));
43 * Build ACPI signature
45 * @v a First character of ACPI signature
46 * @v b Second character of ACPI signature
47 * @v c Third character of ACPI signature
48 * @v d Fourth character of ACPI signature
49 * @ret signature ACPI signature
51 #define ACPI_SIGNATURE( a, b, c, d ) \
52 ( ( (a) << 0 ) | ( (b) << 8 ) | ( (c) << 16 ) | ( (d) << 24 ) )
54 extern int acpi_describe ( struct interface *interface,
55 struct acpi_description_header *acpi, size_t len );
56 #define acpi_describe_TYPE( object_type ) \
57 typeof ( int ( object_type, \
58 struct acpi_description_header *acpi, \
61 extern void acpi_fix_checksum ( struct acpi_description_header *acpi );
63 #endif /* _IPXE_ACPI_H */