summaryrefslogtreecommitdiffstats
path: root/newlib/libc/sys/rtems/include
Commit message (Collapse)AuthorAgeFilesLines
* RTEMS: Use __uint64_t for _CLOCK_T_Sebastian Huber2017-08-251-0/+3
| | | | | | | | This addresses: https://devel.rtems.org/ticket/2135 Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Synchronize RTEMS <sys/bitset.h> with FreeBSDSebastian Huber2017-07-121-5/+5
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Synchronize RTEMS <sys/bitset.h> with FreeBSDSebastian Huber2017-07-101-1/+16
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Remove FreeBSD specifics from RTEMS <arpa/inet.h>Sebastian Huber2017-06-121-21/+0
| | | | | | | | | For whatever reason FreeBSD renames several functions provided by <arpa/inet.h> and uses weak references to provide the standard function names. This causes problems on targets lacking proper support for weak references. We do not need this function renaming on RTEMS. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Fix RTEMS ioctl() declarationSebastian Huber2017-06-071-2/+2
| | | | | | Using uint32_t for ioctl_command_t does not work well on 64-bit targets. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Update FreeBSD revision of RTEMS <sys/bitset.h>Sebastian Huber2017-06-071-1/+1
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Fix some RTEMS CPUSET(9) macrosSebastian Huber2017-06-071-11/+11
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Fix RTEMS CPU_EQUAL_S()Sebastian Huber2017-06-071-2/+2
| | | | | | | According to the FreeBSD man page BIT_CMP() returns true in case the two sets are NOT equal. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add de-facto standard <sys/ioctl.h> for RTEMSSebastian Huber2017-05-253-0/+252
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add some POSIX header files for RTEMSSebastian Huber2017-05-2518-0/+4599
| | | | | | | | | | | | | | | | | | | | | Add the POSIX header files * arpa/inet.h * net/if.h * netdb.h * netinet/in.h * netinet/tcp.h * sys/socket.h * sys/syslog.h * sys/uio.h * sys/un.h * syslog.h * termios.h and their dependencies for RTEMS. The origin of these files is the latest FreeBSD. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* FreeBSD compatibility for RTEMS <sys/cpuset.h>Sebastian Huber2017-05-254-138/+402
| | | | | | | | | | | Make the RTEMS <sys/cpuset.h> compatible with the latest FreeBSD version. Fix the CPU_COPY() parameter order, see also: https://devel.rtems.org/ticket/3023 Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add __bitcount*() to RTEMS <machine/types.h>Sebastian Huber2017-05-252-0/+92
| | | | | | | Use a dedicated header file <machine/_bitcount.h> to avoid cyclic header dependencies in future changes. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Increase MSIZE for RTEMSSebastian Huber2017-05-251-1/+1
| | | | | | | | Increase the MSIZE for RTEMS to be in line with the latest FreeBSD version. The legacy network stack of RTEMS will provides its own definition. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* FreeBSD compatibility for RTEMS <sys/param.h>Sebastian Huber2017-05-252-125/+180
| | | | | | | Update the RTEMS <machine/param.h> and <sys/param.h> to be compatible with the latest FreeBSD version. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add generic <machine/_align.h> for RTEMSSebastian Huber2017-05-252-11/+42
| | | | | | | It uses __BIGGEST_ALIGNMENT__ which is available in recent GCC and LLVM/clang. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* RTEMS: Harmonize MAXNAMLEN and NAME_MAXSebastian Huber2017-01-251-0/+4
| | | | | | | Override MAXNAMLEN definition in <dirent.h> and make sure it equals NAME_MAX. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* RTEMS: Add user-defined name to thread queuesSebastian Huber2017-01-091-1/+65
| | | | | | | | Add a user-defined name to the self-contained synchronization objects in order to make system diagnostics, tracing and debugging more user friendly. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* RTEMS: Increase SEM_VALUE_MAXSebastian Huber2016-12-201-1/+1
| | | | | | | RTEMS defined SEM_VALUE_MAX to 32767 unlike other systems like FreeBSD and glibc. A common value is INT_MAX. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Self-contained pthread_spinlock_t for RTEMSSebastian Huber2016-11-241-1/+5
| | | | | | | | | | | | | | | | | | | | Turn pthread_spinlock_t into a self-contained object. On uni-processor configurations, interrupts are disabled in the lock/trylock operations and the previous interrupt status is restored in the corresponding unlock operations. On SMP configurations, a ticket lock is a acquired and released in addition. See also: https://devel.rtems.org/ticket/2674 This implementation is simple and efficient. However, this test case of the Linux Test Project would fail due to call of printf() and sleep() during spin lock ownership: https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/1-2.c Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Move pthread types to <sys/_pthreadtypes.h>Sebastian Huber2016-11-171-0/+211
| | | | | | | | | | This makes it possible provide operating system specific types for <pthread.h>. It is in line with the FreeBSD header file structure and allows a future cleanup of <pthread.h> to not expose unrelated things via <sys/types.h> and <unistd.h>. Glibc uses the similar <bits/pthreadtypes.h> for this purpose. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add _TICKET_LOCK_INITIALIZER to <sys/lock.h>Sebastian Huber2016-11-171-1/+3
| | | | | | | | Add _TICKET_LOCK_INITIALIZER to statically initialize a _Ticket_lock_Control structure. This makes it possible to embed a ticket lock in other structures outside of <sys/lock.h>. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Use __inline in <sys/lock.h> for RTEMSSebastian Huber2016-11-171-10/+10
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Use external header file for kernel space timeSebastian Huber2016-11-071-144/+4
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add kernel space header for <sys/lock.h> for RTEMSSebastian Huber2016-11-071-1/+6
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Use external header file for kernel space typesSebastian Huber2016-11-072-7/+5
| | | | | | | The FreeBSD kernel types are not used in Newlib. Provide them via an external header file to decouple Newlib and FreeBSD updates for RTEMS. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide cap_ioctl_t for RTEMSSebastian Huber2016-11-071-0/+5
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide vm_page_t for RTEMS via <machine/_types.h>Sebastian Huber2016-10-251-0/+1
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide rman_res_t for RTEMS via <machine/types.h>Sebastian Huber2016-10-251-0/+2
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* rtems: add sys/mman.hGedare Bloom2016-08-081-0/+263
| | | | | | | This file was copied verbatim from FreeBSD and is in sync with the FreeBSD svn version used by rtems-libbsd. Signed-off-by: Joel Sherrill <joelemail@rtems.org>
* Add _Thread_queue_Queue::_owner for RTEMSJeff Johnston2016-05-031-3/+3
| | | | | | | | Add _Thread_queue_Queue::_owner which will be used for the upcomming priority inheritance implementation and an O(m) independence-preserving protocol (OMIP) implementation. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Move _Thread_queue_Queue::_Lock for RTEMSJeff Johnston2016-05-031-3/+3
| | | | | | | | | | Move _Thread_queue_Queue::_Lock to begin of the structure. On RTEMS, the presence of a lock component in the thread queue structures actually depends on the build-time RTEMS_SMP configuration option. A move of this part to the begin of the structure allows an implementation re-use for the other parts. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide FreeBSD types for <sys/types.h> on RTEMScygwin-2_5_1-releaseSebastian Huber2016-04-212-0/+80
| | | | | | | | | | | | | | | | | | | | 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@embedded-brains.de>
* Add RTEMS support for GCC libatomicSebastian Huber2016-04-201-0/+46
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add RTEMS-specific types for BSD compatibilitySebastian Huber2016-04-191-0/+6
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide POSIX defined blksize_t in <sys/types.h>Sebastian Huber2016-04-151-2/+3
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide POSIX defined blkcnt_t in <sys/types.h>Sebastian Huber2016-04-151-1/+3
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Define mode_t via __mode_tSebastian Huber2016-04-151-1/+1
| | | | | | Use __uint32_t to avoid the use of GCC-specific _ST_INT32. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add BSD guard for ino_t in <sys/types.h>Sebastian Huber2016-04-151-0/+3
| | | | | | Introduce internal type __ino_t. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Use __machine_*_t_defined for internal typesSebastian Huber2016-04-151-24/+14
| | | | | | | | | | | | | | | | | | | | | | Newlib defines defaults for internal types via <sys/_types.h> and uses <machine/_types.h> to let targets define their own type if necessary. Previously for example #ifndef __dev_t_defined typedef short __dev_t; #endif However, the __*_t_defined pattern conflicts with the glibc type guard pattern for user types, e.g. dev_t in this example. Introduce a __machine_*_t_defined pattern for internal types (defined by <machine/_types.h>, used by <sys/_types.h>). For example #ifndef __machine_dev_t_defined typedef short __dev_t; #endif Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Eliminate use of Newlib-specific <machine/types.h>Sebastian Huber2016-04-131-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change solves a glibc/BSD compatibility problem. glibc and BSD use double underscore types for internal types. The Linux port of Newlib uses some glibc provided internal type definitions which are not protected by guard defines, e.g. __off_t. To avoid a conflict Newlib uses single underscore types for some internal types, e.g. _off_t. However, for BSD compatibility we have to define the internal types with double underscore names in <sys/_types.h>. The header file <machine/types.h> is Newlib-specific. It was used instead of <sys/_types.h> to provide the internal type definitions _CLOCK_T, _TIME_T_, _CLOCKID_T_, _TIMER_T_, and __suseconds_t. Move these definitions to <sys/_types.h> (there exist two instances of this file, one for Linux and one for all other targets). This makes the _HAVE_SYSTYPES configuration define obsolete (could possibly break the __RDOS__ target). Use the standard <sys/_types.h> include throughout. Move __loff_t defintion to default (non-Linux) <sys/_types.h>. Define it via _off64_t to avoid a dependency on the compiler. Provide the __off_t definition via default (non-Linux) <sys/_types.h> based on _off_t for all systems except Cygwin. For Cygwin use _off64_t. Define off_t via __off_t. Provide the __pid_t definition via default (non-Linux) <sys/_types.h>. This prevents a potential __pid_t and pid_t incompatibility. Add BSD guard defines for pid_t. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Move kernel dependent parts of <sys/time.h>cygwin-2_5_0-releaseSebastian Huber2016-04-081-0/+199
| | | | | | | | Move the kernel dependent parts of <sys/time.h> to new system-specific header file <machine/_time.h>. Provide an empty default implementation. Add a specialized implementation for RTEMS. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Drop <unistd.h> include from RTEMS <sys/param.h>Sebastian Huber2016-04-071-2/+0
| | | | | | | | This include is not present in default Newlib, glibc and FreeBSD <sys/param.h>. With it there is now a conflict with <sys/libkern.h> introduced by ecf453f9635fb278cff4d4bae21a1e249313b817. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add arc4random() etc. from OpenBSD 5.8Sebastian Huber2016-03-181-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | According to the OpenBSD man page, "A Replacement Call for Random". It offers high quality random numbers derived from input data obtained by the OpenBSD specific getentropy() system call which is declared in <unistd.h> and must be implemented for each Newlib port externally. The arc4random() functions are used for example in LibreSSL and OpenSSH. Cygwin provides currently its own implementation of the arc4random family. Maybe it makes sense to use this getentropy() implementation: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libcrypto/crypto/getentropy_win.c?rev=1.4&content-type=text/x-cvsweb-markup * libc/include/stdlib.h (arc4random): Declare if __BSD_VISIBLE. (arc4random_buf): Likewise. (arc4random_uniform): Likewise. * libc/include/sys/unistd.h (getentropy): Likewise. * libc/include/machine/_arc4random.h: New file. * libc/stdlib/arc4random.c: Likewise. * libc/stdlib/arc4random.h: Likewise. * libc/stdlib/arc4random_uniform.c: Likewise. * libc/stdlib/chacha_private.h: Likewise. * libc/sys/rtems/include/machine/_arc4random.h: Likewise. * libc/stdlib/Makefile.am (EXTENDED_SOURCES): Add arc4random.c and arc4random_uniform.c. * libc/stdlib/Makefile.in: Regenerate.
* Add definitions for NBBY to arm and rtems targetsNick Withers2015-12-071-0/+1
| | | | | | | * libc/sys/arm/sys/param.h (NBBY): Define if not already defined. * libc/sys/rtems/include/sys/param.h (NBBY): Define. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Import <threads.h> from latest FreeBSD.Jeff Johnston2015-10-131-0/+54
| | | | | | | | - Move types and defines to <machine/_threads.h> so that it can be customized per target. * libc/include/threads.h: New. * libc/sys/rtems/include/machine/_threads.h: Likewise.
* Fix typo in <sys/lock.h>Sebastian Huber2015-07-311-1/+1
| | | | | | | | | | | Sorry, there was a typo in <sys/lock.h> which leads to memory corruption since not enough space is reserved for the lock object. newlib/ChangeLog 2015-07-30 Sebastian Huber <sebastian.huber@embedded-brains.de> * libc/sys/rtems/include/sys/lock.h (__LOCK_INIT_RECURSIVE): Use proper type.
* Move header filesSebastian Huber2015-07-298-0/+834
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | During libgcc build the first include search path for <...> is "../newlib/libc/sys/rtems/include". Move all RTEMS specific header files to "libc/sys/rtems/include" so that they can be found. Later during libc build the header files in the previous location were somehow present, but for libgcc build they were invisible. This change is necessary to use <pthread.h> for the GCC thread model implementation. newlib/ChangeLog 2015-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de> libc/sys/rtems/machine/_types.h: Move to ... libc/sys/rtems/include/machine/_types.h: ... here. libc/sys/rtems/machine/limits.h: Move to ... libc/sys/rtems/include/machine/limits.h: ... here. libc/sys/rtems/machine/param.h: Move to ... libc/sys/rtems/include/machine/param.h: ... here. libc/sys/rtems/sys/cpuset.h: Move to ... libc/sys/rtems/include/sys/cpuset.h: ... here. libc/sys/rtems/sys/dirent.h: Move to ... libc/sys/rtems/include/sys/dirent.h: ... here. libc/sys/rtems/sys/param.h: Move to ... libc/sys/rtems/include/sys/param.h: ... here. libc/sys/rtems/sys/syslimits.h: Move to ... libc/sys/rtems/include/sys/syslimits.h: ... here. libc/sys/rtems/sys/utime.h: Move to ... libc/sys/rtems/include/sys/utime.h: ... here.
* Add <sys/lock.h>Sebastian Huber2015-07-291-0/+235
| | | | | | | | | | | | | | | | | | | | | | | | Provide self-contained synchronization objects for RTEMS. The API was designed to be able to use it for the Newlib internal locks, the C11 threads support, the GCC thread model support and the libgomp operating system configuration in combination with <pthread.h>. References: https://lists.rtems.org/pipermail/devel/2015-July/011989.html https://lists.rtems.org/pipermail/devel/2015-July/012000.html Tickets: https://devel.rtems.org/ticket/1247 https://devel.rtems.org/ticket/2274. v2: Fix typo in _Condition_Wait_recursive_timed() declaration. newlib/ChangeLog 2015-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de> * libc/sys/rtems/include/sys/lock.h: New.
* Import libc/sys/rtems/include/semaphore.h from FreeBSD.Sebastian Huber2015-03-121-0/+56
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* * libc/sys/rtems/include/limits.h: Update page size to matchCorinna Vinschen2013-12-101-1/+1
| | | | libc/sys/rtems/machine/param.h.