| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This was accidentally removed during a merge conflict by
89fc9345dea5c675f8d93546fa3c723918d3279a.
|
|
|
|
|
|
|
|
| |
POSIX mutexes are now available in all configurations and no longer
depend on --enable-posix.
Update #2514.
Update #3112.
|
|
|
|
|
|
|
|
| |
POSIX condition variables are now available in all configurations and no
longer depend on --enable-posix.
Update #2514.
Update #3113.
|
|
|
|
|
|
|
|
| |
POSIX rwlocks are now available in all configurations and no longer
depend on --enable-posix.
Update #2514.
Update #3115.
|
|
|
|
|
|
|
|
| |
POSIX barriers are now available in all configurations and no longer
depend on --enable-posix.
Update #2514.
Update #3114.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For semaphore object pointer and object validation see
POSIX_SEMAPHORE_VALIDATE_OBJECT().
Destruction or close of a busy semaphore returns an error status. The
object is not flushed.
POSIX semaphores are now available in all configurations and no longer
depend on --enable-posix.
Update #2514.
Update #3116.
|
|
|
|
|
|
|
| |
This version of mmap comes from early work done
on the RTL code base circa 2012.
Update #2859.
|
|
|
|
|
|
|
|
|
| |
Add POSIX shared memory manager (Shm). Includes a hook-based
approach for the backing memory storage that defaults to the
Workspace, and a test is provided using the heap. A test is
also provided for the basic use of mmap'ing a shared memory
object. This test currently fails at the mmap stage due to
no support for mmap.
|
| |
|
| |
|
|
|
|
|
|
| |
Add pthread_getname_np() and pthread_setname_np().
Update #2858.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
The self-contained pthread_spinlock_t object is defined by Newlib in
<sys/_pthreadtypes.h>.
typedef struct {
struct _Ticket_lock_Control _lock;
__uint32_t _interrupt_state;
} pthread_spinlock_t;
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
There is only limited support for profiling on SMP configurations.
Delete CORE spinlock implementation.
Update #2674.
|
|
|
|
|
|
| |
Make _POSIX_Mutex_Default_attributes constant and independent of the
scheduler instance. Use INT_MAX to indicate the default ceiling
priority.
|
|
|
|
| |
updates #2608.
|
|
|
|
|
|
| |
Enable for all configurations since it pulls in no additional
dependencies. Return value of the scheduler instance of the executing
thread.
|
|
|
|
|
| |
Enable for all configurations since it pulls in no additional
dependencies.
|
|
|
|
| |
Close #2734.
|
|
|
|
|
|
|
|
|
|
|
| |
Unify the status codes of the Classic and POSIX API to use the new enum
Status_Control. This eliminates the Thread_Control::Wait::timeout_code
field and the timeout parameter of _Thread_queue_Enqueue_critical() and
_MPCI_Send_request_packet(). It gets rid of the status code translation
tables and instead uses simple bit operations to get the status for a
particular API. This enables translation of status code constants at
compile time. Add _Thread_Wait_get_status() to avoid direct access of
thread internal data structures.
|
|
|
|
|
|
|
|
| |
Add Thread_Life_state::THREAD_LIFE_CHANGE_DEFERRED and rework the POSIX
thread cancellation to use the thread life states.
Update #2555.
Update #2626.
|
|
|
|
|
| |
Make _POSIX_Message_queue_Create_support() static since it is only used
by mq_open().
|
|
|
|
|
|
|
|
|
| |
This is the very simple implementation specified by the Open Group
for implementations with 1:1 kernel thread to user thread mappings.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_getconcurrency.html
updates #2680.
|
| |
|
|
|
|
|
|
| |
Yields higher performance on SMP systems.
Close #2625.
|
|
|
|
|
|
|
|
|
| |
Use a red-black tree instead of delta chains.
Close #2344.
Update #2554.
Update #2555.
Close #2606.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
|
|
|
|
| |
The RTEMS build of Newlib includes implementations of all exec*()
variants. They rely on the _execve() support method. RTEMS already
had this and it returned ENOSYS. There is no functional change.
closes #2537.
|
|
|
|
|
|
|
|
|
| |
These were not implemented and it does not appear that they were
ever officially part of an approved POSIX standard. They were
likely part of the Draft 8 of POSIX 1003.1b that RTEMS pthreads
were initially based upon.
closes #2531.
|
|
|
|
|
|
| |
Rename _POSIX_Absolute_timeout_to_ticks() to
_TOD_Absolute_timeout_to_ticks() and move it to the score directory.
Delete empty <rtems/posix/time.h>.
|
| |
|
|
|
|
|
|
| |
* Makefile.am updated and preinstall.am regenerated.
* mprotect.c had a prototype removed now that we have mman.h
* mmap.c, munmap.c: New stub files.
|
|
|
|
|
|
| |
Enable pthread_once() for all configurations. The pthread_once()
function is one means to initialize POSIX keys. Another use case is the
C++ support.
|
|
|
|
|
|
|
| |
Formerly POSIX keys were only enabled when POSIX threads
were enabled. Because they are a truly safe alternative
to per-task variables in an SMP system, they are being
enabled in all configurations.
|
| |
|
|
|
|
|
| |
This is a useful POSIX thread API helper which is found in
`GNU/Linux and *BSD.
|
|
|
|
|
|
|
| |
This patch adds the following methods:
+ pthread_get_affinity_np
+ pthread_set_affinity_np
|
|
|
|
|
|
|
| |
This patch adds the following methods:
+ pthread_attr_get_affinity_np
+ pthread_attr_set_affinity_np
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Change pthread_once from using disabled pre-emption to using a
pthread mutex making it SMP safe. GCC using a posix threading
model uses pthread_once.
The pthread mutex requires at least 1 mutex is configured so
confdefs.h has been updated to account for the internal
mutex.
|
| |
|
|
|
|
|
|
| |
Move implementation specific parts of key.h and key.inl into new header
file keyimpl.h. The key.h contains now only the application visible
API.
|
|
|
|
|
|
| |
Move implementation specific parts of spinlock.h and spinlock.inl into
new header file spinlockimpl.h. The spinlock.h contains now only the
application visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of timer.h and timer.inl into new
header file timerimpl.h. The timer.h contains now only the application
visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of rwlock.h and rwlock.inl into new
header file rwlockimpl.h. The rwlock.h contains now only the
application visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of pthread.h and pthread.inl into new
header file pthreadimpl.h. The pthread.h contains now only the
application visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of priority.h and priority.inl into
new header file priorityimpl.h. Remove priority.h since there is no
application visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of cond.h and cond.inl into new
header file condimpl.h. The cond.h contains now only the application
visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of barrier.h and barrier.inl into new
header file barrierimpl.h. The barrier.h contains now only the
application visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of mqueue.h and mqueue.inl into new
header file mqueueimpl.h. The mqueue.h contains now only the
application visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of semaphore.h and semaphore.inl into
new header file semaphoreimpl.h. The semaphore.h contains now only the
application visible API.
|