| 33 |
#define __ARCH_SYS_ARCH_H__ |
#define __ARCH_SYS_ARCH_H__ |
| 34 |
|
|
| 35 |
/* HANDLE is used for sys_sem_t but we won't include windows.h */ |
/* HANDLE is used for sys_sem_t but we won't include windows.h */ |
| 36 |
typedef void* sys_sem_t; |
struct _sys_sem { |
| 37 |
|
void *sem; |
| 38 |
|
}; |
| 39 |
|
typedef struct _sys_sem sys_sem_t; |
| 40 |
#define SYS_SEM_NULL NULL |
#define SYS_SEM_NULL NULL |
| 41 |
|
#define sys_sem_valid(sema) (((sema) != NULL) && ((sema)->sem != NULL) && ((sema)->sem != (void*)-1)) |
| 42 |
|
#define sys_sem_set_invalid(sema) ((sema)->sem = NULL) |
| 43 |
|
|
| 44 |
struct lwip_mbox; |
/* let sys.h use binary semaphores for mutexes */ |
| 45 |
typedef struct lwip_mbox* sys_mbox_t; |
#define LWIP_COMPAT_MUTEX 1 |
| 46 |
|
|
| 47 |
|
#ifndef MAX_QUEUE_ENTRIES |
| 48 |
|
#define MAX_QUEUE_ENTRIES 100 |
| 49 |
|
#endif |
| 50 |
|
struct lwip_mbox { |
| 51 |
|
void* sem; |
| 52 |
|
void* q_mem[MAX_QUEUE_ENTRIES]; |
| 53 |
|
u32_t head, tail; |
| 54 |
|
}; |
| 55 |
|
typedef struct lwip_mbox sys_mbox_t; |
| 56 |
#define SYS_MBOX_NULL NULL |
#define SYS_MBOX_NULL NULL |
| 57 |
|
#define sys_mbox_valid(mbox) ((mbox != NULL) && ((mbox)->sem != NULL) && ((mbox)->sem != (void*)-1)) |
| 58 |
|
#define sys_mbox_set_invalid(mbox) ((mbox)->sem = NULL) |
| 59 |
|
|
| 60 |
/* DWORD (thread id) is used for sys_thread_t but we won't include windows.h */ |
/* DWORD (thread id) is used for sys_thread_t but we won't include windows.h */ |
| 61 |
typedef u32_t sys_thread_t; |
typedef u32_t sys_thread_t; |
| 62 |
|
|
|
/* sys_jiffies */ |
|
|
#define sys_jiffies() sys_now() |
|
|
|
|
| 63 |
#endif /* __ARCH_SYS_ARCH_H__ */ |
#endif /* __ARCH_SYS_ARCH_H__ */ |
| 64 |
|
|