summaryrefslogtreecommitdiff
path: root/machine
diff options
context:
space:
mode:
authorVijay Kumar Banerjee <vijay@rtems.org>2021-02-03 19:46:50 -0700
committerVijay Kumar Banerjee <vijay@rtems.org>2021-02-24 19:01:17 -0700
commitfbc7459c2c3a86a4d94e19463417b759900ff51c (patch)
tree19d5451b8cee3d0c51a432c23bd598eafe9a53b0 /machine
Initial Commit: Add all files from RTEMS libnetworking directory
Diffstat (limited to 'machine')
-rw-r--r--machine/_align.h23
-rw-r--r--machine/_kernel_if.h44
-rw-r--r--machine/_kernel_lock.h1
-rw-r--r--machine/_kernel_socket.h83
-rw-r--r--machine/cpu.h1
-rw-r--r--machine/cpufunc.h1
-rw-r--r--machine/in_cksum.h295
-rw-r--r--machine/limits.h1
-rw-r--r--machine/rtems-bsd-kernel-space.h42
-rw-r--r--machine/rtems-bsd-user-space.h40
-rw-r--r--machine/vmparam.h1
11 files changed, 532 insertions, 0 deletions
diff --git a/machine/_align.h b/machine/_align.h
new file mode 100644
index 0000000..fa26a54
--- /dev/null
+++ b/machine/_align.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2016 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Dornierstr. 4
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#ifndef _MACHINE_INCLUDE__ALIGN_H_
+#define _MACHINE_INCLUDE__ALIGN_H_
+
+#include <sys/_types.h>
+
+#define _ALIGNBYTES (sizeof(long long) - 1)
+#define _ALIGN(_p) (((__uintptr_t)(_p) + _ALIGNBYTES) & ~_ALIGNBYTES)
+
+#endif /* !_MACHINE_INCLUDE__ALIGN_H_ */
diff --git a/machine/_kernel_if.h b/machine/_kernel_if.h
new file mode 100644
index 0000000..b360a41
--- /dev/null
+++ b/machine/_kernel_if.h
@@ -0,0 +1,44 @@
+/*-
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 1982, 1986, 1989, 1993
+ * The Regents of the University of California. 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. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
+ *
+ * @(#)if.h 8.1 (Berkeley) 6/10/93
+ * $FreeBSD: head/sys/net/if.h 333502 2018-05-11 20:08:28Z mmacy $
+ */
+
+#if !defined(_NET_IF_H_) || !defined(_KERNEL)
+#error "must be included via <net/if.h> in kernel space"
+#endif
+
+#ifdef MALLOC_DECLARE
+MALLOC_DECLARE(M_IFADDR);
+MALLOC_DECLARE(M_IFMADDR);
+#endif
+
+#define ifr_data ifr_ifru.ifru_data /* for use by interface */
diff --git a/machine/_kernel_lock.h b/machine/_kernel_lock.h
new file mode 100644
index 0000000..710cecc
--- /dev/null
+++ b/machine/_kernel_lock.h
@@ -0,0 +1 @@
+/* Empty */
diff --git a/machine/_kernel_socket.h b/machine/_kernel_socket.h
new file mode 100644
index 0000000..e9acc74
--- /dev/null
+++ b/machine/_kernel_socket.h
@@ -0,0 +1,83 @@
+/*-
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994
+ * The Regents of the University of California. 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. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
+ *
+ * @(#)socket.h 8.4 (Berkeley) 2/21/94
+ * $FreeBSD: head/sys/sys/socket.h 334719 2018-06-06 15:45:57Z sbruno $
+ */
+
+#if !defined(_SYS_SOCKET_H_) || !defined(_KERNEL)
+#error "must be included via <sys/socket.h> in kernel space"
+#endif
+
+/*
+ * Flags for accept1(), kern_accept4() and solisten_dequeue, in addition
+ * to SOCK_CLOEXEC and SOCK_NONBLOCK.
+ */
+#define ACCEPT4_INHERIT 0x1
+#define ACCEPT4_COMPAT 0x2
+
+#define MSG_SOCALLBCK 0x00010000 /* for use by socket callbacks - soreceive (TCP) */
+
+#define MSG_MORETOCOME 0x00100000 /* additional data pending */
+
+#define CMSG_ALIGN(n) _ALIGN(n)
+
+#define SF_READAHEAD(flags) ((flags) >> 16)
+
+struct socket;
+
+struct tcpcb *so_sototcpcb(struct socket *so);
+struct inpcb *so_sotoinpcb(struct socket *so);
+struct sockbuf *so_sockbuf_snd(struct socket *);
+struct sockbuf *so_sockbuf_rcv(struct socket *);
+
+int so_state_get(const struct socket *);
+void so_state_set(struct socket *, int);
+
+int so_options_get(const struct socket *);
+void so_options_set(struct socket *, int);
+
+int so_error_get(const struct socket *);
+void so_error_set(struct socket *, int);
+
+int so_linger_get(const struct socket *);
+void so_linger_set(struct socket *, int);
+
+struct protosw *so_protosw_get(const struct socket *);
+void so_protosw_set(struct socket *, struct protosw *);
+
+void so_sorwakeup_locked(struct socket *so);
+void so_sowwakeup_locked(struct socket *so);
+
+void so_sorwakeup(struct socket *so);
+void so_sowwakeup(struct socket *so);
+
+void so_lock(struct socket *so);
+void so_unlock(struct socket *so);
diff --git a/machine/cpu.h b/machine/cpu.h
new file mode 100644
index 0000000..87fc204
--- /dev/null
+++ b/machine/cpu.h
@@ -0,0 +1 @@
+/* intentionally empty file */
diff --git a/machine/cpufunc.h b/machine/cpufunc.h
new file mode 100644
index 0000000..87fc204
--- /dev/null
+++ b/machine/cpufunc.h
@@ -0,0 +1 @@
+/* intentionally empty file */
diff --git a/machine/in_cksum.h b/machine/in_cksum.h
new file mode 100644
index 0000000..67dafb6
--- /dev/null
+++ b/machine/in_cksum.h
@@ -0,0 +1,295 @@
+/*
+ * Nios II version by Jeffrey O. Hill
+ *
+ * Copyright 2012. Los Alamos National Security, LLC.
+ * The Nios II specific part was produced under U.S. Government contract
+ * DE-AC52-06NA25396 for Los Alamos National Laboratory (LANL),
+ * which is operated by Los Alamos National Security, LLC for
+ * the U.S. Department of Energy. The U.S. Government has rights
+ * to use, reproduce, and distribute this software. NEITHER THE
+ * GOVERNMENT NOR LOS ALAMOS NATIONAL SECURITY, LLC MAKES ANY
+ * WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR
+ * THE USE OF THIS SOFTWARE.
+ *
+ * Copyright (c) 1990 The Regents of the University of California.
+ * 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. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
+ *
+ * from tahoe: in_cksum.c 1.2 86/01/05
+ * from: @(#)in_cksum.c 1.3 (Berkeley) 1/19/91
+ * from: Id: in_cksum.c,v 1.8 1995/12/03 18:35:19 bde Exp
+ */
+
+#ifndef _MACHINE_IN_CKSUM_H_
+#define _MACHINE_IN_CKSUM_H_ 1
+
+#include <sys/cdefs.h>
+#include <netinet/ip.h> /* struct ip */
+
+/*
+ * It it useful to have an Internet checksum routine which is inlineable
+ * and optimized specifically for the task of computing IP header checksums
+ * in the normal case (where there are no options and the header length is
+ * therefore always exactly five 32-bit words.
+ */
+
+/*
+ * Optimized version for the i386 family
+ */
+
+#if (defined(__GNUC__) && defined(__i386__))
+
+static __inline u_int
+in_cksum_hdr(const struct ip *ip)
+{
+ register u_int sum = ((const uint32_t*)ip)[0];
+ register u_int tmp;
+
+ __asm__ __volatile__(
+ " addl %2, %0 \n"
+ " adcl %3, %0 \n"
+ " adcl %4, %0 \n"
+ " adcl %5, %0 \n"
+ " adcl $0, %0 \n"
+ " movl %0, %1 \n"
+ " roll $16, %0 \n"
+ " addl %1, %0 \n"
+ :"+&r"(sum),"=&r"(tmp)
+ :"g"(((const uint32_t*)ip)[1]),
+ "g"(((const uint32_t*)ip)[2]),
+ "g"(((const uint32_t*)ip)[3]),
+ "g"(((const uint32_t*)ip)[4]),
+ "m"(*ip)
+ :"cc"
+ );
+
+ return (~sum) >>16;
+}
+
+static __inline void
+in_cksum_update(struct ip *ip)
+{
+ int __tmpsum;
+ __tmpsum = (int)ntohs(ip->ip_sum) + 256;
+ ip->ip_sum = htons(__tmpsum + (__tmpsum >> 16));
+}
+
+/*
+ * Optimized version for the MC68xxx and Coldfire families
+ */
+
+#elif (defined(__GNUC__) && (defined(__mc68000__) || defined(__m68k__)))
+
+static __inline__ u_int
+in_cksum_hdr(const struct ip *ip)
+{
+ register u_int *ap = (u_int *)ip;
+ register u_int sum = *ap++;
+ register u_int tmp;
+
+ __asm__ __volatile__("addl %2@+,%0\n\t"
+ "movel %2@+,%1\n\t"
+ "addxl %1,%0\n\t"
+ "movel %2@+,%1\n\t"
+ "addxl %1,%0\n\t"
+ "movel %2@,%1\n\t"
+ "addxl %1,%0\n\t"
+ "moveq #0,%1\n\t"
+ "addxl %1,%0\n" :
+ "=d" (sum), "=d" (tmp), "=a" (ap) :
+ "0" (sum), "2" (ap), "m"(*ip));
+ sum = (sum & 0xffff) + (sum >> 16);
+ if (sum > 0xffff)
+ sum -= 0xffff;
+ return ~sum & 0xffff;
+}
+
+/*
+ * Optimized version for the PowerPC family
+ */
+
+#elif (defined(__GNUC__) && (defined(__PPC__) || defined(__ppc__)))
+
+static __inline u_int
+in_cksum_hdr(const struct ip *ip)
+{
+register u_int sum, tmp;
+ __asm__ __volatile__(
+ " lwz %0, 0(%2) \n"
+ " lwz %1, 4(%2) \n"
+ " addc %0, %0, %1 \n" /* generate carry (XER[CA]) */
+ " lwz %1, 8(%2) \n"
+ " adde %0, %0, %1 \n" /* add + generate */
+ " lwz %1, 12(%2) \n"
+ " adde %0, %0, %1 \n"
+ " lwz %1, 16(%2) \n"
+ " adde %0, %0, %1 \n"
+ " addze %0, %0 \n" /* mop up XER[CA] */
+ " rotlwi %1, %0,16 \n" /* word-swapped copy in %1 */
+ " add %0, %0, %1 \n" /* see comment below */
+ " not %0, %0 \n"
+ " srwi %0, %0, 16 \n"
+ :"=&r"(sum),"=&r"(tmp):"b"(ip), "m"(*ip):"xer"
+ );
+ /* Note: if 'add' generates a carry out of the lower 16 bits
+ * then this is automatically added to the upper 16 bits
+ * where the correct result is found. (Stolen from linux.)
+ * %0 : upper-word lower-word
+ * + %1 : lower-word upper-word
+ * = word-sum word-sum
+ * ^+inter-word-carry
+ */
+ return sum;
+}
+
+static __inline void
+in_cksum_update(struct ip *ip)
+{
+ int __tmpsum;
+ __tmpsum = (int)ntohs(ip->ip_sum) + 256;
+ ip->ip_sum = htons(__tmpsum + (__tmpsum >> 16));
+}
+
+/*
+ * SPARC Version
+ */
+
+#elif (defined(__GNUC__) && defined(__sparc__))
+
+static __inline u_int
+in_cksum_hdr(const struct ip *ip)
+{
+ register u_int sum = 0;
+ register u_int tmp_o2;
+ register u_int tmp_o3;
+
+ __asm__ __volatile__ (" \
+ ld [%0], %1 ; \
+ ld [%0+4], %2 ; \
+ ld [%0+8], %3 ; \
+ addcc %1, %2, %1 ; \
+ ld [%0+12], %2 ; \
+ addxcc %1, %3, %1 ; \
+ ld [%0+16], %3 ; \
+ addxcc %1, %2, %1 ; \
+ addxcc %1, %3, %1 ; \
+ set 0x0ffff, %3 ; \
+ srl %1, 16, %2 ; \
+ and %1, %3, %1 ; \
+ addx %1, %2, %1 ; \
+ srl %1, 16, %2 ; \
+ add %1, %2, %1 ; \
+ not %1 ; \
+ and %1, %3, %1 ; \
+ " : "=r" (ip), "=r" (sum), "=r" (tmp_o2), "=r" (tmp_o3)
+ : "0" (ip), "1" (sum), "m"(*ip)
+ );
+ return sum;
+}
+
+#define in_cksum_update(ip) \
+ do { \
+ int __tmpsum; \
+ __tmpsum = (int)ntohs(ip->ip_sum) + 256; \
+ ip->ip_sum = htons(__tmpsum + (__tmpsum >> 16)); \
+ } while(0)
+
+/*
+ * Optimized version for the Altera Nios II softcore
+ */
+#elif defined ( __GNUC__ ) && defined ( __nios2__ )
+
+static inline uint32_t _NIOS2_Add_ones_complement ( const uint32_t a,
+ const uint32_t b )
+{
+ uint32_t sum;
+ uint32_t C;
+ __asm__ __volatile__ (
+ " add %0, %2, %3 \n" /* sum <= a + b */
+ " cmpltu %1, %0, %2 \n" /* C <= carryBit32 */
+ " add %0, %1, %0 \n" /* sum <= sum + C */
+ : "=&r"(sum), "=&r"(C)
+ : "r"(a), "r"(b)
+ );
+ return sum;
+}
+
+static inline uint16_t _NIOS2_Add_ones_complement_word_halves
+ ( const uint32_t a )
+{
+ uint16_t sum;
+ uint32_t tmp;
+ __asm__ __volatile__ (
+ " roli %1, %2, 16 \n" /* tmp <= a rotate left 16 */
+ " add %1, %2, %1 \n" /* tmp <= a + tmp + carryBit16 */
+ " srli %0, %1, 16 \n" /* sum <= tmp shift right 16 */
+ : "=&r"(sum),"=&r"(tmp)
+ : "r"(a)
+ );
+ return sum;
+}
+
+static __inline u_int in_cksum_hdr ( const struct ip * pHdrIP )
+{
+ const uint32_t * const pWd = ( const uint32_t * ) pHdrIP;
+ uint32_t sum = pWd[0];
+ sum = _NIOS2_Add_ones_complement ( sum, pWd[1] );
+ sum = _NIOS2_Add_ones_complement ( sum, pWd[2] );
+ sum = _NIOS2_Add_ones_complement ( sum, pWd[3] );
+ sum = _NIOS2_Add_ones_complement ( sum, pWd[4] );
+ sum = _NIOS2_Add_ones_complement_word_halves ( sum );
+ sum ^= 0xffff;
+ return sum;
+}
+
+static __inline void in_cksum_update ( struct ip * pHdrIP )
+{
+ uint32_t __tmpsum = ntohs ( pHdrIP->ip_sum );
+ __tmpsum += 256u;
+ __tmpsum += __tmpsum >> 16u;
+ pHdrIP->ip_sum = htons ( ( uint16_t ) __tmpsum );
+}
+
+/*
+ * Here is the generic, portable, inefficient algorithm.
+ */
+
+#else
+u_int in_cksum_hdr(const struct ip *);
+#define in_cksum_update(ip) \
+ do { \
+ int __tmpsum; \
+ __tmpsum = (int)ntohs(ip->ip_sum) + 256; \
+ ip->ip_sum = htons(__tmpsum + (__tmpsum >> 16)); \
+ } while(0)
+
+#endif
+
+#endif /* _MACHINE_IN_CKSUM_H_ */
diff --git a/machine/limits.h b/machine/limits.h
new file mode 100644
index 0000000..87fc204
--- /dev/null
+++ b/machine/limits.h
@@ -0,0 +1 @@
+/* intentionally empty file */
diff --git a/machine/rtems-bsd-kernel-space.h b/machine/rtems-bsd-kernel-space.h
new file mode 100644
index 0000000..6debe20
--- /dev/null
+++ b/machine/rtems-bsd-kernel-space.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2018 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Dornierstr. 4
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+ */
+
+#ifndef _RTEMS_BSD_MACHINE_RTEMS_BSD_KERNEL_SPACE_H_
+#define _RTEMS_BSD_MACHINE_RTEMS_BSD_KERNEL_SPACE_H_
+
+#define BOOTP_COMPAT 1
+#define DIAGNOSTIC 1
+#define INET 1
+#define __INSIDE_RTEMS_BSD_TCPIP_STACK__ 1
+#define _KERNEL 1
+#define NFS 1
+
+#endif /* _RTEMS_BSD_MACHINE_RTEMS_BSD_KERNEL_SPACE_H_ */
diff --git a/machine/rtems-bsd-user-space.h b/machine/rtems-bsd-user-space.h
new file mode 100644
index 0000000..4cd313a
--- /dev/null
+++ b/machine/rtems-bsd-user-space.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Dornierstr. 4
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+ */
+
+#ifndef _RTEMS_BSD_MACHINE_RTEMS_BSD_USER_SPACE_H_
+#define _RTEMS_BSD_MACHINE_RTEMS_BSD_USER_SPACE_H_
+
+#define NOPOLL 1
+#define NOSELECT 1
+#define _THREAD_SAFE 1
+
+#endif /* _RTEMS_BSD_MACHINE_RTEMS_BSD_USER_SPACE_H_ */
+
diff --git a/machine/vmparam.h b/machine/vmparam.h
new file mode 100644
index 0000000..87fc204
--- /dev/null
+++ b/machine/vmparam.h
@@ -0,0 +1 @@
+/* intentionally empty file */