提交 0410531d 创建 作者: Silas Boyd-Wickizer's avatar Silas Boyd-Wickizer

Start of sys_arch.c for xv6.

上级 2b29eaa9
#ifndef LWIP_ARCH_SYS_ARCH_H
#define LWIP_ARCH_SYS_ARCH_H
typedef int sys_sem_t;
typedef int sys_mbox_t;
#include "spinlock.h"
#include "condvar.h"
typedef int sys_thread_t;
typedef int sys_mutex_t;
typedef struct sys_mbox {
#define MBOXSLOTS 32
void *msg[MBOXSLOTS];
} sys_mbox_t;
typedef struct sys_sem {
struct spinlock s;
struct condvar c;
u8 count;
} sys_sem_t;
typedef struct sys_mutex {
struct spinlock s;
} sys_mutex_t;
#define SYS_MBOX_NULL (-1)
#define SYS_SEM_NULL (-1)
......
#include "lwip/sys.h"
#include "arch/sys_arch.h"
#include "kernel.h"
#define DIE panic(__func__)
......@@ -8,7 +10,12 @@
err_t
sys_mbox_new(sys_mbox_t *mbox, int size)
{
DIE;
if (size > MBOXSLOTS) {
cprintf("sys_mbox_new: size %u\n", size);
return ERR_MEM;
}
return ERR_OK;
}
void
......@@ -59,7 +66,10 @@ sys_arch_mbox_tryfetch(sys_mbox_t *mbox, void **msg)
err_t
sys_sem_new(sys_sem_t *sem, u8_t count)
{
DIE;
initlock(&sem->s, "lwIP sem");
initcondvar(&sem->c, "lwIP condvar");
sem->count = count;
return ERR_OK;
}
void
......@@ -98,7 +108,8 @@ sys_arch_sem_wait(sys_sem_t *sem, u32_t timeout)
err_t
sys_mutex_new(sys_mutex_t *mutex)
{
DIE;
initlock(&mutex->s, "lwIP mutex");
return ERR_OK;
}
void
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论