#ifndef __ARCH_SYS_ARCH_H__
#define __ARCH_SYS_ARCH_H__
#include <ubixos/ubthread.h>
#define SYS_MBOX_NULL NULL
#define SYS_SEM_NULL NULL
#define SYS_MBOX_SIZE 100
struct sys_timeouts {
struct sys_timeout *next;
};
struct sys_sem {
unsigned int c;
ubthread_cond_t cond;
ubthread_mutex_t mutex;
};
typedef struct sys_sem sys_sem_t;
struct sys_mbox {
uint32_t head;
uint32_t tail;
ubthread_mutex_t lock;
uint32_t size;
struct sys_sem *empty;
struct sys_sem *full;
void **queue;
};
typedef struct sys_mbox sys_mbox_t;
struct sys_thread {
struct sys_thread *next;
struct sys_timeouts timeouts;
kTask_t *ubthread;
char name[128];
};
typedef struct sys_thread * sys_thread_t;
//void sys_thread_new(void (*)(void), void *);
#endif