1 // Copyright 2016 The Fuchsia Authors 2 // 3 // Use of this source code is governed by a MIT-style 4 // license that can be found in the LICENSE file or at 5 // https://opensource.org/licenses/MIT 6 7 #pragma once 8 9 #include <acpica/acpi.h> 10 #include <arch/x86/apic.h> 11 #include <zircon/compiler.h> 12 #include <zircon/types.h> 13 14 __BEGIN_CDECLS 15 16 struct acpi_hpet_descriptor { 17 uint64_t address; 18 bool port_io; 19 20 uint16_t minimum_tick; 21 uint8_t sequence; 22 }; 23 24 void platform_init_acpi_tables(uint levels); 25 void platform_init_acpi(void); 26 zx_status_t platform_enumerate_cpus( 27 uint32_t* apic_ids, 28 uint32_t len, 29 uint32_t* num_cpus); 30 zx_status_t platform_enumerate_io_apics( 31 struct io_apic_descriptor* io_apics, 32 uint32_t len, 33 uint32_t* num_io_apics); 34 zx_status_t platform_enumerate_interrupt_source_overrides( 35 struct io_apic_isa_override* isos, 36 uint32_t len, 37 uint32_t* num_isos); 38 zx_status_t platform_find_hpet(struct acpi_hpet_descriptor* hpet); 39 40 __END_CDECLS 41