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, Haldeneggsteig 4, 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 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