Barrelfish
Functions
sys.c File Reference

Functions

void sys_mbox_fetch (sys_mbox_t mbox, void **msg)
 
void sys_sem_wait (sys_sem_t sem)
 
void sys_timeout (u32_t msecs, sys_timeout_handler h, void *arg)
 
void sys_untimeout (sys_timeout_handler h, void *arg)
 
int sys_sem_wait_timeout (sys_sem_t sem, u32_t timeout)
 
void sys_msleep (u32_t ms)
 

Detailed Description

lwIP Operating System abstraction

Function Documentation

void sys_mbox_fetch ( sys_mbox_t  mbox,
void **  msg 
)

Wait (forever) for a message to arrive in an mbox. While waiting, timeouts (for this thread) are processed.

Parameters
mboxthe mbox to fetch the message from
msgthe place to store the message
void sys_msleep ( u32_t  ms)

Sleep for some ms. Timeouts are processed while sleeping.

Parameters
msnumber of milliseconds to sleep
void sys_sem_wait ( sys_sem_t  sem)

Wait (forever) for a semaphore to become available. While waiting, timeouts (for this thread) are processed.

Parameters
semsemaphore to wait for
int sys_sem_wait_timeout ( sys_sem_t  sem,
u32_t  timeout 
)

Wait for a semaphore with timeout (specified in ms)

Parameters
semsemaphore to wait
timeouttimeout in ms (0: wait forever)
Returns
0 on timeout, 1 otherwise
void sys_timeout ( u32_t  msecs,
sys_timeout_handler  h,
void *  arg 
)

Create a one-shot timer (aka timeout). Timeouts are processed in the following cases:

Parameters
msecstime in milliseconds after that the timer should expire
hcallback function to call when msecs have elapsed
argargument to pass to the callback function
void sys_untimeout ( sys_timeout_handler  h,
void *  arg 
)

Go through timeout list (for this task only) and remove the first matching entry, even though the timeout has not triggered yet.

Note
This function only works as expected if there is only one timeout calling 'h' in the list of timeouts.
Parameters
hcallback function that would be called by the timeout
argcallback argument that would be passed to h