[PATCH v2 5/5] Provide FreeBSD types for <sys/types.h> on RTEMS

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Apr 20 13:29:53 UTC 2016


Provide the following types via <sys/types.h> on RTEMS for FreeBSD
compatibility if __BSD_VISIBLE

 * accmode_t,
 * cap_rights_t,
 * c_caddr_t,
 * cpulevel_t,
 * fixpt_t,
 * lwpid_t,
 * uintfptr_t,
 * vm_offset_t,
 * vm_ooffset_t,
 * vm_paddr_t,
 * vm_pindex_t, and
 * vm_size_t.

Signed-off-by: Sebastian Huber <sebastian.huber at embedded-brains.de>
---
 newlib/libc/sys/rtems/include/machine/_types.h     |  7 +++
 .../libc/sys/rtems/include/machine/_user_types.h   | 73 ++++++++++++++++++++++
 2 files changed, 80 insertions(+)
 create mode 100644 newlib/libc/sys/rtems/include/machine/_user_types.h

diff --git a/newlib/libc/sys/rtems/include/machine/_types.h b/newlib/libc/sys/rtems/include/machine/_types.h
index e5dece0..f003ce9 100644
--- a/newlib/libc/sys/rtems/include/machine/_types.h
+++ b/newlib/libc/sys/rtems/include/machine/_types.h
@@ -28,6 +28,13 @@ typedef	unsigned long	__ino_t;
 typedef	__uint32_t	__mode_t;
 #define	__machine_mode_t_defined
 
+typedef	int		__accmode_t;	/* access permissions */
+typedef	__uint32_t	__fixpt_t;	/* fixed point number */
+typedef	int		__lwpid_t;	/* Thread ID (a.k.a. LWP) */
+typedef	__int64_t	__rlim_t;	/* resource limit - intentionally */
+					/* signed, because of legacy code */
+					/* that uses -1 for RLIM_INFINITY */
+
 #ifdef _KERNEL
 typedef	int		boolean_t;
 typedef	struct device	*device_t;
diff --git a/newlib/libc/sys/rtems/include/machine/_user_types.h b/newlib/libc/sys/rtems/include/machine/_user_types.h
new file mode 100644
index 0000000..52ff790
--- /dev/null
+++ b/newlib/libc/sys/rtems/include/machine/_user_types.h
@@ -0,0 +1,73 @@
+/*-
+ * Copyright (c) 2016 embedded brains GmbH
+ * 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.
+ *
+ * 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 _SYS_TYPES_H
+#error "must be included via <sys/types.h>"
+#endif /* !_SYS_TYPES_H */
+
+#if __BSD_VISIBLE
+
+#ifndef _ACCMODE_T_DECLARED
+typedef	__accmode_t	accmode_t;	/* access permissions */
+#define	_ACCMODE_T_DECLARED
+#endif
+
+#ifndef _CAP_RIGHTS_T_DECLARED
+#define	_CAP_RIGHTS_T_DECLARED
+struct cap_rights;
+
+typedef	struct cap_rights	cap_rights_t;
+#endif
+
+typedef	const char *	c_caddr_t;	/* core address, pointer to const */
+
+typedef	int		cpulevel_t;
+typedef	int		cpusetid_t;
+typedef	int		cpuwhich_t;
+
+typedef	__fixpt_t	fixpt_t;	/* fixed point number */
+
+#ifndef _LWPID_T_DECLARED
+typedef	__lwpid_t	lwpid_t;	/* Thread ID (a.k.a. LWP) */
+#define	_LWPID_T_DECLARED
+#endif
+
+#ifndef _RLIM_T_DECLARED
+typedef	__rlim_t	rlim_t;		/* resource limit */
+#define	_RLIM_T_DECLARED
+#endif
+
+typedef	__uintptr_t	segsz_t;	/* segment size (in pages) */
+
+typedef	__uintptr_t	uintfptr_t;
+
+typedef	__intptr_t	vm_ooffset_t;
+typedef	__uintptr_t	vm_offset_t;
+typedef	__uintptr_t	vm_paddr_t;
+typedef	__uintptr_t	vm_pindex_t;
+typedef	__uintptr_t	vm_size_t;
+
+#endif /* __BSD_VISIBLE */
-- 
1.8.4.5



More information about the devel mailing list