| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
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 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 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>
|
|
|
|
| |
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
| |
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
| |
The dummy crt0.c provided by the RTEMS target provides stubs of
symbols which would normally be provided by RTEMS. This patch adds
stubs for posix_memalign() as well as the synchronization methods
prototyped in <sys/lock.h>.
|
|
|
|
| |
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
| |
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
| |
Use __uint32_t to avoid the use of GCC-specific _ST_INT32.
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
| |
Introduce internal type __ino_t.
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 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>
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
* 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>
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libc/include/sys/_stdint.h: New file.
* libc/include/stdint.h (int8_t): Move to <sys/_stdint.h>.
(uint8_t): Likewise.
(int16_t): Likewise.
(uint16_t): Likewise.
(int32_t): Likewise.
(uint32_t): Likewise.
(int64_t): Likewise.
(uint64_t): Likewise.
(intptr_t): Likewise.
(uintptr_t): Likewise.
* libc/include/sys/types.h: Include <sys/_stdint.h>.
* libc/sys/rtems/machine/_types.h: Remove <stdint.h> include.
* libc/sys/time.h>: Replace __uint32_t with uint32_t and
__uint64_t with uint64_t.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
| |
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* NEWS: Update with 2.2.0 info.
* README: Ditto.
* acinclude.m4: Change version number to 2.2.0.
* libc/libc.texinfo: Ditto.
* libm/libm.texinfo: Ditto.
* configure: Regenerated.
* Makefile.in: Regenerated.
* doc/configure: Ditto.
* libc/*/configure: Ditto.
* libm/*/configure: Ditto.
* libc/sys/linux/shared.ld: Add VERS_2.2
|
|
|
|
| |
that NGROUPS is even.
|
|
|
|
| |
(CPU_SET): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* NEWS: Update with 2.1.0 info.
* README: Ditto.
* acinclude.m4: Change version number to 2.1.0.
* aclocal.m4: Regenerated.
* configure: Ditto.
* Makefile.in: Regenerated.
* doc/aclocal.m4: Ditto.
* doc/configure: Ditto.
* libc/*/aclocal.m4: Ditto.
* libc/*/configure: Ditto.
* libc/libc.texinfo: Ditto.
* libm/*/aclocal.m4: Ditto.
* libm/*/configure: Ditto.
* libm/libm.texinfo: Ditto.
* libc/sys/linux/shared.ld: Add VERS_2.1
|
|
|
|
| |
libc/sys/rtems/machine/param.h.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
header includes. Include <sys/features.h> for
__GNUC_PREREQ__().
(__u?int.*_t): Define via GCC provided __U?INT.*_TYPE__ if
available.
(__intptr_t): Define.
(__uintptr_t): Likewise.
* libc/include/stdint.h: Include <machine/_default_types.h>
instead of <_ansi.h>.
(u?int.*_t): Define via __u?int.*_t provided by
<machine/_default_types.h>.
(u?int_fast.*_t): Define via GCC provided
__U?INT_FAST.*_TYPE__ if available.
(U?INT.*(MIN|MAX)): Define via GCC provided __U?INT.*(MIN|MAX)__
if available.
(U?INT.*_C): Define via GCC provided __U?INT.*_C if available.
* libc/include/sys/cdefs.h: Use <machine/_default_types.h>
instead of <stdint.h>.
* libc/sys/rtems/sys/cpuset.h: Likewise.
* libc/sys/rtems/machine/_types.h: Include <stdint.h> for
FreeBSD compatibility.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libc/sys/rtems/cpusetalloc.c: New file.
* libc/sys/rtems/cpusetfree.c: Likewise.
* libc/sys/rtems/Makefile.am (lib_a_SOURCES): Add new files.
* libc/sys/rtems/Makefile.in: Regenerate.
* libc/sys/rtems/sys/cpuset.h: Delete #if 0 block. Include
<stddef.h> for size_t.
(_NCPUBITS): Avoid NBBY and assume 8 bits per char.
(__cpuset_mask): Use int instead of size_t parameter for Linux
compatibility.
(__cpuset_index): Likewise.
(__cpuset_alloc): Declare.
(__cpuset_free): Likewise.
(CPU_ALLOC_SIZE): Likewise.
(CPU_ALLOC): Define.
(CPU_FREE): Likewise.
(CPU_ZERO_S): Likewise.
(CPU_FILL_S): Likewise.
(CPU_SET_S): Likewise.
(CPU_CLR_S): Likewise.
(CPU_ISSET_S): Likewise.
(CPU_COUNT_S): Likewise.
(CPU_AND_S): Likewise.
(CPU_OR_S): Likewise.
(CPU_XOR_S): Likewise.
(CPU_NAND_S): Likewise.
(CPU_EQUAL_S): Likewise.
(CPU_ZERO): Use CPU_ZERO_S().
(CPU_FILL): Use CPU_FILL_S().
(CPU_SET): Use CPU_SET_S().
(CPU_CLR): Use CPU_CLR_S().
(CPU_ISSET): Use CPU_ISSET_S().
(CPU_COUNT): Use CPU_COUNT_S().
(CPU_AND): Use CPU_AND_S().
(CPU_OR): Use CPU_OR_S().
(CPU_XOR): Use CPU_XOR_S().
(CPU_NAND): Use CPU_NAND_S().
(CPU_EQUAL): Use CPU_EQUAL_S().
(CPU_CMP): Delete superfluous const qualifier.
(CPU_EMPTY): Likewise.
|
|
|
|
|
|
|
| |
* libc/include/sys/time.h (gettimeofday): Add restrict keyword.
(setitimer): Likewise.
* libc/sys/rdos/gettod.c (gettimeofday): Likewise.
* libc/sys/rtems/crt0.c (gettimeofday): Likewise.
|
|
|
|
|
|
|
|
| |
* libc/posix/readdir_r.c: Add restrict keyword.
* libc/machine/spu/sys/dirent.h, libc/sys/decstation/sys/dirent.h,
libc/sys/linux/sys/dirent.h, libc/sys/rtems/sys/dirent.h,
libc/sys/sparc64/sys/dirent.h, libc/sys/sun4/sys/dirent.h,
libc/sys/sysvi386/sys/dirent.h: Add readdir_r() prototype.
|
|
|
|
| |
* libc/sys/rtems/sys/cpuset.h: New file.
|
|
|
|
|
|
| |
* libc/include/sys/param.h (MAXPATHLEN): Define.
* libc/sys/rtems/sys/param.h (MAXPATHLEN): Likewise.
* libc/unix/getcwd.c: Include <sys/param.h> for MAXPATHLEN.
|
|
|
|
|
| |
* libc/libc/sys/rtems/sys/param.h: Update some parameters to
the latest FreeBSD values.
|
|
|
|
| |
* libc/sys/rtems/machine/_types.h (_HAVE_SYSTYPES): Define.
|
|
|
|
|
|
|
| |
* libc/sys/rtems/machine/_types.h (__dev_t): Define.
(__dev_t_defined) Likewise.
* libc/include/sys/_types.h (__dev_t): Delete RTEMS specific
definition.
|
|
|
|
|
| |
* libc/sys/rtems/machine/_types.h (_ssize_t): Delete.
(__ssize_t_defined) Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libc/include/sys/cdefs.h (__containerof): New define.
(__DEQUALIFY): Likewise.
* libc/include/sys/queue.h (TRACEBUF_INITIALIZER): Likewise.
(TRACEBUF): Likewise.
(LIST_FOREACH_SAFE): Likewise.
(LIST_PREV): Likewise.
(LIST_SWAP): Likewise.
(QMD_LIST_CHECK_HEAD): Likewise.
(QMD_LIST_CHECK_NEXT): Likewise.
(QMD_LIST_CHECK_PREV): Likewise.
(QMD_SAVELINK): Likewise.
(QMD_TAILQ_CHECK_HEAD): Likewise.
(QMD_TAILQ_CHECK_NEXT): Likewise.
(QMD_TAILQ_CHECK_PREV): Likewise.
(QMD_TAILQ_CHECK_TAIL): Likewise.
(QMD_TRACE_ELEM): Likewise.
(QMD_TRACE_HEAD): Likewise.
(SLIST_FOREACH_PREVPTR): Likewise.
(SLIST_FOREACH_SAFE): Likewise.
(SLIST_REMOVE_AFTER): Likewise.
(SLIST_SWAP): Likewise.
(STAILQ_FOREACH_SAFE): Likewise.
(STAILQ_REMOVE_AFTER): Likewise.
(STAILQ_SWAP): Likewise.
(TAILQ_FOREACH_REVERSE_SAFE): Likewise.
(TAILQ_FOREACH_SAFE): Likewise.
(TAILQ_SWAP): Likewise.
(TRASHIT): Likewise.
(SLIST_REMOVE): Use SLIST_REMOVE_AFTER().
(STAILQ_LAST): Use __containerof().
(STAILQ_REMOVE): Use STAILQ_REMOVE_AFTER().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* NEWS: Update with 2.0.0 info.
* README: Ditto.
* acinclude.m4: Change version number to 2.0.0.
* aclocal.m4: Regenerated.
* configure: Ditto.
* Makefile.in: Regenerated.
* doc/aclocal.m4: Ditto.
* doc/configure: Ditto.
* libc/*/aclocal.m4: Ditto.
* libc/*/configure: Ditto.
* libc/libc.texinfo: Ditto.
* libm/*/aclocal.m4: Ditto.
* libm/*/configure: Ditto.
* libm/libm.texinfo: Ditto.
* libc/sys/linux/shared.ld: Add VERS_2.0
|
|
|
|
|
| |
* libc/sys/rtems/machine/_types.h (_ssize_t): Use signed int for
__v850__, __851__.
|
|
|
|
|
| |
* libc/sys/rtems/machine/_types.h (_ssize_t): Add __ARM_EABI__,
__v850__, __851__.
|
| |
|
|
|
|
|
| |
_getpid_r(), geteuid(), getgid, _getgid_r, getpid(), getppid(),
and _getpid_r().
|
|
|
|
| |
definition of time_h.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* NEWS: Update with 1.20.0 info.
* README: Ditto.
* acinclude.m4: Change version number to 1.20.0.
* aclocal.m4: Regenerated.
* configure: Ditto.
* Makefile.in: Regenerated.
* doc/aclocal.m4: Ditto.
* doc/configure: Ditto.
* libc/*/aclocal.m4: Ditto.
* libc/*/configure: Ditto.
* libc/libc.texinfo: Ditto.
* libm/*/aclocal.m4: Ditto.
* libm/*/configure: Ditto.
* libm/libm.texinfo: Ditto.
* libc/sys/linux/shared.ld: Add VERS_1.20
|
|
|
|
|
| |
* libc/sys/rtems/include/limits.h: Compute SSIZE_MAX based on
__SIZE_MAX__, __SIZEOF_SIZE_T__ and __CHAR_BIT__.
|