Loading...
Searching...
No Matches
sys_arch.h File Reference

OS abstraction layer. More...

Detailed Description

#include <stdbool.h>
#include <stdint.h>
#include "cib.h"
#include "sched.h"
#include "mbox.h"
#include "mutex.h"
#include "random.h"
#include "sema.h"
+ Include dependency graph for sys_arch.h:

Go to the source code of this file.

Data Structures

struct  sys_mbox_t
 Platform specific mailbox type. More...
 

Macros

#define LWIP_COMPAT_MUTEX   (0)
 System configuration.
 

Typedefs

typedef kernel_pid_t sys_thread_t
 Platform specific thread type.
 

Variables

kernel_pid_t lwip_tcpip_thread
 PID of the lwIP TCP/IP thread.
 

Critical sections protection definitions

See also
https://www.nongnu.org/lwip/2_1_x/group__sys__prot.html
#define SYS_ARCH_PROTECT(x)   mutex_lock(&x)
 
#define SYS_ARCH_UNPROTECT(x)   mutex_unlock(&x)
 
#define SYS_ARCH_DECL_PROTECT(x)   mutex_t x = MUTEX_INIT
 

Semaphores definitions

See also
https://www.nongnu.org/lwip/2_1_x/group__sys__sem.html
#define sys_sem_valid(sem)   (sys_sem_valid(sem))
 
#define sys_sem_set_invalid(sem)
 
typedef sema_t sys_sem_t
 Platform specific semaphore type.
 
static bool sys_sem_valid (sys_sem_t *sem)
 

Mutexes definitions

See also
https://www.nongnu.org/lwip/2_1_x/group__sys__mutex.html
#define sys_mutex_valid(mutex)   (sys_mutex_valid(mutex))
 
#define sys_mutex_set_invalid(mutex)
 
typedef mutex_t sys_mutex_t
 Platform specific mutex type.
 
static bool sys_mutex_valid (sys_mutex_t *mutex)
 

Mailboxes OS abstraction layer definitions

See also
https://www.nongnu.org/lwip/2_1_x/group__sys__mbox.html
#define SYS_MBOX_SIZE   (8)
 
#define sys_mbox_valid(mbox)   (sys_mbox_valid(mbox))
 
#define sys_mbox_set_invalid(mbox)   (sys_mbox_set_invalid(mbox))
 
static bool sys_mbox_valid (sys_mbox_t *mbox)
 
static void sys_mbox_set_invalid (sys_mbox_t *mbox)
 

Functions for locking/unlocking core to assure thread safety.

#define LOCK_TCPIP_CORE()   sys_lock_tcpip_core()
 
#define UNLOCK_TCPIP_CORE()   sys_unlock_tcpip_core()
 
void sys_lock_tcpip_core (void)
 
void sys_unlock_tcpip_core (void)