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