Microchip® Advanced Software Framework

lwip-1.3.2/src/include/lwip/sys.h File Reference
#include "lwip/opt.h"
#include "lwip/err.h"
#include "arch/sys_arch.h"

Data Structures

struct  sys_timeo
 
struct  sys_timeouts
 

Macros

#define SYS_ARCH_DEC(var, val)
 
#define SYS_ARCH_DECL_PROTECT(lev)
 SYS_LIGHTWEIGHT_PROT define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection for certain critical regions during buffer allocation, deallocation and memory allocation and deallocation. More...
 
#define SYS_ARCH_GET(var, ret)
 
#define SYS_ARCH_INC(var, val)
 
#define SYS_ARCH_PROTECT(lev)
 
#define SYS_ARCH_SET(var, val)
 
#define SYS_ARCH_TIMEOUT   0xffffffffUL
 Return code for timeouts from sys_arch_mbox_fetch and sys_arch_sem_wait. More...
 
#define SYS_ARCH_UNPROTECT(lev)
 
#define SYS_MBOX_EMPTY   SYS_ARCH_TIMEOUT
 
#define sys_mbox_tryfetch(mbox, msg)   sys_arch_mbox_tryfetch(mbox, msg)
 

Typedefs

typedef void(* sys_timeout_handler )(void *arg)
 

Functions

u32_t sys_arch_mbox_fetch (sys_mbox_t mbox, void **msg, u32_t timeout)
 
u32_t sys_arch_mbox_tryfetch (sys_mbox_t mbox, void **msg)
 
u32_t sys_arch_sem_wait (sys_sem_t sem, u32_t timeout)
 
struct sys_timeoutssys_arch_timeouts (void)
 
void sys_init (void)
 
u32_t sys_jiffies (void)
 
void sys_mbox_fetch (sys_mbox_t mbox, void **msg)
 Wait (forever) for a message to arrive in an mbox. More...
 
void sys_mbox_free (sys_mbox_t mbox)
 
sys_mbox_t sys_mbox_new (int size)
 
void sys_mbox_post (sys_mbox_t mbox, void *msg)
 
err_t sys_mbox_trypost (sys_mbox_t mbox, void *msg)
 
void sys_msleep (u32_t ms)
 Sleep for some ms. More...
 
u32_t sys_now (void)
 Returns the current time in milliseconds. More...
 
void sys_sem_free (sys_sem_t sem)
 
sys_sem_t sys_sem_new (u8_t count)
 
void sys_sem_signal (sys_sem_t sem)
 
void sys_sem_wait (sys_sem_t sem)
 Wait (forever) for a semaphore to become available. More...
 
int sys_sem_wait_timeout (sys_sem_t sem, u32_t timeout)
 Wait for a semaphore with timeout (specified in ms) More...
 
sys_thread_t sys_thread_new (char *name, void(*thread)(void *arg), void *arg, int stacksize, int prio)
 
void sys_timeout (u32_t msecs, sys_timeout_handler h, void *arg)
 Create a one-shot timer (aka timeout). More...
 
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. More...
 

#define SYS_ARCH_DEC (   var,
  val 
)
Value:
do { \
SYS_ARCH_PROTECT(old_level); \
var -= val; \
SYS_ARCH_UNPROTECT(old_level); \
} while(0)
#define SYS_ARCH_DECL_PROTECT(lev)
SYS_LIGHTWEIGHT_PROT define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection for ...
Definition: lwip-1.4.1/src/include/lwip/sys.h:284
#define SYS_ARCH_PROTECT(lev)
Definition: lwip-1.4.1/src/include/lwip/sys.h:285
#define SYS_ARCH_UNPROTECT(lev)
Definition: lwip-1.4.1/src/include/lwip/sys.h:286
int val
Definition: jpeglib.h:957
#define SYS_ARCH_DECL_PROTECT (   lev)

SYS_LIGHTWEIGHT_PROT define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection for certain critical regions during buffer allocation, deallocation and memory allocation and deallocation.

#define SYS_ARCH_GET (   var,
  ret 
)
Value:
do { \
SYS_ARCH_PROTECT(old_level); \
ret = var; \
SYS_ARCH_UNPROTECT(old_level); \
} while(0)
#define SYS_ARCH_DECL_PROTECT(lev)
SYS_LIGHTWEIGHT_PROT define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection for ...
Definition: lwip-1.4.1/src/include/lwip/sys.h:284
#define SYS_ARCH_PROTECT(lev)
Definition: lwip-1.4.1/src/include/lwip/sys.h:285
#define SYS_ARCH_UNPROTECT(lev)
Definition: lwip-1.4.1/src/include/lwip/sys.h:286
#define SYS_ARCH_INC (   var,
  val 
)
Value:
do { \
SYS_ARCH_PROTECT(old_level); \
var += val; \
SYS_ARCH_UNPROTECT(old_level); \
} while(0)
#define SYS_ARCH_DECL_PROTECT(lev)
SYS_LIGHTWEIGHT_PROT define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection for ...
Definition: lwip-1.4.1/src/include/lwip/sys.h:284
#define SYS_ARCH_PROTECT(lev)
Definition: lwip-1.4.1/src/include/lwip/sys.h:285
#define SYS_ARCH_UNPROTECT(lev)
Definition: lwip-1.4.1/src/include/lwip/sys.h:286
int val
Definition: jpeglib.h:957
#define SYS_ARCH_PROTECT (   lev)
#define SYS_ARCH_SET (   var,
  val 
)
Value:
do { \
SYS_ARCH_PROTECT(old_level); \
var = val; \
SYS_ARCH_UNPROTECT(old_level); \
} while(0)
#define SYS_ARCH_DECL_PROTECT(lev)
SYS_LIGHTWEIGHT_PROT define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection for ...
Definition: lwip-1.4.1/src/include/lwip/sys.h:284
#define SYS_ARCH_PROTECT(lev)
Definition: lwip-1.4.1/src/include/lwip/sys.h:285
#define SYS_ARCH_UNPROTECT(lev)
Definition: lwip-1.4.1/src/include/lwip/sys.h:286
int val
Definition: jpeglib.h:957
#define SYS_ARCH_TIMEOUT   0xffffffffUL

Return code for timeouts from sys_arch_mbox_fetch and sys_arch_sem_wait.

#define SYS_ARCH_UNPROTECT (   lev)
#define SYS_MBOX_EMPTY   SYS_ARCH_TIMEOUT
#define sys_mbox_tryfetch (   mbox,
  msg 
)    sys_arch_mbox_tryfetch(mbox, msg)

typedef void(* sys_timeout_handler)(void *arg)

u32_t sys_arch_mbox_fetch ( sys_mbox_t  mbox,
void **  msg,
u32_t  timeout 
)
u32_t sys_arch_mbox_tryfetch ( sys_mbox_t  mbox,
void **  msg 
)
u32_t sys_jiffies ( void  )
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

References sys_timeo::arg, arg, sys_timeo::h, LOCK_TCPIP_CORE, LWIP_DEBUGF, memp_free(), sys_timeo::next, sys_timeouts::next, NULL, sys_arch_mbox_fetch(), SYS_ARCH_TIMEOUT, sys_arch_timeouts(), SYS_DEBUG, sys_timeo::time, and UNLOCK_TCPIP_CORE.

void sys_mbox_free ( sys_mbox_t  mbox)

References SYS_MBOX_NULL, and vQueueDelete().

sys_mbox_t sys_mbox_new ( int  size)

References SYS_MBOX_NULL, and xQueueCreate().

Referenced by tcpip_init().

void sys_mbox_post ( sys_mbox_t  mbox,
void *  msg 
)
err_t sys_mbox_trypost ( sys_mbox_t  mbox,
void *  msg 
)
void sys_msleep ( u32_t  ms)

Sleep for some ms.

Timeouts are NOT processed while sleeping.

Parameters
msnumber of milliseconds to sleep

Timeouts are processed while sleeping.

Parameters
msnumber of milliseconds to sleep

References ERR_OK, sys_arch_sem_wait(), sys_sem_free(), sys_sem_new(), and sys_sem_wait_timeout().

u32_t sys_now ( void  )

Returns the current time in milliseconds.

Returns the current time in milliseconds.

References timer_get_ms().

void sys_sem_free ( sys_sem_t  sem)

References SYS_SEM_NULL, and vQueueDelete().

Referenced by prvlwIPInit(), and sys_msleep().

void sys_sem_signal ( sys_sem_t  sem)

References xSemaphoreGive.

Referenced by mem_malloc(), sswt_handler(), and tcpip_init_done().

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

References sys_timeo::arg, arg, sys_timeo::h, LWIP_DEBUGF, memp_free(), sys_timeo::next, sys_timeouts::next, NULL, sys_arch_sem_wait(), SYS_ARCH_TIMEOUT, sys_arch_timeouts(), SYS_DEBUG, and sys_timeo::time.

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

References sswt_cb::psem, sswt_handler(), sys_sem_wait, sys_timeout(), sys_untimeout(), and sswt_cb::timeflag.

Referenced by sys_msleep().

sys_thread_t sys_thread_new ( char *  name,
void(*)(void *arg thread,
void *  arg,
int  stacksize,
int  prio 
)
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

References sys_timeo::arg, arg, sys_timeo::h, LWIP_ASSERT, LWIP_DEBUGF, memp_malloc(), sys_timeo::next, sys_timeouts::next, NULL, sys_arch_timeouts(), SYS_DEBUG, sys_timeo::time, and U32_F.

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

References sys_timeo::arg, sys_timeo::h, LWIP_ASSERT, memp_free(), sys_timeo::next, sys_timeouts::next, NULL, sys_arch_timeouts(), and sys_timeo::time.