From 5652c7d473ccb8f15d1801750679f8775976fe88 Mon Sep 17 00:00:00 2001 From: fbernon Date: Sat, 5 Jan 2008 21:13:46 +0000 Subject: [PATCH] Win32 port: changes to adapt to sys_mbox api (just to be able to build). --- ports/win32/sys_arch.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/ports/win32/sys_arch.c b/ports/win32/sys_arch.c index fbbf5e1..739de10 100644 --- a/ports/win32/sys_arch.c +++ b/ports/win32/sys_arch.c @@ -253,9 +253,12 @@ sys_thread_t sys_thread_new(char *name, void (* function)(void *arg), void *arg, return 0; } -sys_mbox_t sys_mbox_new() +sys_mbox_t sys_mbox_new(int size) { struct lwip_mbox *new_mbox; + + LWIP_UNUSED_ARG(size); + new_mbox = (struct lwip_mbox*)malloc(sizeof(struct lwip_mbox)); LWIP_ASSERT("new_mbox != NULL", new_mbox != NULL); if(new_mbox == NULL) { @@ -326,6 +329,30 @@ void sys_mbox_post(sys_mbox_t q, void *msg) SYS_ARCH_UNPROTECT(lev); } +err_t sys_mbox_trypost(sys_mbox_t q, void *msg) +{ + DWORD ret; + SYS_ARCH_DECL_PROTECT(lev); + + /* parameter check */ + LWIP_ASSERT("sys_mbox_free ", q != SYS_MBOX_NULL ); + LWIP_ASSERT("q->sem != NULL", q->sem != NULL); + LWIP_ASSERT("q->sem != INVALID_HANDLE_VALUE", q->sem != INVALID_HANDLE_VALUE); + + SYS_ARCH_PROTECT(lev); + q->q_mem[q->head] = msg; + (q->head)++; + if (q->head >= MAX_QUEUE_ENTRIES) { + q->head = 0; + } + LWIP_ASSERT("mbox is full!", q->head != q->tail); + ret = ReleaseSemaphore(q->sem, 1, 0); + LWIP_ASSERT("Error releasing sem", ret != 0); + + SYS_ARCH_UNPROTECT(lev); + return ERR_OK; +} + u32_t sys_arch_mbox_fetch(sys_mbox_t q, void **msg, u32_t timeout) { DWORD ret;