1/**
2 * \file
3 * \brief ACPI daemon Flounder handler functions
4 */
5
6/*
7 * Copyright (c) 2007, 2008, 2009, 2011, ETH Zurich.
8 * All rights reserved.
9 *
10 * This file is distributed under the terms in the attached LICENSE file.
11 * If you do not find this file, copies can be found by writing to:
12 * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
13 */
14
15#ifndef ACPI_SHARED_H_
16#define ACPI_SHARED_H_
17
18#include <acpi.h>
19#include <if/acpi_defs.h>
20#include <errors/errno.h>
21#include <pci/confspace/pci_confspace.h>
22
23#define BIOS_BITS       20
24extern struct capref my_devframes_cnode;
25extern struct mm pci_mm_physaddr;
26
27extern uintptr_t my_hw_id;
28
29errval_t find_all_apics(void);
30
31int init_all_interrupt_sources(void);
32errval_t enable_and_route_interrupt(int gsi, coreid_t dest, int vector);
33errval_t set_device_irq(const char* device, uint32_t irq);
34
35int init_acpi(void);
36int acpi_arch_init(void);
37ACPI_STATUS acpi_eval_integer(ACPI_HANDLE handle, const char *name,
38                              ACPI_INTEGER *ret);
39errval_t acpi_get_irqtable_device(ACPI_HANDLE parent, acpi_pci_address_t device,
40        ACPI_HANDLE *child, uint8_t bus);
41
42void video_init(void);
43void buttons_init(void);
44void ec_probe_ecdt(void);
45void ec_init(void);
46
47void start_service(void);
48void acpi_service_arch_init(struct acpi_rx_vtbl *acpi_rx_vtbl);
49extern bool vtd_force_off;
50
51void
52AcpiOsSetRootPointer (
53    ACPI_PHYSICAL_ADDRESS physaddr);
54
55
56errval_t acpi_arch_copy_bios_mem(void);
57errval_t acpi_arch_load_irq_routing_new(void);
58void acpi_arch_video_init(void);
59errval_t acpi_arch_skb_set_info(void);
60errval_t acpi_interrupts_arch_setup(void);
61
62#endif /* ACPI_SHARED_H_ */
63