aboutsummaryrefslogtreecommitdiff
path: root/circuitpython/extmod/lwip-include
diff options
context:
space:
mode:
Diffstat (limited to 'circuitpython/extmod/lwip-include')
-rw-r--r--circuitpython/extmod/lwip-include/arch/cc.h41
-rw-r--r--circuitpython/extmod/lwip-include/arch/perf.h7
-rw-r--r--circuitpython/extmod/lwip-include/lwipopts.h35
3 files changed, 83 insertions, 0 deletions
diff --git a/circuitpython/extmod/lwip-include/arch/cc.h b/circuitpython/extmod/lwip-include/arch/cc.h
new file mode 100644
index 0000000..400dc6e
--- /dev/null
+++ b/circuitpython/extmod/lwip-include/arch/cc.h
@@ -0,0 +1,41 @@
+#ifndef MICROPY_INCLUDED_EXTMOD_LWIP_INCLUDE_ARCH_CC_H
+#define MICROPY_INCLUDED_EXTMOD_LWIP_INCLUDE_ARCH_CC_H
+
+#include <stdint.h>
+
+// Generate lwip's internal types from stdint
+
+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 u32_t mem_ptr_t;
+
+#define U16_F "hu"
+#define S16_F "hd"
+#define X16_F "hx"
+#define U32_F "u"
+#define S32_F "d"
+#define X32_F "x"
+
+#define X8_F "02x"
+#define SZT_F "u"
+
+#define BYTE_ORDER LITTLE_ENDIAN
+
+#define LWIP_CHKSUM_ALGORITHM 2
+
+#include <assert.h>
+#define LWIP_PLATFORM_DIAG(x)
+#define LWIP_PLATFORM_ASSERT(x) { assert(1); }
+
+//#define PACK_STRUCT_FIELD(x) x __attribute__((packed))
+#define PACK_STRUCT_FIELD(x) x
+#define PACK_STRUCT_STRUCT __attribute__((packed))
+#define PACK_STRUCT_BEGIN
+#define PACK_STRUCT_END
+
+#endif // MICROPY_INCLUDED_EXTMOD_LWIP_INCLUDE_ARCH_CC_H
diff --git a/circuitpython/extmod/lwip-include/arch/perf.h b/circuitpython/extmod/lwip-include/arch/perf.h
new file mode 100644
index 0000000..d310fc3
--- /dev/null
+++ b/circuitpython/extmod/lwip-include/arch/perf.h
@@ -0,0 +1,7 @@
+#ifndef MICROPY_INCLUDED_EXTMOD_LWIP_INCLUDE_ARCH_PERF_H
+#define MICROPY_INCLUDED_EXTMOD_LWIP_INCLUDE_ARCH_PERF_H
+
+#define PERF_START /* null definition */
+#define PERF_STOP(x) /* null definition */
+
+#endif // MICROPY_INCLUDED_EXTMOD_LWIP_INCLUDE_ARCH_PERF_H
diff --git a/circuitpython/extmod/lwip-include/lwipopts.h b/circuitpython/extmod/lwip-include/lwipopts.h
new file mode 100644
index 0000000..805bec2
--- /dev/null
+++ b/circuitpython/extmod/lwip-include/lwipopts.h
@@ -0,0 +1,35 @@
+#ifndef MICROPY_INCLUDED_EXTMOD_LWIP_INCLUDE_LWIPOPTS_H
+#define MICROPY_INCLUDED_EXTMOD_LWIP_INCLUDE_LWIPOPTS_H
+
+#include <py/mpconfig.h>
+#include <py/misc.h>
+#include <py/mphal.h>
+
+// We're running without an OS for this port. We don't provide any services except light protection.
+#define NO_SYS 1
+
+#define SYS_LIGHTWEIGHT_PROT 1
+#include <stdint.h>
+typedef uint32_t sys_prot_t;
+
+#define TCP_LISTEN_BACKLOG 1
+
+// We'll put these into a proper ifdef once somebody implements an ethernet driver
+#define LWIP_ARP 0
+#define LWIP_ETHERNET 0
+
+#define LWIP_DNS 1
+
+#define LWIP_NETCONN 0
+#define LWIP_SOCKET 0
+
+#if MICROPY_PY_LWIP_SLIP
+#define LWIP_HAVE_SLIPIF 1
+#endif
+
+// For now, we can simply define this as a macro for the timer code. But this function isn't
+// universal and other ports will need to do something else. It may be necessary to move
+// things like this into a port-provided header file.
+#define sys_now mp_hal_ticks_ms
+
+#endif // MICROPY_INCLUDED_EXTMOD_LWIP_INCLUDE_LWIPOPTS_H