summaryrefslogtreecommitdiffstats
path: root/cpukit/score/Makefile.am (follow)
Commit message (Collapse)AuthorAgeFilesLines
* build: Include header.am in cpukit/Makefile.amSebastian Huber2018-10-101-9/+0
| | | | | Include all cpukit/*/header.am files in cpukit/Makefile.am. This gets rid of all subtree Makefile.am and the sudirs hack.
* build: Merge score/cpu/*/Makefile.amSebastian Huber2018-10-101-2/+0
|
* build: Merge score/Makefile.amSebastian Huber2018-10-101-229/+0
|
* build: Remove specialized CPPFLAGSSebastian Huber2018-10-091-1/+0
|
* score: Add thread pin/unpin supportSebastian Huber2018-09-101-0/+2
| | | | | | | | | Add support to temporarily pin a thread to its current processor. This may be used to access per-processor data structures in critical sections with enabled thread dispatching, e.g. a pinned thread is allowed to block. Update #3508.
* score: Add postorder tree iteration supportSebastian Huber2018-07-161-0/+1
| | | | Update #3465.
* build: Remove DISTCLEANFILESSebastian Huber2018-04-091-1/+0
| | | | | A "make distclean" is not supported. So, it makes no sense to have pure "make distclean" related stuff in the Makefile.am.
* build: Remove EXTRA_DISTSebastian Huber2018-04-041-1/+0
| | | | | A "make dist" is not supported. So, it makes no sense to have pure "make dist" related stuff in the Makefile.am.
* Remove make preinstallChris Johns2018-01-251-123/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Use self-contained API mutexSebastian Huber2017-12-041-3/+4
| | | | | | | | | | Use a self-contained recursive mutex for API_Mutex_Control. The API mutexes are protected against asynchronous thread cancellation. Add dedicated mutexes for libatomic and TOD. Close #2629. Close #2630.
* score: Simplify global constructionSebastian Huber2017-11-221-1/+0
| | | | Update #3243.
* score: Add _IO_Printf() and _IO_Vprintf()Sebastian Huber2017-11-061-0/+3
| | | | | | | | | | | | | | The previous vprintk() implementation had a questionable licence header, lacks support for the 'z' and 'j' format specifiers, is not robust against invalid format specifiers, uses a global variable for output. Replace it with a stripped down version of the FreeBSD kernel kvprintf() function. The new implementation allows a low overhead rtems_snprintf() if necessary. Update #3199. Close #3216.
* score: Move thread queue timeout handlingSebastian Huber2017-10-241-1/+1
| | | | | Update #3117. Update #3182.
* score: Remove CPU_set_ControlSebastian Huber2017-10-111-4/+0
| | | | | | Use Processor_mask instead. Update #2514.
* posix: Implement self-contained POSIX mutexSebastian Huber2017-10-051-0/+1
| | | | | | | | POSIX mutexes are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3112.
* posix: Implement self-contained POSIX rwlocksSebastian Huber2017-10-051-7/+1
| | | | | | | | POSIX rwlocks are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3115.
* posix: Implement self-contained POSIX semaphoresSebastian Huber2017-10-051-0/+1
| | | | | | | | | | | | | | 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.
* score: Move processor affinity to Thread_ControlSebastian Huber2017-07-071-1/+0
| | | | Update #3059.
* score: Add processor mask to/from cpu_set_tSebastian Huber2017-07-061-0/+1
| | | | Update #3059.
* score: Add SMP EDF schedulerSebastian Huber2017-06-291-0/+2
| | | | Update #3056.
* build-system: Parallel build all subdirs.Chris Johns2017-05-241-1/+1
|
* score: Fix scheduler yield in SMP configurationsSebastian Huber2017-03-071-0/+1
| | | | | | | | | Check that no ask help request is registered during unblock and yield scheduler operations. There is no need to ask for help if a scheduled thread yields, since this is already covered by the pre-emption detection. Update #2556.
* score: Add and use _Thread_Get_name()Sebastian Huber2017-01-131-0/+1
| | | | Update #2858.
* posix: Add self-contained pthread spinlockSebastian Huber2016-11-231-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* score: Delete obsolete scheduler debug aidSebastian Huber2016-11-231-1/+0
|
* score: Delete Resource HandlerSebastian Huber2016-11-021-3/+0
| | | | Update #2556.
* score: Delete unused functionsSebastian Huber2016-11-021-1/+0
| | | | | | | Delete _Scheduler_Thread_change_resource_root() and _Scheduler_Thread_change_help_state(). Update #2556.
* score: Add _Thread_Scheduler_process_requests()Sebastian Huber2016-11-021-0/+1
| | | | Update #2556.
* rtems: Add rtems_task_iterate()Sebastian Huber2016-11-021-0/+1
| | | | Update #2423.
* score: Rework thread priority managementSebastian Huber2016-09-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Add priority nodes which contribute to the overall thread priority. The actual priority of a thread is now an aggregation of priority nodes. The thread priority aggregation for the home scheduler instance of a thread consists of at least one priority node, which is normally the real priority of the thread. The locking protocols (e.g. priority ceiling and priority inheritance), rate-monotonic period objects and the POSIX sporadic server add, change and remove priority nodes. A thread changes its priority now immediately, e.g. priority changes are not deferred until the thread releases its last resource. Replace the _Thread_Change_priority() function with * _Thread_Priority_perform_actions(), * _Thread_Priority_add(), * _Thread_Priority_remove(), * _Thread_Priority_change(), and * _Thread_Priority_update(). Update #2412. Update #2556.
* score: Add scheduler node implementation headerSebastian Huber2016-09-081-0/+1
| | | | Update #2556.
* score: Move scheduler node to own header fileSebastian Huber2016-09-081-0/+1
| | | | | | | This makes it possible to add scheduler nodes to structures defined in <rtems/score/thread.h>. Update #2556.
* score: Add _Thread_queue_Surrender()Sebastian Huber2016-08-111-1/+0
| | | | | Add _Thread_queue_Surrender() to unify the mutex surrender procedures which involve a thread queue operation.
* score: Add thread priority to scheduler nodesSebastian Huber2016-06-221-3/+0
| | | | | | | | | | | | | | | | | | The thread priority is manifest in two independent areas. One area is the user visible thread priority along with a potential thread queue. The other is the scheduler. Currently, a thread priority update via _Thread_Change_priority() first updates the user visble thread priority and the thread queue, then the scheduler is notified if necessary. The priority is passed to the scheduler via a local variable. A generation counter ensures that the scheduler discards out-of-date priorities. This use of a local variable ties the update in these two areas close together. For later enhancements and the OMIP locking protocol implementation we need more flexibility. Add a thread priority information block to Scheduler_Node and synchronize priority value updates via a sequence lock on SMP configurations. Update #2556.
* score: Move _RBTree_Find()Sebastian Huber2016-06-221-1/+1
| | | | | | The _RBTree_Find() is no longer used in the score. Move it to sapi and make it rtems_rbtree_find(). Move corresponding types and support functions to sapi.
* score: Introduce map priority scheduler operationSebastian Huber2016-06-221-0/+1
| | | | | | | | | | | Introduce map/unmap priority scheduler operations to map thread priority values from/to the user domain to/from the scheduler domain. Use the map priority operation to validate the thread priority. The EDF schedulers use this new operation to distinguish between normal priorities and priorities obtain through a job release. Update #2173. Update #2556.
* score: Delete unused _Scheduler_Priority_compare()Sebastian Huber2016-06-221-2/+0
| | | | | By convention, thread priorities must be integers in RTEMS. Smaller values represent more important threads.
* score: Add an SMP sequence lock implementationSebastian Huber2016-06-091-0/+1
|
* score: Rework CORE inherit priority mutexSebastian Huber2016-05-301-2/+2
| | | | | Provide dedicated seize and surrender methods for inherit priority mutexes. This eliminates CORE_mutex_Attributes.
* score: Add libatomic supportSebastian Huber2016-05-301-0/+1
| | | | Close #2695.
* score: Add Status_Control for all APIsSebastian Huber2016-05-261-0/+1
| | | | | | | | | | | 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: Delete unused _Objects_Get_isr_disable()Sebastian Huber2016-05-201-1/+1
| | | | Delete now unused Objects_Locations.
* score: Remove the Giant lockSebastian Huber2016-05-201-5/+0
| | | | Update #2555.
* score: Delete unused _Objects_Get()Sebastian Huber2016-05-201-1/+1
| | | | Update #2555.
* SMP: Add Mellor-Crummey and Scott (MCS) lockSebastian Huber2016-05-191-0/+1
| | | | | | | | | | Added only for evaluation purposes. We have to compare the performance against the ticket lock on the interesting platforms via smptests/smplock01. The following GCC shortcoming affects the MCS lock: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66867
* SMP: Move ticket lock to separate header fileSebastian Huber2016-05-191-0/+1
|
* SMP: Move lock stats to separate header fileSebastian Huber2016-05-191-0/+1
|
* score: Add dummy Strong APA schedulerSebastian Huber2016-05-021-0/+2
| | | | | | Start with a copy of the Priority SMP scheduler implementation. Update #2510.
* score: __RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__Sebastian Huber2016-05-021-2/+1
| | | | | Delete __RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__ as a preparation to restructure the CORE mutex variants and reduce the branch complexity.
* score: Delete _Chain_Append()Sebastian Huber2016-04-061-1/+1
| | | | | | This function is not used in the score. Update #2555.