- Fixed memory management.
[planlOS.git] / system / include / lwip / arch / sys_arch.h
blobe5cd7654ecef9a91cec9477520b350f76b28de8e
2 #ifndef LWIP_ARCH_SYS_ARCH_H_INCLUDED
3 #define LWIP_ARCH_SYS_ARCH_H_INCLUDED
5 #include "ke/spinlock.h"
6 #include "ke/thread.h"
7 #include "ke/level.h"
9 typedef KeSpinlock *sys_sem_t;
11 #define SYS_SEM_NULL 0
13 /*sys_sem_t sys_sem_new(u8_t count);
14 void sys_sem_free(sys_sem_t sem);
15 void sys_sem_signal(sys_sem_t sem);
16 u32_t sys_arch_sem_wait(sys_sem_t sem, u32_t timeout);*/
18 typedef struct sys_mbox_entry_t
20 void *data;
21 struct sys_mbox_entry_t *next;
22 } sys_mbox_entry_t;
24 struct sys_mbox
26 sys_mbox_entry_t *firstentry;
27 KeSpinlock lock;
29 typedef struct sys_mbox *sys_mbox_t;
31 #define SYS_MBOX_NULL 0
33 /*sys_mbox_t sys_mbox_new(void);
34 void sys_mbox_free(sys_mbox_t mbox);
35 void sys_mbox_post(sys_mbox_t mbox, void *msg);
36 u32_t sys_arch_mbox_fetch(sys_mbox_t mbox, void **msg, u32_t timeout);
37 u32_t sys_arch_mbox_tryfetch(sys_mbox_t mbox, void **msg);*/
39 struct sys_thread
41 KeThread *thread;
42 char *name;
43 struct sys_timeouts timeouts;
46 typedef struct sys_thread *sys_thread_t;
48 typedef KeExecLevel sys_prot_t;
50 sys_prot_t sys_arch_protect(void);
51 void sys_arch_unprotect(sys_prot_t p);
53 #endif