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 queue manager. It is 13 * exposed by the device manager, and every queue manager connects to it. 14 */ 15interface 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 rpc terminate_queue(in qid id); 43 44 /***************************************************** 45 * Filter management (used by device manager library) 46 *****************************************************/ 47 48 rpc register_port_filter(in uint64 buf_id_rx, 49 in uint64 buf_id_tx, 50 in qid queue, 51 in port_type type, 52 in uint16 port, 53 out errval rerr, 54 out uint64 filter); 55 56 rpc unregister_filter(in uint64 filter, out errval rerr); 57}; 58