DeviceQueue: Solarflare driver removed mac stats cap transfer
[barrelfish] / if / sfn5122f.if
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 queue manager. It is
13  * exposed by the device manager, and every queue manager connects to it.
14  */
15 interface sfn5122f "sfn5122f queue management interface" {
16     typedef enum {PORT_TCP, PORT_UDP} port_type;
17     alias qid uint16;
18
19     message request_device_info();
20     message queue_init_data(cap registers, uint64 macaddr);
21
22     /* Upon initialization the queue driver registers its memory with
23        the device manager. */
24     message register_queue_memory(qid    id,
25                                cap    tx,
26                                cap    rx,
27                                cap    ev,
28                                uint32 rxbufsz,
29                                bool   use_irq, 
30                                bool   userspace,
31                                uint8 vector,
32                                uint16 core);
33     message queue_memory_registered();
34
35     /* FIXME: this is not technically a response, but a request by the server,
36               hope this works anyway... I'd like the dev mgr to be server. */
37     /* Tells queue driver to write the tail pointers for the rx and
38        tx queues after initialization or reset */
39     message write_queue_tails();
40
41     /* Called by queue manager if it is done, and is going to terminate. */
42     message terminate_queue(qid id);
43     message queue_terminated();
44
45     /*****************************************************
46      * Filter management (used by device  manager library)
47      *****************************************************/
48
49     message register_port_filter(uint64    buf_id_rx,
50                               uint64    buf_id_tx,
51                               qid       queue,
52                               port_type type,
53                               uint16    port);
54     message filter_registered(uint64    buf_id_rx,
55                               uint64    buf_id_tx,
56                               errval err,
57                               uint64 filter);
58
59     message unregister_filter(uint64 filter);
60     message filter_unregistered(uint64 filter, errval err);
61 };