Newer
Older
ubixos / src / sys / include / net / arch / sys_arch.h
@Charlie Root Charlie Root on 19 Dec 2017 728 bytes Sync
#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 {
  uInt16 first, last;
  void *msgs[SYS_MBOX_SIZE];
  struct sys_sem *mail;
  struct sys_sem *mutex;
};
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