From 82768d9bab0a8f1fa805799f9afbb0379c276da5 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 21 Apr 2016 08:21:46 +0200 Subject: [PATCH] Provide FreeBSD types for on RTEMS Provide the following types via 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 --- .../libc/sys/rtems/include/machine/_types.h | 7 ++ newlib/libc/sys/rtems/include/machine/types.h | 73 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 newlib/libc/sys/rtems/include/machine/types.h diff --git a/newlib/libc/sys/rtems/include/machine/_types.h b/newlib/libc/sys/rtems/include/machine/_types.h index e5dece034..f003ce9ed 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/types.h b/newlib/libc/sys/rtems/include/machine/types.h new file mode 100644 index 000000000..52ff790ea --- /dev/null +++ b/newlib/libc/sys/rtems/include/machine/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 " +#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 */