1/** \file
2 *  \brief VirtIO shared memory interface
3 */
4
5/*
6 * Copyright (c) 2012, ETH Zurich.
7 * All rights reserved.
8 *
9 * This file is distributed under the terms in the attached LICENSE file.
10 * If you do not find this file, copies can be found by writing to:
11 * ETH Zurich D-INFK, Universitaetsstrasse 6, CH-8092 Zurich. Attn: Systems Group.
12 */
13
14interface virtio "VirtIO Interface" {
15    
16    /* open a new VirtIO device */
17    rpc open(in uint8 backend, out errval err, out cap devframe);
18    
19    /* closes a VirtIO Device */
20    rpc close();
21    
22    /* adds a new vring to the device */
23    rpc add(in uint16 vq_id, 
24            in uint16 ndesc, 
25            in uint8 has_buffers,
26            in cap vring, 
27            out errval err);
28    
29    /* extends the shared memory by a new cap */
30    rpc extend(in uint16 vq_id, in cap vbuf, out errval err);
31    
32    /* requests memory from the host to be used as vring / vbufs */
33    rpc req(in uint64 size, out errval err, out cap vring);
34};