Adjustments of IPC to match new convention (static buffers).
[barrelfish] / if / acpi.if
1 /*
2  * Copyright (c) 2007, 2008, 2009, ETH Zurich.
3  * All rights reserved.
4  *
5  * This file is distributed under the terms in the attached LICENSE file.
6  * If you do not find this file, copies can be found by writing to:
7  * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
8  */
9
10 interface acpi "acpi RPC Interface" {
11     typedef struct {
12         uint8 bus;
13         uint8 device;
14         uint8 function;
15     } pci_address;
16
17     // XXX: SKB fails when these values are stored as predicate?
18     rpc get_pcie_confspace(out errval err,
19                            out uint64 address,
20                            out uint16 segment,
21                            out uint8 startbus,
22                            out uint8 endbus);
23
24     rpc read_irq_table(in String handle[256],
25                        in pci_address addr,
26                        in uint8 bus,
27                        out errval error,
28                        out String child[256]);
29
30     rpc set_device_irq(in String handle[2048],
31                        in uint32 irq,
32                        out errval error);
33
34     rpc enable_and_route_interrupt(in uint32 gsi,
35                                    in coreid dest,
36                                    in uint32 vector,
37                                    out errval error_code);
38
39     rpc reset(out errval err);
40     rpc sleep(in uint32 state, out errval err);
41
42     // Kludge: retrieve frame cap to VBE BIOS;
43     rpc get_vbe_bios_cap(out errval err, out cap cap, out uint32 size);
44
45     rpc create_domain(in cap pml4, out errval err);
46
47     rpc delete_domain(in cap pml4, out errval err);
48
49     rpc vtd_add_device(in uint32 seg, in uint32 bus, in uint32 dev, in uint32 funct, in cap pml4, out errval err);
50
51     rpc vtd_remove_device(in uint32 seg, in uint32 bus, in uint32 dev, in uint32 funct, in cap pml4, out errval err);
52
53     rpc vtd_id_dom_add_devices(out errval err);
54
55     // More Kludge; cap retrieval for pci
56     // We need a designated service to maintain the physical address
57     // space caps (to avoid sibling errors).
58     rpc mm_alloc_range_proxy(in uint8 sizebits, in uint64 minbase,
59                              in uint64 maxlimit, out cap devframe, out errval err);
60     rpc mm_realloc_range_proxy(in uint8 sizebits, in uint64 minbase,
61                                out cap devframe, out errval err);
62     rpc mm_free_proxy(in cap devframe, in uint64 base, in uint8 sizebits, out errval err);
63 };
64