1/*
2 * Copyright (c) 2007-2011, 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, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
8 */
9
10/*
11 * This interface is used in the sfn5122f driver for the device specific
12 * communication between the device manager and the setup for the devif device
13 * interface. The driver exposes the interface and the devif solarflare device
14 * specific part connects to it
15 */
16interface sfn5122f_devif "sfn5122f devif communication interface" {
17    
18    // create and destroy a queue. Only the device driver itself should
19    // access configuration registers
20    rpc create_queue(in cap frame, in bool user, in bool interrupt,
21                     in bool qzero,
22                     in uint8 core, in uint8 vector,
23                     out uint64 mac, out uint16 qid, 
24                     out cap filter_ep, out cap regs, out errval err);
25    rpc destroy_queue(in uint16 qid, out errval err);
26
27    // add a memory region to the buffer table
28    rpc register_region(in uint16 qid, in cap reg, out uint64 buftbl_id, out errval err);
29    rpc deregister_region(in uint64 buftbl_id, in uint64 size, out errval err);
30
31    rpc control(in uint64 req, in uint64 arg, out uint64 res, out errval msgerr);
32
33    message interrupt(uint16 qid);
34};
35