lwip operating system abstraction layer implementation based on CMSIS-RTOS
Dependents: LwIPNetworking NetServicesMin EthernetInterface EthernetInterface_RSF ... more
Revision 8:742ae4a0ca3f, committed 2013-03-01
- Comitter:
- emilmont
- Date:
- Fri Mar 01 15:31:22 2013 +0000
- Parent:
- 7:b409691fb352
- Child:
- 9:d7ad3f3ee934
- Commit message:
- editor whitespaces
Changed in this revision
--- a/arch/cc.h Fri Jul 27 10:17:19 2012 +0000
+++ b/arch/cc.h Fri Mar 01 15:31:22 2013 +0000
@@ -1,107 +1,107 @@
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __CC_H__
-#define __CC_H__
-
-#include <stdint.h>
-
-/* Types based on stdint.h */
-typedef uint8_t u8_t;
-typedef int8_t s8_t;
-typedef uint16_t u16_t;
-typedef int16_t s16_t;
-typedef uint32_t u32_t;
-typedef int32_t s32_t;
-typedef uintptr_t mem_ptr_t;
-
-/* Define (sn)printf formatters for these lwIP types */
-#define U16_F "hu"
-#define S16_F "hd"
-#define X16_F "hx"
-#define U32_F "lu"
-#define S32_F "ld"
-#define X32_F "lx"
-#define SZT_F "uz"
-
-/* ARM/LPC17xx is little endian only */
-#define BYTE_ORDER LITTLE_ENDIAN
-
-/* Use LWIP error codes */
-#define LWIP_PROVIDE_ERRNO
-
-#if defined(__arm__) && defined(__ARMCC_VERSION)
- /* Keil uVision4 tools */
- #define PACK_STRUCT_BEGIN __packed
- #define PACK_STRUCT_STRUCT
- #define PACK_STRUCT_END
- #define PACK_STRUCT_FIELD(fld) fld
- #define ALIGNED(n) __align(n)
-#elif defined (__IAR_SYSTEMS_ICC__)
- /* IAR Embedded Workbench tools */
- #define PACK_STRUCT_BEGIN __packed
- #define PACK_STRUCT_STRUCT
- #define PACK_STRUCT_END
- #define PACK_STRUCT_FIELD(fld) fld
-// #define PACK_STRUCT_USE_INCLUDES
- #error NEEDS ALIGNED // FIXME TBD
-#else
- /* GCC tools (CodeSourcery) */
- #define PACK_STRUCT_BEGIN
- #define PACK_STRUCT_STRUCT __attribute__ ((__packed__))
- #define PACK_STRUCT_END
- #define PACK_STRUCT_FIELD(fld) fld
- #define ALIGNED(n) __attribute__((aligned (n)))
- #define ALIGNED(n) __align(n)
-#endif
-
-/* Used with IP headers only */
-#define LWIP_CHKSUM_ALGORITHM 1
-
-#ifdef LWIP_DEBUG
-
-#include "stdio.h"
-
-void assert_printf(char *msg, int line, char *file);
-
-/* Plaform specific diagnostic output */
-#define LWIP_PLATFORM_DIAG(vars) printf vars
-#define LWIP_PLATFORM_ASSERT(flag) { assert_printf((flag), __LINE__, __FILE__); }
-#else
-#define LWIP_PLATFORM_DIAG(msg) { ; }
-#define LWIP_PLATFORM_ASSERT(flag) { ; }
-#endif
-
-#include "cmsis.h"
-#define LWIP_PLATFORM_HTONS(x) __REV16(x)
-#define LWIP_PLATFORM_HTONL(x) __REV(x)
-
-#endif /* __CC_H__ */
+/*
+ * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+ * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ * This file is part of the lwIP TCP/IP stack.
+ *
+ * Author: Adam Dunkels <adam@sics.se>
+ *
+ */
+#ifndef __CC_H__
+#define __CC_H__
+
+#include <stdint.h>
+
+/* Types based on stdint.h */
+typedef uint8_t u8_t;
+typedef int8_t s8_t;
+typedef uint16_t u16_t;
+typedef int16_t s16_t;
+typedef uint32_t u32_t;
+typedef int32_t s32_t;
+typedef uintptr_t mem_ptr_t;
+
+/* Define (sn)printf formatters for these lwIP types */
+#define U16_F "hu"
+#define S16_F "hd"
+#define X16_F "hx"
+#define U32_F "lu"
+#define S32_F "ld"
+#define X32_F "lx"
+#define SZT_F "uz"
+
+/* ARM/LPC17xx is little endian only */
+#define BYTE_ORDER LITTLE_ENDIAN
+
+/* Use LWIP error codes */
+#define LWIP_PROVIDE_ERRNO
+
+#if defined(__arm__) && defined(__ARMCC_VERSION)
+ /* Keil uVision4 tools */
+ #define PACK_STRUCT_BEGIN __packed
+ #define PACK_STRUCT_STRUCT
+ #define PACK_STRUCT_END
+ #define PACK_STRUCT_FIELD(fld) fld
+ #define ALIGNED(n) __align(n)
+#elif defined (__IAR_SYSTEMS_ICC__)
+ /* IAR Embedded Workbench tools */
+ #define PACK_STRUCT_BEGIN __packed
+ #define PACK_STRUCT_STRUCT
+ #define PACK_STRUCT_END
+ #define PACK_STRUCT_FIELD(fld) fld
+// #define PACK_STRUCT_USE_INCLUDES
+ #error NEEDS ALIGNED // FIXME TBD
+#else
+ /* GCC tools (CodeSourcery) */
+ #define PACK_STRUCT_BEGIN
+ #define PACK_STRUCT_STRUCT __attribute__ ((__packed__))
+ #define PACK_STRUCT_END
+ #define PACK_STRUCT_FIELD(fld) fld
+ #define ALIGNED(n) __attribute__((aligned (n)))
+ #define ALIGNED(n) __align(n)
+#endif
+
+/* Used with IP headers only */
+#define LWIP_CHKSUM_ALGORITHM 1
+
+#ifdef LWIP_DEBUG
+
+#include "stdio.h"
+
+void assert_printf(char *msg, int line, char *file);
+
+/* Plaform specific diagnostic output */
+#define LWIP_PLATFORM_DIAG(vars) printf vars
+#define LWIP_PLATFORM_ASSERT(flag) { assert_printf((flag), __LINE__, __FILE__); }
+#else
+#define LWIP_PLATFORM_DIAG(msg) { ; }
+#define LWIP_PLATFORM_ASSERT(flag) { ; }
+#endif
+
+#include "cmsis.h"
+#define LWIP_PLATFORM_HTONS(x) __REV16(x)
+#define LWIP_PLATFORM_HTONL(x) __REV(x)
+
+#endif /* __CC_H__ */
--- a/arch/perf.h Fri Jul 27 10:17:19 2012 +0000 +++ b/arch/perf.h Fri Mar 01 15:31:22 2013 +0000 @@ -1,38 +1,38 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - * OF SUCH DAMAGE. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels <adam@sics.se> - * - */ -#ifndef __PERF_H__ -#define __PERF_H__ - -#define PERF_START /* null definition */ -#define PERF_STOP(x) /* null definition */ - -#endif /* __PERF_H__ */ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels <adam@sics.se> + * + */ +#ifndef __PERF_H__ +#define __PERF_H__ + +#define PERF_START /* null definition */ +#define PERF_STOP(x) /* null definition */ + +#endif /* __PERF_H__ */
--- a/arch/sys_arch.h Fri Jul 27 10:17:19 2012 +0000
+++ b/arch/sys_arch.h Fri Mar 01 15:31:22 2013 +0000
@@ -1,120 +1,120 @@
-/* Copyright (C) 2012 mbed.org, MIT License
- *
- * 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 __ARCH_SYS_ARCH_H__
-#define __ARCH_SYS_ARCH_H__
-
-#include "lwip/opt.h"
-
-#if NO_SYS == 0
-#include "cmsis_os.h"
-
-// === SEMAPHORE ===
-typedef struct {
- osSemaphoreId id;
- osSemaphoreDef_t def;
-#ifdef CMSIS_OS_RTX
- uint32_t data[2];
-#endif
-} sys_sem_t;
-
-#define sys_sem_valid(x) (((*x).id == NULL) ? 0 : 1)
-#define sys_sem_set_invalid(x) ( (*x).id = NULL)
-
-// === MUTEX ===
-typedef struct {
- osMutexId id;
- osMutexDef_t def;
-#ifdef CMSIS_OS_RTX
- int32_t data[3];
-#endif
-} sys_mutex_t;
-
-// === MAIL BOX ===
-#define MB_SIZE 8
-
-typedef struct {
- osMessageQId id;
- osMessageQDef_t def;
-#ifdef CMSIS_OS_RTX
- uint32_t queue[MB_SIZE];
-#endif
-} sys_mbox_t;
-
-#define SYS_MBOX_NULL ((uint32_t) NULL)
-#define sys_mbox_valid(x) (((*x).id == NULL) ? 0 : 1 )
-#define sys_mbox_set_invalid(x) ( (*x).id = NULL )
-
-#if ((DEFAULT_RAW_RECVMBOX_SIZE) > (MB_SIZE)) || \
- ((DEFAULT_UDP_RECVMBOX_SIZE) > (MB_SIZE)) || \
- ((DEFAULT_TCP_RECVMBOX_SIZE) > (MB_SIZE)) || \
- ((DEFAULT_ACCEPTMBOX_SIZE) > (MB_SIZE)) || \
- ((TCPIP_MBOX_SIZE) > (MB_SIZE))
-# error Mailbox size not supported
-#endif
-
-// === THREAD ===
-typedef struct {
- osThreadId id;
- osThreadDef_t def;
-} sys_thread_data_t;
-typedef sys_thread_data_t* sys_thread_t;
-
-#define SYS_THREAD_POOL_N 6
-#define SYS_DEFAULT_THREAD_STACK_DEPTH DEFAULT_STACK_SIZE
-
-// === PROTECTION ===
-typedef int sys_prot_t;
-
-#else
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \brief Init systick to 1ms rate
- *
- * This init the systick to 1ms rate. This function is only used in standalone
- * systems.
- */
-void SysTick_Init(void);
-
-
-/** \brief Get the current systick time in milliSeconds
- *
- * Returns the current systick time in milliSeconds. This function is only
- * used in standalone systems.
- *
- * /returns current systick time in milliSeconds
- */
-uint32_t SysTick_GetMS(void);
-
-/** \brief Delay for the specified number of milliSeconds
- *
- * For standalone systems. This function will block for the specified
- * number of milliSconds. For RTOS based systems, this function will delay
- * the task by the specified number of milliSeconds.
- *
- * \param[in] ms Time in milliSeconds to delay
- */
-void osDelay(uint32_t ms);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-#endif /* __ARCH_SYS_ARCH_H__ */
+/* Copyright (C) 2012 mbed.org, MIT License
+ *
+ * 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 __ARCH_SYS_ARCH_H__
+#define __ARCH_SYS_ARCH_H__
+
+#include "lwip/opt.h"
+
+#if NO_SYS == 0
+#include "cmsis_os.h"
+
+// === SEMAPHORE ===
+typedef struct {
+ osSemaphoreId id;
+ osSemaphoreDef_t def;
+#ifdef CMSIS_OS_RTX
+ uint32_t data[2];
+#endif
+} sys_sem_t;
+
+#define sys_sem_valid(x) (((*x).id == NULL) ? 0 : 1)
+#define sys_sem_set_invalid(x) ( (*x).id = NULL)
+
+// === MUTEX ===
+typedef struct {
+ osMutexId id;
+ osMutexDef_t def;
+#ifdef CMSIS_OS_RTX
+ int32_t data[3];
+#endif
+} sys_mutex_t;
+
+// === MAIL BOX ===
+#define MB_SIZE 8
+
+typedef struct {
+ osMessageQId id;
+ osMessageQDef_t def;
+#ifdef CMSIS_OS_RTX
+ uint32_t queue[MB_SIZE];
+#endif
+} sys_mbox_t;
+
+#define SYS_MBOX_NULL ((uint32_t) NULL)
+#define sys_mbox_valid(x) (((*x).id == NULL) ? 0 : 1 )
+#define sys_mbox_set_invalid(x) ( (*x).id = NULL )
+
+#if ((DEFAULT_RAW_RECVMBOX_SIZE) > (MB_SIZE)) || \
+ ((DEFAULT_UDP_RECVMBOX_SIZE) > (MB_SIZE)) || \
+ ((DEFAULT_TCP_RECVMBOX_SIZE) > (MB_SIZE)) || \
+ ((DEFAULT_ACCEPTMBOX_SIZE) > (MB_SIZE)) || \
+ ((TCPIP_MBOX_SIZE) > (MB_SIZE))
+# error Mailbox size not supported
+#endif
+
+// === THREAD ===
+typedef struct {
+ osThreadId id;
+ osThreadDef_t def;
+} sys_thread_data_t;
+typedef sys_thread_data_t* sys_thread_t;
+
+#define SYS_THREAD_POOL_N 6
+#define SYS_DEFAULT_THREAD_STACK_DEPTH DEFAULT_STACK_SIZE
+
+// === PROTECTION ===
+typedef int sys_prot_t;
+
+#else
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** \brief Init systick to 1ms rate
+ *
+ * This init the systick to 1ms rate. This function is only used in standalone
+ * systems.
+ */
+void SysTick_Init(void);
+
+
+/** \brief Get the current systick time in milliSeconds
+ *
+ * Returns the current systick time in milliSeconds. This function is only
+ * used in standalone systems.
+ *
+ * /returns current systick time in milliSeconds
+ */
+uint32_t SysTick_GetMS(void);
+
+/** \brief Delay for the specified number of milliSeconds
+ *
+ * For standalone systems. This function will block for the specified
+ * number of milliSconds. For RTOS based systems, this function will delay
+ * the task by the specified number of milliSeconds.
+ *
+ * \param[in] ms Time in milliSeconds to delay
+ */
+void osDelay(uint32_t ms);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+#endif /* __ARCH_SYS_ARCH_H__ */
mbed official


