cnet v3.1.4

home
FAQ

cmdline options
topology files
attributes

datatypes
data structures
core API
support API

download/install

cnet's Application Programming Interface

NAME
CNET_read_physical - read a data frame from the Physical Layer

SYNOPSIS
#include <cnet.h>

int CNET_read_physical(int *link, void *frame, size_t *length);

DESCRIPTION
CNET_read_physical requests that a data frame be read from the Physical Layer. The specified maximum number of bytes from the Physical Layer are copied to the address pointed to by frame. On invocation, length must point to an integer indicating the maximum number of bytes that may be copied into frame.

Each node has a fixed number of links, the first available physical link is number 1, the second is number 2, and so on. As a special case, a node may reliably transmit a frame to itself by requesting the LOOPBACK(=0) link.

On return, the integer pointed to by length will contain the number of bytes read from the Physical Layer. If link is not NULL, then the integer pointed to by link will contain the link number on which the frame arrived.

RETURN VALUE
The value 0 is returned on success. On failure, the value -1 is returned, and the global variable cnet_errno is set to one of the following values to describe the error:

ER_BADARG
Either frame or length is a NULL pointer.

ER_BADSIZE
The value of length is shorter than next available data frame.

ER_CORRUPTFRAME
The recently arrived data frame was corrupted in the Physical Layer and the -e command-line option was given.

ER_NOTREADY
The current node has not yet finished rebooting.

SEE ALSO
CNET_write_physical, CNET_write_physical_reliable, and CNET_write_direct

cnet was written and is maintained by Chris McDonald (chris@csse.uwa.edu.au).

cnet development has been supported by an ACM-SIGCSE Special Project Grant, and an Australian Apple University Consortium Scholarship.