Adapted to Lora Semtech + Nucleo
Dependents: LoRaWAN-lmic-app LoRaWAN-lmic-app LoRaWAN-test-10secs LoRaPersonalizedDeviceForEverynet ... more
Fork of lwip_ppp_ethernet by
Diff: arch/sys_arch.h
- Revision:
- 0:8e01dca41002
diff -r 000000000000 -r 8e01dca41002 arch/sys_arch.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/arch/sys_arch.h Thu May 24 15:53:48 2012 +0000 @@ -0,0 +1,76 @@ +/* sys_arch.h */ +/* +Copyright (C) 2012 ARM Limited. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +#ifndef SYS_ARCH_H_ +#define SYS_ARCH_H_ + +//Architecture-specific configuration +#define LWIP_SEMAPHORES_COUNT 8 +#define LWIP_MUTEXES_COUNT 8 +#define LWIP_MAILBOXES_COUNT 8 + +typedef u32_t sys_prot_t; + +struct sys_mutex +{ + /*Mutex**/ void* pMtx; + int valid; +}; +typedef struct sys_mutex sys_mutex_t; + +struct sys_sem +{ + /*Semaphore**/ void* pSphre; + int valid; +}; +typedef struct sys_sem sys_sem_t; + +#if 0 +struct sys_mbox +{ + /*Queue<void>**/ void* pQueue; + int valid; +}; +#else +struct sys_mbox { + volatile int first, last; + void * volatile msgs[8]; + struct sys_sem not_empty; + struct sys_sem not_full; + struct sys_sem mutex; + volatile int wait_send; + volatile int valid; +}; +#endif + + +typedef struct sys_mbox sys_mbox_t; + +typedef void/*struct sys_thread*/ sys_thread_t; + +#define SYS_MBOX_NULL NULL +#define SYS_SEM_NULL NULL + +err_t sys_sem_new_mul(sys_sem_t *pSem, u8_t size, u8_t count); + +#endif /* SYS_ARCH_H_ */