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 e10k 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 e10k "e10k queue management interface" { 16 typedef enum {PORT_TCP, PORT_UDP} port_type; 17 alias qid uint8; 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 txhwb, 27 cap rx, 28 uint32 rxbufsz, 29 uint32 rxhdrsz, 30 int16 msix_intvec, 31 uint8 msix_intdest, 32 bool use_irq, 33 bool use_rsc, 34 uint64 tx_va, 35 uint64 rx_va, 36 uint64 txhwb_va); 37 message queue_memory_registered(); 38 39 /* Modify interrupt rate for a particular queue */ 40 message set_interrupt_rate(qid id, uint16 rate); 41 42 /* FIXME: this is not technically a response, but a request by the server, 43 hope this works anyway... I'd like the dev mgr to be server. */ 44 /* Tells queue driver to write the tail pointers for the rx and 45 tx queues after initialization or reset */ 46 message write_queue_tails(); 47 48 /* Called by queue manager if it is done, and is going to terminate. */ 49 rpc terminate_queue(in qid id); 50 51 /***************************************************** 52 * Filter management (used by device manager library) 53 *****************************************************/ 54 55 rpc register_port_filter(in uint64 buf_id_rx, 56 in uint64 buf_id_tx, 57 in qid queue, 58 in port_type type, 59 in uint16 port, 60 out errval rerr, 61 out uint64 filter); 62 63 rpc unregister_filter(in uint64 filter, out errval rerr); 64}; 65