N-sim
Emulation and simulation of
Wireless Sensor Networks



   Home


   Project Page


   Download


   CVS



   Installation


   Configuration


   Plug-ins




 Hosted by
SourceForge.net Logo

/home/brennan/n-sim/OrbisQuartus/server/l4/patches/lwip-ore/sys_arch.c File Reference

#include <string.h>
#include <sys/time.h>
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>
#include <l4/thread/thread.h>
#include <l4/lock/lock.h>
#include <l4/semaphore/semaphore.h>
#include "lwip/sys.h"
#include "lwip/opt.h"
#include "lwip/stats.h"
#include "lwip/debug.h"

Go to the source code of this file.

Classes

struct  sys_mbox_msg
struct  sys_mbox
struct  sys_sem
struct  sys_thread

Defines

#define UMAX(a, b)   ((a) > (b) ? (a) : (b))
#define SYS_MBOX_SIZE   128
#define MAX_JIFFY_OFFSET   ((~0UL >> 1)-1)
#define HZ   100

Functions

sys_prot_t sys_arch_protect (void)
void sys_arch_unprotect (sys_prot_t pval)
unsigned long sys_unix_now (void)
sys_thread_t sys_thread_new (void(*function)(void *arg), void *arg, int prio)
sys_mboxsys_mbox_new ()
void sys_mbox_free (struct sys_mbox *mbox)
void sys_mbox_post (struct sys_mbox *mbox, void *msg)
u32_t sys_arch_mbox_fetch (struct sys_mbox *mbox, void **msg, u32_t timeout)
sys_semsys_sem_new (u8_t count)
u32_t sys_arch_sem_wait (struct sys_sem *sem, u32_t timeout)
void sys_sem_signal (struct sys_sem *sem)
void sys_sem_free (struct sys_sem *sem)
void sys_init ()
sys_timeouts * sys_arch_timeouts (void)
unsigned long sys_jiffies (void)


Define Documentation

#define HZ   100
 

Definition at line 503 of file sys_arch.c.

Referenced by sys_jiffies().

#define MAX_JIFFY_OFFSET   ((~0UL >> 1)-1)
 

Definition at line 499 of file sys_arch.c.

Referenced by sys_jiffies().

#define SYS_MBOX_SIZE   128
 

Definition at line 63 of file sys_arch.c.

Referenced by sys_arch_mbox_fetch(), and sys_mbox_post().

#define UMAX a,
 )     ((a) > (b) ? (a) : (b))
 

Definition at line 53 of file sys_arch.c.


Function Documentation

u32_t sys_arch_mbox_fetch struct sys_mbox mbox,
void **  msg,
u32_t  timeout
 

Definition at line 243 of file sys_arch.c.

References sys_mbox::first, sys_mbox::last, sys_mbox::mail, sys_mbox::mutex, sys_arch_sem_wait(), SYS_MBOX_SIZE, sys_sem_signal(), and sys_mbox::wait_send.

sys_prot_t sys_arch_protect void   ) 
 

sys_prot_t sys_arch_protect(void)

This optional function does a "fast" critical region protection and returns the previous protection level. This function is only called during very short critical regions. An embedded system which supports ISR-based drivers might want to implement this function by disabling interrupts. Task-based systems might want to implement this by using a mutex or disabling tasking. This function should support recursive calls from the same task or interrupt. In other words, sys_arch_protect() could be called while already protected. In that case the return value indicates that it is already protected.

sys_arch_protect() is only required if your port is supporting an operating system.

Definition at line 457 of file sys_arch.c.

u32_t sys_arch_sem_wait struct sys_sem sem,
u32_t  timeout
 

Definition at line 354 of file sys_arch.c.

References sys_sem::c, sys_sem::cond, and sys_sem::mutex.

Referenced by sys_arch_mbox_fetch(), and sys_mbox_post().

struct sys_timeouts* sys_arch_timeouts void   ) 
 

Definition at line 434 of file sys_arch.c.

References sys_thread::thread.

void sys_arch_unprotect sys_prot_t  pval  ) 
 

void sys_arch_unprotect(sys_prot_t pval)

This optional function does a "fast" set of critical region protection to the value specified by pval. See the documentation for sys_arch_protect() for more information. This function is only required if your port is supporting an operating system.

Definition at line 484 of file sys_arch.c.

void sys_init  ) 
 

Definition at line 427 of file sys_arch.c.

Referenced by lwip_ore_init().

unsigned long sys_jiffies void   ) 
 

Definition at line 507 of file sys_arch.c.

References HZ, and MAX_JIFFY_OFFSET.

void sys_mbox_free struct sys_mbox mbox  ) 
 

Definition at line 191 of file sys_arch.c.

References sys_mbox::mail, sys_mbox::mutex, and SYS_MBOX_NULL.

struct sys_mbox* sys_mbox_new  ) 
 

Definition at line 169 of file sys_arch.c.

References sys_mbox::first, sys_mbox::last, sys_mbox::mail, sys_mbox::mutex, and sys_mbox::wait_send.

void sys_mbox_post struct sys_mbox mbox,
void *  msg
 

Definition at line 209 of file sys_arch.c.

References sys_mbox::first, sys_mbox::mutex, sys_arch_sem_wait(), SYS_MBOX_SIZE, and sys_sem_signal().

void sys_sem_free struct sys_sem sem  ) 
 

Definition at line 393 of file sys_arch.c.

References SYS_SEM_NULL.

Referenced by lwip_ore_init().

struct sys_sem* sys_sem_new u8_t  count  ) 
 

Definition at line 289 of file sys_arch.c.

Referenced by lwip_ore_init().

void sys_sem_signal struct sys_sem sem  ) 
 

Definition at line 379 of file sys_arch.c.

References sys_sem::c, sys_sem::cond, and sys_sem::mutex.

Referenced by sys_arch_mbox_fetch(), and sys_mbox_post().

sys_thread_t sys_thread_new void(*)(void *arg)  function,
void *  arg,
int  prio
 

Definition at line 151 of file sys_arch.c.

unsigned long sys_unix_now void   ) 
 

Definition at line 411 of file sys_arch.c.


© 2007, Los Alamos National Security, LLC.