summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/include/rtems/posix/muteximpl.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Remove make preinstallChris Johns2018-01-251-487/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
* score: Move thread queue timeout handlingSebastian Huber2017-10-241-18/+14
| | | | | Update #3117. Update #3182.
* score: Add _Thread_queue_Dispatch_disable()Sebastian Huber2017-10-101-6/+2
|
* posix: Implement self-contained POSIX mutexSebastian Huber2017-10-051-51/+403
| | | | | | | | POSIX mutexes are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3112.
* posix: _POSIX_Mutex_Default_attributesSebastian Huber2016-06-221-1/+1
| | | | | | Make _POSIX_Mutex_Default_attributes constant and independent of the scheduler instance. Use INT_MAX to indicate the default ceiling priority.
* score: Add CORE mutex variantsSebastian Huber2016-05-301-0/+35
| | | | | | | | Add CORE_recursive_mutex_Control and CORE_ceiling_mutex_Control to avoid the run-time evaluation of attributes to figure out how a particular mutex methods should behave. Start with the no protocol variants. This eliminates the CORE_MUTEX_DISCIPLINES_FIFO and CORE_MUTEX_DISCIPLINES_PRIORITY disciplines.
* score: Add Status_Control for all APIsSebastian Huber2016-05-261-42/+0
| | | | | | | | | | | 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.
* score: Move thread queue MP callout to contextSebastian Huber2016-05-251-2/+2
| | | | | | | | Drop the multiprocessing (MP) dependent callout parameter from the thread queue extract, dequeue, flush and unblock methods. Merge this parameter with the lock context into new structure Thread_queue_Context. This helps to gets rid of the conditionally compiled method call helpers.
* Replace *_Get_interrupt_disable() with *_Get()Sebastian Huber2016-05-201-1/+1
| | | | | Uniformly use *_Get() to get an object by identifier with a lock context.
* posix: Avoid Giant lock for condition variablesSebastian Huber2016-04-271-0/+10
| | | | Update #2555.
* posix: Avoid Giant lock for mutexesSebastian Huber2016-04-211-14/+0
| | | | | | | Delete _POSIX_Mutex_Get(). Use _POSIX_Mutex_Get_interrupt_disable() instead. Update #2555.
* posix: Simplify _POSIX_Mutex_Get_interrupt_disableSebastian Huber2016-04-211-7/+7
| | | | Remove superfluous location parameter.
* Optional POSIX Mutex initializationSebastian Huber2016-02-031-9/+2
| | | | Update #2408.
* score: Add Thread_queue_Control::LockSebastian Huber2015-05-191-0/+1
| | | | | | | | | | | 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.
* Delete unused *_Is_null() functionsSebastian Huber2014-07-261-15/+0
|
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-211-1/+1
|
* muteximpl.h: Comment clean upJoel Sherrill2013-12-091-108/+44
|
* posix: Convert to inline functionSebastian Huber2013-07-181-4/+16
|
* score: Create mutex implementation headerSebastian Huber2013-07-181-0/+1
| | | | | | Move implementation specific parts of coremutex.h and coremutex.inl into new header file coremuteximpl.h. The coremutex.h contains now only the application visible API.
* posix: Create mutex implementation headerSebastian Huber2013-07-181-0/+226
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.