Barrelfish
Functions
net_queue_manager.h File Reference

Header file for net_queue_manager.h. More...

Functions

void ethersrv_init (char *service_name, uint64_t queueid, ether_get_mac_address_t get_mac_ptr, ether_terminate_queue terminate_queue_ptr, ether_transmit_pbuf_list_t transmit_ptr, ether_get_tx_free_slots tx_free_slots_ptr, ether_handle_free_TX_slot handle_free_tx_slots_ptr, size_t rx_buffer_size, ether_rx_register_buffer rx_register_buffer_ptr, ether_rx_get_free_slots rx_get_free_slots_ptr)
 
void ethersrv_argument (const char *arg)
 
void process_received_packet (struct driver_rx_buffer *buffer, size_t count, uint64_t flags)
 
bool copy_packet_to_user (struct buffer_descriptor *buffer, void *data, uint64_t len, uint64_t flags)
 

Detailed Description

Header file for net_queue_manager.h.

Function Documentation

bool copy_packet_to_user ( struct buffer_descriptor *  buffer,
void *  data,
uint64_t  len,
uint64_t  flags 
)

Used in combination with software filtering, to copy a packet into a user buffer.

void ethersrv_argument ( const char *  arg)

Pass command line argument not used by driver to library. Can be called multiple times, once for each parameter.

void ethersrv_init ( char *  service_name,
uint64_t  queueid,
ether_get_mac_address_t  get_mac_ptr,
ether_terminate_queue  terminate_queue_ptr,
ether_transmit_pbuf_list_t  transmit_ptr,
ether_get_tx_free_slots  tx_free_slots_ptr,
ether_handle_free_TX_slot  handle_free_tx_slots_ptr,
size_t  rx_buffer_size,
ether_rx_register_buffer  rx_register_buffer_ptr,
ether_rx_get_free_slots  rx_get_free_slots_ptr 
)

Initialize pair of ethernet RX/TX queues.

Parameters
service_nameService name for the card to which this queue belongs
queueidQueue index
get_mac_ptrCallback that returns MAC address of the card
terminate_queue_ptrCallback that terminates the queue driver, or NULL if this is not supported.
transmit_ptrCallback to put a buffer chain in TX queue
tx_free_slots_ptrCallback that returns number of free slots in TX queue
handle_free_tx_slots_ptrCallback to remove transmitted buffers from queue
rx_buffer_sizeExpected RX buffer size
rx_register_buffer_ptrCallback to register buffer for RX queue
rx_get_free_slots_ptrCallback that returns number of free slots in RX queue
void process_received_packet ( struct driver_rx_buffer *  bufs,
size_t  count,
uint64_t  flags 
)

Called by driver when it receives a new packet.