/* * Copyright (c) 2007-2011, ETH Zurich. * All rights reserved. * * This file is distributed under the terms in the attached LICENSE file. * If you do not find this file, copies can be found by writing to: * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group. */ /* * This interface is used in the sfn5122f driver for the device specific * communication between the device manager and the queue manager. It is * exposed by the device manager, and every queue manager connects to it. */ interface sfn5122f "sfn5122f queue management interface" { typedef enum {PORT_TCP, PORT_UDP} port_type; alias qid uint16; message request_device_info(); message queue_init_data(cap registers, uint64 macaddr); /* Upon initialization the queue driver registers its memory with the device manager. */ message register_queue_memory(qid id, cap tx, cap rx, cap ev, uint32 rxbufsz, bool use_irq, bool userspace, uint8 vector, uint16 core); message queue_memory_registered(); /* FIXME: this is not technically a response, but a request by the server, hope this works anyway... I'd like the dev mgr to be server. */ /* Tells queue driver to write the tail pointers for the rx and tx queues after initialization or reset */ message write_queue_tails(); /* Called by queue manager if it is done, and is going to terminate. */ rpc terminate_queue(in qid id); /***************************************************** * Filter management (used by device manager library) *****************************************************/ rpc register_port_filter(in uint64 buf_id_rx, in uint64 buf_id_tx, in qid queue, in port_type type, in uint16 port, out errval rerr, out uint64 filter); rpc unregister_filter(in uint64 filter, out errval rerr); };