#include <ubixos/types.h>
#include <ubixos/sched.h>
#include <ubixos/ubthread.h>
#include <ubixos/kpanic.h>
#include <lib/kprintf.h>
#include <lib/kmalloc.h>
#include "net/debug.h"
#include "net/sys.h"
#include "net/opt.h"
#include "net/stats.h"
#include <ubixos/spinlock.h>
Go to the source code of this file.
| Data Structures | |
| struct | sys_mbox | 
| struct | sys_mbox_msg | 
| struct | sys_sem | 
| struct | sys_thread | 
| struct | thread_start_param | 
| Defines | |
| #define | SYS_MBOX_SIZE 100 | 
| #define | UMAX(a, b) ((a) > (b) ? (a) : (b)) | 
| Functions | |
| static uInt16 | cond_wait (ubthread_cond_t *cond, ubthread_mutex_t *mutex, uInt16 timeout) | 
| static struct sys_thread * | current_thread (void) | 
| uInt16 | sys_arch_mbox_fetch (struct sys_mbox *mbox, void **msg, uInt16 timeout) | 
| uInt16 | sys_arch_sem_wait (struct sys_sem *sem, uInt16 timeout) | 
| sys_timeouts * | sys_arch_timeouts (void) | 
| void | sys_init () | 
| void | sys_mbox_free (struct sys_mbox *mbox) | 
| sys_mbox * | sys_mbox_new () | 
| void | sys_mbox_post (struct sys_mbox *mbox, void *msg) | 
| void | sys_sem_free (struct sys_sem *sem) | 
| static void | sys_sem_free_ (struct sys_sem *sem) | 
| sys_sem * | sys_sem_new (uInt8 count) | 
| static struct sys_sem * | sys_sem_new_ (uInt8 count) | 
| void | sys_sem_signal (struct sys_sem *sem) | 
| void | sys_thread_new (void(*function)(void), void *arg) | 
| unsigned long | sys_unix_now () | 
| Variables | |
| static spinLock_t | netThreadSpinlock = SPIN_LOCK_INITIALIZER | 
| static struct timeval | starttime | 
| static struct sys_thread * | threads = 0x0 | 
| #define SYS_MBOX_SIZE 100 | 
Definition at line 106 of file sys_arch.c.
Referenced by sys_arch_mbox_fetch(), and sys_mbox_post().
| #define UMAX | ( | a, | |||
| b | ) | ((a) > (b) ? (a) : (b)) | 
Definition at line 96 of file sys_arch.c.
| static uInt16 cond_wait | ( | ubthread_cond_t * | cond, | |
| ubthread_mutex_t * | mutex, | |||
| uInt16 | timeout | |||
| ) |  [static] | 
Definition at line 311 of file sys_arch.c.
References ETIMEDOUT, gettimeofday(), mutex, timespec::tv_nsec, timespec::tv_sec, timeval::tv_sec, timeval::tv_usec, ubthread_cond_timedwait(), and ubthread_cond_wait().
Referenced by sys_arch_sem_wait().
| static struct sys_thread* current_thread | ( | void | ) |  [static] | 
Definition at line 135 of file sys_arch.c.
References netThreadSpinlock, sys_thread::next, NULL, spinLock(), spinUnlock(), threads, sys_thread::ubthread, and ubthread_self().
Referenced by sys_arch_timeouts().
Definition at line 254 of file sys_arch.c.
References sys_mbox::first, sys_mbox::last, sys_mbox::mail, mbox, sys_mbox::msgs, sys_mbox::mutex, NULL, sys_arch_sem_wait(), SYS_MBOX_SIZE, and sys_sem_signal().
Definition at line 351 of file sys_arch.c.
References sys_sem::c, sys_sem::cond, cond_wait(), sys_sem::mutex, ubthread_mutex_lock(), and ubthread_mutex_unlock().
| struct sys_timeouts* sys_arch_timeouts | ( | void | ) | 
| void sys_init | ( | void | ) | 
Definition at line 404 of file sys_arch.c.
References gettimeofday(), and starttime.
Referenced by net_init().
| void sys_mbox_free | ( | struct sys_mbox * | mbox | ) | 
Definition at line 215 of file sys_arch.c.
References kfree(), sys_mbox::mail, mbox, sys_mbox::mutex, NULL, SYS_MBOX_NULL, sys_sem_free_(), and sys_sem_wait().
| struct sys_mbox* sys_mbox_new | ( | void | ) | 
Definition at line 204 of file sys_arch.c.
References sys_mbox::first, kmalloc(), sys_mbox::last, sys_mbox::mail, mbox, sys_mbox::mutex, and sys_sem_new_().
Referenced by accept_function(), do_listen(), netconn_bind(), netconn_connect(), netconn_listen(), netconn_new(), and tcpip_init().
| void sys_mbox_post | ( | struct sys_mbox * | mbox, | |
| void * | msg | |||
| ) | 
Definition at line 227 of file sys_arch.c.
References sys_mbox::first, sys_mbox::last, sys_mbox::mail, mbox, sys_mbox::msgs, sys_mbox::mutex, SYS_MBOX_SIZE, sys_sem_signal(), and sys_sem_wait().
| void sys_sem_free | ( | struct sys_sem * | sem | ) | 
| static void sys_sem_free_ | ( | struct sys_sem * | sem | ) |  [static] | 
Definition at line 385 of file sys_arch.c.
References sys_sem::cond, kfree(), sys_sem::mutex, ubthread_cond_destroy(), and ubthread_mutex_destroy().
Referenced by sys_mbox_free(), and sys_sem_free().
Definition at line 295 of file sys_arch.c.
References sys_sem_new_().
Referenced by accept_function(), netconn_write(), and netMainThread().
Definition at line 299 of file sys_arch.c.
References sys_sem::c, sys_sem::cond, kmalloc(), sys_sem::mutex, NULL, ubthread_cond_init(), and ubthread_mutex_init().
Referenced by sys_mbox_new(), and sys_sem_new().
| void sys_sem_signal | ( | struct sys_sem * | sem | ) | 
Definition at line 370 of file sys_arch.c.
References sys_sem::c, sys_sem::cond, sys_sem::mutex, ubthread_cond_signal(), ubthread_mutex_lock(), and ubthread_mutex_unlock().
| void sys_thread_new | ( | void(*)(void) | function, | |
| void * | arg | |||
| ) | 
Definition at line 172 of file sys_arch.c.
References kmalloc(), kpanic(), kprintf(), netThreadSpinlock, sys_timeouts::next, sys_thread::next, NULL, spinLock(), spinUnlock(), threads, sys_thread::timeouts, sys_thread::ubthread, and ubthread_create().
Referenced by bot_init(), low_level_init(), net_init(), shell_init(), tcpip_init(), and udpecho_init().
| unsigned long sys_unix_now | ( | ) | 
Definition at line 391 of file sys_arch.c.
References gettimeofday(), starttime, timeval::tv_sec, and timeval::tv_usec.
| spinLock_t netThreadSpinlock = SPIN_LOCK_INITIALIZER  [static] | 
| struct sys_thread* threads = 0x0  [static] | 
 1.4.7
 1.4.7