39 #define colour FADT_SIGNATURE 69 sizeof (
acpi.length ) );
123 DBG (
"RSDT not found\n" );
130 DBGC (
colour,
"RSDT %#08lx has invalid signature:\n",
137 if (
len <
sizeof ( rsdtab->
acpi ) ) {
138 DBGC (
colour,
"RSDT %#08lx has invalid length:\n",
149 for ( i = 0 ; i <
count ; i++ ) {
159 sizeof (
acpi.signature ) );
170 if ( acpi_checksum ( table ) != 0 ) {
171 DBGC (
colour,
"RSDT %#08lx found %s with bad " 178 DBGC (
colour,
"RSDT %#08lx found %s at %08lx\n",
184 DBGC (
colour,
"RSDT %#08lx could not find %s\n",
220 DBGC ( zsdt,
"DSDT/SSDT %#08lx found %s at offset %#zx\n",
261 for ( i = 0 ; ; i++ ) {
270 DBGC (
colour,
"ACPI could not find \"%s\"\n",
#define RSDT_SIGNATURE
Root System Description Table (RSDT) signature.
userptr_t acpi_find_via_rsdt(uint32_t signature, unsigned int index)
Locate ACPI table via RSDT.
struct arbelprm_rc_send_wqe rc
#define le32_to_cpu(value)
static __always_inline void copy_from_user(void *dest, userptr_t src, off_t src_off, size_t len)
Copy data from user buffer.
unsigned long user_to_phys(userptr_t userptr, off_t offset)
Convert user pointer to physical address.
uint64_t desc
Microcode descriptor list physical address.
#define SSDT_SIGNATURE
Secondary System Description Table (SSDT) signature.
userptr_t acpi_table(uint32_t signature, unsigned int index)
Locate ACPI table.
#define ENOENT
No such file or directory.
userptr_t phys_to_user(unsigned long phys_addr)
Convert physical address to user pointer.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
static acpi_find(uint32_t signature, unsigned int index)
Locate ACPI table.
int(* install)(int(*install)(struct acpi_header *acpi))
Install ACPI tables.
#define offsetof(type, field)
Get offset of a field within a structure.
ACPI Root System Description Table (RSDT)
Access to external ("user") memory.
void * intf_object(struct interface *intf)
Get pointer to object containing object interface.
struct interface * intf
Original interface.
void acpi_del(struct acpi_descriptor *desc)
Remove ACPI descriptor.
int acpi_extract(uint32_t signature, void *data, int(*extract)(userptr_t zsdt, size_t len, size_t offset, void *data))
Extract value from DSDT/SSDT.
#define list_del(list)
Delete an entry from a list.
uint32_t userptr_t
A pointer to a user buffer.
#define colour
Colour for debug messages.
Fixed ACPI Description Table (FADT)
#define list_add_tail(new, head)
Add a new entry to the tail of a list.
static EFI_ACPI_TABLE_PROTOCOL * acpi
ACPI table protocol protocol.
uint32_t entry[0]
ACPI table entries.
#define FADT_SIGNATURE
Fixed ACPI Description Table (FADT) signature.
uint16_t count
Number of entries.
void acpi_fix_checksum(struct acpi_header *acpi)
Fix up ACPI table checksum.
#define cpu_to_le32(value)
int acpi_install(int(*install)(struct acpi_header *acpi))
Install ACPI tables.
#define ref_get(refcnt)
Get additional reference to object.
#define for_each_table_entry(pointer, table)
Iterate through all entries within a linker table.
userptr_t acpi_find_rsdt(void)
Locate ACPI root system description table.
struct acpi_descriptor * acpi_describe(struct interface *intf)
Get object's ACPI descriptor.
#define acpi_describe_TYPE(object_type)
struct acpi_header acpi
ACPI header.
static uint16_t struct vmbus_xfer_pages_operations * op
An ACPI descriptor (used to construct ACPI tables)
uint32_t dsdt
Physical address of DSDT.
#define UNULL
Equivalent of NULL for user pointers.
void intf_put(struct interface *intf)
Decrement reference count on an object interface.
static const char * acpi_name(uint32_t signature)
Transcribe ACPI table signature (for debugging)
userptr_t virt_to_user(volatile const void *addr)
Convert virtual address to user pointer.
if(len >=6 *4) __asm__ __volatile__("movsl" if(len >=5 *4) __asm__ __volatile__("movsl" if(len >=4 *4) __asm__ __volatile__("movsl" if(len >=3 *4) __asm__ __volatile__("movsl" if(len >=2 *4) __asm__ __volatile__("movsl" if(len >=1 *4) __asm__ __volatile__("movsl" if((len % 4) >=2) __asm__ __volatile__("movsw" if((len % 2) >=1) __asm__ __volatile__("movsb" return dest
uint8_t data[48]
Additional event data.
#define ACPI_MODELS
ACPI models.
uint16_t offset
Offset to command line.
typeof(acpi_finder=acpi_find)
ACPI table finder.
static int acpi_zsdt(userptr_t zsdt, uint32_t signature, void *data, int(*extract)(userptr_t zsdt, size_t len, size_t offset, void *data))
Extract value from DSDT/SSDT.
#define DBG(...)
Print a debugging message.
#define list_check_contains_entry(entry, head, member)
Check list contains a specified entry.
u8 signature
CPU signature.
void acpi_add(struct acpi_descriptor *desc)
Add ACPI descriptor.
#define NULL
NULL pointer (VOID *)
#define intf_get_dest_op(intf, type, dest)
Get object interface destination and operation method.
#define ref_put(refcnt)
Drop reference to object.
userptr_t(* acpi_finder)(uint32_t signature, unsigned int index)