| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Move implementation specific parts of mutex.h and mutex.inl into new
header file muteximpl.h. The mutex.h contains now only the application
visible API.
|
|
|
|
|
| |
This file contains the parts of <rtems/posix/psignal.h> that are only
necessary for the POSIX API implementation.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
|
|
|
|
| |
See http://www.rtems.org/pipermail/rtems-devel/2012-May/001006.html
for details.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* posix/src/mqueuenametoid.c,
posix/src/semaphorenametoid.c: Removed files.
* posix/src/psxnametoid.c: New file.
* posix/Makefile.am: Reflect changes above.
* posix/include/rtems/posix/config.h: Fixed integer types.
* posix/include/rtems/posix/posixapi.h: Declare _POSIX_Name_to_id().
* posix/include/rtems/posix/mqueue.h,
posix/inline/rtems/posix/mqueue.inl: Changed parameter of
_POSIX_Message_queue_Create_support().
_POSIX_Message_queue_Name_to_id() is now inline.
* posix/include/rtems/posix/semaphore.h,
posix/inline/rtems/posix/semaphore.inl: Changed parameter of
_POSIX_Semaphore_Create_support(). _POSIX_Semaphore_Name_to_id() is
now inline.
* posix/src/mqueuecreatesupp.c, posix/src/semaphorecreatesupp.c: Use
_Workspace_String_duplicate().
* posix/src/mqueuesendsupp.c, posix/src/mqueueopen.c,
posix/src/mqueueunlink.c, posix/src/seminit.c, posix/src/semopen.c,
posix/src/semunlink.c: Update due to API changes.
|
|
|
|
|
|
|
| |
PR 1981/cpukit
* posix/Makefile.am: Reflect changes below.
* posix/src/pthreadsetcputime.c, posix/src/pthreadgetcputime.c:
Remove (Obsolete).
|
|
|
|
|
|
|
|
| |
* posix/Makefile.am: Remove posixtime.h.
* posix/src/clockgetres.c, posix/src/clockgettime.c,
posix/src/clocksettime.c: Remove posixtime.h.
Require CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID.
* posix/src/posixtime.h: Remove.
|
|
|
|
|
| |
* Makefile.am: Reformat.
* posix/Makefile.am: Reformat.
|
|
|
|
|
|
|
|
|
| |
* posix/Makefile.am: Add posixtime.h.
* posix/src/clockgetres.c, posix/src/clockgettime.c,
posix/src/clocksettime.c:
Use CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID.
Include posix/src/posixtime.h.
* posix/src/posixtime.h: New.
|