summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/include (follow)
Commit message (Collapse)AuthorAgeFilesLines
* various .h files: Add missing C++ extern wrappersMartin Galvan2015-09-031-1/+4
| | | | Updates #2405.
* score: Freechain handler API changesSebastian Huber2015-07-011-5/+1
| | | | | Replace the extend function with an allocator since this fits better to the current use case.
* score: Simplify <rtems/score/thread.h>Sebastian Huber2015-06-251-0/+1
| | | | | | Avoid Thread_Control typedef in <rtems/score/percpu.h>. This helps to get rid of the <rtems/score/percpu.h> include in <rtems/score/thread.h> which exposes a lot of implementation details.
* score: Fine grained locking for semaphoresSebastian Huber2015-05-191-0/+14
| | | | Update #2273.
* score: Fine grained locking for message queuesSebastian Huber2015-05-191-0/+15
| | | | | | | | | | | Aggregate several critical sections into a bigger one. Sending and receiving messages is now protected by an ISR lock. Thread dispatching is only disabled in case a blocking operation is necessary. The message copy procedure is done inside the critical section (interrupts disabled). Thus this change may have a negative impact on the interrupt latency in case very large messages are transferred. Update #2273.
* score: Add Thread_queue_Control::LockSebastian Huber2015-05-196-5/+9
| | | | | | | | | | | Move the complete thread queue enqueue procedure into _Thread_queue_Enqueue_critical(). It is possible to use the thread queue lock to protect state of the object embedding the thread queue. This enables per object fine grained locking in the future. Delete _Thread_queue_Enter_critical_section(). Update #2273.
* score: _Objects_Get_isr_disable()Sebastian Huber2015-04-211-1/+1
| | | | | | | Use ISR_lock_Context instead of ISR_Level to allow use of ISR locks for low-level locking. Update #2273.
* posix: Change sem_t to the 32-bit object typeSebastian Huber2015-03-101-1/+1
| | | | | This change is also valid for 16-bit object type architectures since in this case POSIX_Semaphore_Control::Semaphore_id is used as a proxy.
* posix: Use a value of 0 for SEM_FAILEDSebastian Huber2015-03-101-1/+1
| | | | This is the standard NULL pointer.
* posix: Delete unused _POSIX_Threads_Get()Sebastian Huber2014-12-181-34/+0
| | | | Close #1759.
* posix: Delete key/value if value is set to NULLSebastian Huber2014-12-121-0/+13
|
* posix: Simplify _POSIX_Keys_Find()Sebastian Huber2014-12-121-6/+7
|
* sys/mman.h: New file. Clean up and add supporting stubsJoel Sherrill2014-11-201-0/+189
| | | | | | * 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.
* posix: Add auto initializaton for rwlockSebastian Huber2014-10-081-21/+3
|
* posix: Use RTEMS_DECONST()Sebastian Huber2014-09-081-1/+1
|
* posix: Simplify key implementationSebastian Huber2014-08-052-10/+27
|
* rbtree: Add and use RBTree_Compare_resultSebastian Huber2014-08-051-1/+1
|
* Add and use RTEMS_CONTAINER_OF()Sebastian Huber2014-08-051-0/+3
|
* Delete unused *_Is_null() functionsSebastian Huber2014-07-268-127/+0
|
* rbtree: Reduce RBTree_Control sizeSebastian Huber2014-07-151-2/+19
| | | | | | | | | | | | Remove compare function and is unique indicator from the control structure. Rename RBTree_Compare_function to RBTree_Compare. Rename rtems_rbtree_compare_function to rtems_rbtree_compare. Provide C++ compatible initializers. Add compare function and is unique indicator to _RBTree_Find(), _RBTree_Insert(), rtems_rbtree_find() and rtems_rbtree_insert(). Remove _RBTree_Is_unique() and rtems_rbtree_is_unique(). Remove compare function and is unique indicator from _RBTree_Initialize_empty() and rtems_rbtree_initialize_empty().
* pthreadimpl.h: Conditionalize thread affinity copyingJoel Sherrill2014-04-031-1/+1
|
* score: PR2152: Use allocator mutex for objectsSebastian Huber2014-03-312-26/+8
| | | | | Use allocator mutex for objects allocate/free. This prevents that the thread dispatch latency depends on the workspace/heap fragmentation.
* score: Thread life cycle re-implementationSebastian Huber2014-03-311-1/+3
| | | | | | | | | | | | | | | | | | | The thread deletion is now supported on SMP. This change fixes the following PRs: PR1814: SMP race condition between stack free and dispatch PR2035: psxcancel reveals NULL pointer access in _Thread_queue_Extract() The POSIX cleanup handler are now called in the right context (should be called in the context of the terminating thread). http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_09.html Add a user extension the reflects a thread termination event. This is used to reclaim the Newlib reentrancy structure (may use file operations), the POSIX cleanup handlers and the POSIX key destructors.
* posix: Use thread action for signalsSebastian Huber2014-03-312-6/+11
|
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-2134-34/+34
|
* posix: Use interal mutex for once implementationSebastian Huber2014-03-191-57/+0
| | | | | | Enable pthread_once() for all configurations. The pthread_once() function is one means to initialize POSIX keys. Another use case is the C++ support.
* score: Add local context to SMP lock APISebastian Huber2014-03-111-4/+4
| | | | | | | | | | | Add a local context structure to the SMP lock API for acquire and release pairs. This context can be used to store the ISR level and profiling information. It may be later used to enable more sophisticated lock algorithms, e.g. MCS locks. There is only one lock that cannot be used with a local context. This is the per-CPU lock since here we would have to transfer the local context through a context switch which is very complicated.
* POSIX keys now enabled in all configurations.Joel Sherrill2014-03-072-27/+2
| | | | | | | 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.
* Remove trailing whitespace in previous patchesJennifer Averett2014-03-071-10/+10
|
* posix: Add POSIX thread affinity attribute support.Jennifer Averett2014-03-071-1/+68
| | | | | With the addition of pthread affinity information in pthread_attr_t, the existing code for pthread_attr_t had to be adjusted.
* psignalimpl.h: Remove dead commentJoel Sherrill2013-12-091-3/+1
|
* posix/config.h: Comment clean upJoel Sherrill2013-12-091-10/+102
|
* signalcatch.c: Remove junk commentJoel Sherrill2013-12-091-1/+1
|
* timerimpl.h: Comment clean upJoel Sherrill2013-12-091-36/+22
|
* semaphoreimpl.h: Comment clean upJoel Sherrill2013-12-091-79/+38
|
* mqueueimpl.h: Comment clean upJoel Sherrill2013-12-091-176/+91
|
* condimpl.h: Comment clean upJoel Sherrill2013-12-091-98/+35
|
* ptimer.h: Comment clean upJoel Sherrill2013-12-091-31/+14
|
* muteximpl.h: Comment clean upJoel Sherrill2013-12-091-108/+44
|
* posix: Use cleanup contexts on the stackSebastian Huber2013-12-022-0/+9
| | | | | | | | | | Provide support for latest Newlib <pthread.h> change. The cleanup contexts are stored on the thread stack. This is conformant with the POSIX requirements for the pthread_cleanup_push() and pthread_cleanup_pop() statement pair. Passing an invalid pointer as the routine to pthread_cleanup_push() is now a usage error and the behaviour is undefined.
* posix: Add and use _POSIX_signals_Acquire()Sebastian Huber2013-08-271-1/+11
| | | | | | Add and use _POSIX_signals_Release(). The post-switch handler is not protected by disabled thread dispatching. Use proper SMP lock for signal management.
* posix: Update to the pthread_once changes.Chris Johns2013-08-231-1/+19
| | | | | | Implement the reeview changes. Add a POSIX Fatal error domain. Fix confdefs.h to correctly handle the internal POSIX mutexes.
* posix: TypoSebastian Huber2013-08-141-1/+1
|
* posix: Change pthread_once to be SMP safe.Chris Johns2013-08-141-0/+57
| | | | | | | | | | 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.
* posix: Delete POSIX_Keys_Freechain typeSebastian Huber2013-08-081-17/+14
| | | | | | Use the POSIX configuration value directly. Use right type early and avoid casts. Use proper unlimited objects API. Check workspace allocation. Make functions static.
* posix: Add missing header.Chris Johns2013-08-081-8/+9
|
* posix: Create key implementation headerSebastian Huber2013-08-062-97/+185
| | | | | | 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.
* Unlimited objects support for POSIX keysZhongwei Yao2013-08-063-20/+80
| | | | | | | This patch enables unlimited model in POSIX key manger and have a decent runtime on POSIX key searching, adding and deleting operations. Memory overhead is lower than current implementation when the size of key and key value becomes big.
* score: Create object implementation headerSebastian Huber2013-07-269-2/+9
| | | | | | Move implementation specific parts of object.h and object.inl into new header file objectimpl.h. The object.h contains now only the application visible API.
* score: Create threadq implementation headerSebastian Huber2013-07-263-3/+6
| | | | | | | | Move implementation specific parts of tqdata.h, threadq.h and threadq.inl into new header file threadqimpl.h. The threadq.h contains now only the application visible API. Delete tqdata.h.