diff options
Diffstat (limited to 'src/include/ipxe/acpi.h')
| -rw-r--r-- | src/include/ipxe/acpi.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/include/ipxe/acpi.h b/src/include/ipxe/acpi.h index eabbec390..282b6d92d 100644 --- a/src/include/ipxe/acpi.h +++ b/src/include/ipxe/acpi.h @@ -10,6 +10,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include <stdint.h> +#include <ipxe/interface.h> /** * An ACPI description header @@ -19,7 +20,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); */ struct acpi_description_header { /** ACPI signature (4 ASCII characters) */ - char signature[4]; + uint32_t signature; /** Length of table, in bytes, including header */ uint32_t length; /** ACPI Specification minor version number */ @@ -38,6 +39,25 @@ struct acpi_description_header { uint32_t asl_compiler_revision; } __attribute__ (( packed )); +/** + * Build ACPI signature + * + * @v a First character of ACPI signature + * @v b Second character of ACPI signature + * @v c Third character of ACPI signature + * @v d Fourth character of ACPI signature + * @ret signature ACPI signature + */ +#define ACPI_SIGNATURE( a, b, c, d ) \ + ( ( (a) << 0 ) | ( (b) << 8 ) | ( (c) << 16 ) | ( (d) << 24 ) ) + +extern int acpi_describe ( struct interface *interface, + struct acpi_description_header *acpi, size_t len ); +#define acpi_describe_TYPE( object_type ) \ + typeof ( int ( object_type, \ + struct acpi_description_header *acpi, \ + size_t len ) ) + extern void acpi_fix_checksum ( struct acpi_description_header *acpi ); #endif /* _IPXE_ACPI_H */ |
