xfer_interface_operations Struct Reference

Data transfer interface operations. More...

#include <xfer.h>


Data Fields

void(* close )(struct xfer_interface *xfer, int rc)
 Close interface.
int(* vredirect )(struct xfer_interface *xfer, int type, va_list args)
 Redirect to new location.
size_t(* window )(struct xfer_interface *xfer)
 Check flow control window.
struct io_buffer *(* alloc_iob )(struct xfer_interface *xfer, size_t len)
 Allocate I/O buffer.
int(* deliver_iob )(struct xfer_interface *xfer, struct io_buffer *iobuf, struct xfer_metadata *meta)
 Deliver datagram as I/O buffer with metadata.
int(* deliver_raw )(struct xfer_interface *xfer, const void *data, size_t len)
 Deliver datagram as raw data.


Detailed Description

Data transfer interface operations.

Definition at line 21 of file xfer.h.


Field Documentation

void( * xfer_interface_operations::close)(struct xfer_interface *xfer, int rc)

Close interface.

Parameters:
xfer Data transfer interface
rc Reason for close

Referenced by xfer_close().

int( * xfer_interface_operations::vredirect)(struct xfer_interface *xfer, int type, va_list args)

Redirect to new location.

Parameters:
xfer Data transfer interface
type New location type
args Remaining arguments depend upon location type
Return values:
rc Return status code

Referenced by xfer_vredirect().

Check flow control window.

Parameters:
xfer Data transfer interface
Return values:
len Length of window
Flow control is regarded as advisory but not mandatory. Users who have control over their own rate of data generation should perform a flow control check before generating new data. Users who have no control (such as NIC drivers or filter layers) are not obliged to check.

Data transfer interfaces must be prepared to accept datagrams even if they are advertising a window of zero bytes.

Referenced by xfer_window().

Allocate I/O buffer.

Parameters:
xfer Data transfer interface
len I/O buffer payload length
Return values:
iobuf I/O buffer

Referenced by xfer_alloc_iob(), and xfer_deliver_as_iob().

int( * xfer_interface_operations::deliver_iob)(struct xfer_interface *xfer, struct io_buffer *iobuf, struct xfer_metadata *meta)

Deliver datagram as I/O buffer with metadata.

Parameters:
xfer Data transfer interface
iobuf Datagram I/O buffer
meta Data transfer metadata
Return values:
rc Return status code
A data transfer interface that wishes to support only raw data delivery should set this method to xfer_deliver_as_raw().

Referenced by xfer_deliver_as_iob(), and xfer_deliver_iob_meta().

int( * xfer_interface_operations::deliver_raw)(struct xfer_interface *xfer, const void *data, size_t len)

Deliver datagram as raw data.

Parameters:
xfer Data transfer interface
data Data buffer
len Length of data buffer
Return values:
rc Return status code
A data transfer interface that wishes to support only I/O buffer delivery should set this method to xfer_deliver_as_iob().

Referenced by xfer_deliver_as_raw(), and xfer_deliver_raw().


The documentation for this struct was generated from the following file:

Generated on Tue Apr 6 20:02:11 2010 for gPXE by  doxygen 1.5.7.1