/* * Copyright (c) 2007, 2008, 2009, ETH Zurich. * All rights reserved. * * This file is distributed under the terms in the attached LICENSE file. * If you do not find this file, copies can be found by writing to: * ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group. */ interface acpi "acpi RPC Interface" { typedef struct { uint8 bus; uint8 device; uint8 function; } pci_address; // XXX: SKB fails when these values are stored as predicate? rpc get_pcie_confspace(out errval err, out uint64 address, out uint16 segment, out uint8 startbus, out uint8 endbus); rpc read_irq_table(in String handle[256], in pci_address addr, in uint8 bus, out errval error, out String child[256]); rpc set_device_irq(in String handle[2048], in uint32 irq, out errval error); rpc enable_and_route_interrupt(in uint32 gsi, in coreid dest, in uint32 vector, out errval error_code); rpc reset(out errval err); rpc sleep(in uint32 state, out errval err); rpc get_handle(in String devid[2048], out uint64 handle, out errval err); rpc eval_integer(in uint64 handle, in String path[2048], out uint64 val, out errval err); // Kludge: retrieve frame cap to VBE BIOS; rpc get_vbe_bios_cap(out errval err, out cap cap, out uint32 size); // More Kludge; cap retrieval for pci // We need a designated service to maintain the physical address // space caps (to avoid sibling errors). rpc mm_alloc_range_proxy(in uint8 sizebits, in uint64 minbase, in uint64 maxlimit, out cap devframe, out errval err); rpc mm_realloc_range_proxy(in uint8 sizebits, in uint64 minbase, out cap devframe, out errval err); rpc mm_free_proxy(in cap devframe, in uint64 base, in uint8 sizebits, out errval err); };