summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi/include/rtems (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Optional Extensions initializationSebastian Huber2016-02-031-12/+1
| | | | Update #2408.
* score: Fix simple timecounter supportSebastian Huber2016-01-191-6/+29
| | | | Update #2502.
* score: Introduce Thread_Entry_informationSebastian Huber2016-01-111-1/+1
| | | | | | | This avoids potential dead code in _Thread_Handler(). It gets rid of the dangerous function pointer casts. Update #2514.
* api: Remove deprecated NotepadsAun-Ali Zaidi2015-12-241-3/+1
| | | | | | | | | | | | | | | | | | | | | | | Notepads where a feature of RTEMS' tasks that simply functioned in the same way as POSIX keys or threaded local storage (TLS). They were introduced well before per task variables, which are also deprecated, and were barely used in favor of their POSIX alternatives. In addition to their scarce usage, Notepads took up unnecessary memory. For each task: - 16 32-bit integers were allocated. - A total of 64 bytes per task per thread. This is especially critical in low memory and safety-critical applications. They are also defined as uint32_t, and therefore are not guaranteed to hold a pointer. Lastly, they are not portable solutions for SMP and uniprocessor systems, like POSIX keys and TLS. updates #2493.
* Use linker set for system initializationSebastian Huber2015-12-111-38/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make rtems_initialize_data_structures(), rtems_initialize_before_drivers() and rtems_initialize_device_drivers() static. Rename rtems_initialize_start_multitasking() to rtems_initialize_executive() and call the registered system initialization handlers in this function. Add system initialization API available via #include <rtems/sysinit.h>. Update the documentation accordingly. This is no functional change, only the method to call the existing initialization routines changes. Instead of direct function calls a table of function pointers contained in the new RTEMS system initialization linker set is used. This table looks like this (the actual addresses depend on the target). nm *.exe | grep _Linker | sort 0201a2d0 D _Linker_set__Sysinit_begin 0201a2d0 D _Linker_set__Sysinit_bsp_work_area_initialize 0201a2d4 D _Linker_set__Sysinit_bsp_start 0201a2d8 D _Linker_set__Sysinit_rtems_initialize_data_structures 0201a2dc D _Linker_set__Sysinit_bsp_libc_init 0201a2e0 D _Linker_set__Sysinit_rtems_initialize_before_drivers 0201a2e4 D _Linker_set__Sysinit_bsp_predriver_hook 0201a2e8 D _Linker_set__Sysinit_rtems_initialize_device_drivers 0201a2ec D _Linker_set__Sysinit_bsp_postdriver_hook 0201a2f0 D _Linker_set__Sysinit_end Add test sptests/spsysinit01. Update #2408.
* Remove <rtems/debug.h>Sebastian Huber2015-12-071-2/+0
| | | | Close #2477.
* sapi: Add rtems_chain_get_first_unprotected()Sebastian Huber2015-11-051-0/+10
| | | | Close #2459.
* basdefs.h: Add and use RTEMS_DEPRECATEDSebastian Huber2015-10-262-2/+2
|
* basedefs.h: Add and use RTEMS_NO_RETURNSebastian Huber2015-10-262-5/+5
|
* rbtree: Delete rtems_rbtree_find_control()Sebastian Huber2015-09-011-10/+0
| | | | | This function is hard to support in alternative implementations. It has no internal use case.
* rbtree: Delete _RBTree_Initialize()Sebastian Huber2015-08-311-7/+11
| | | | This function has no internal use case.
* rbtree: Delete _RBTree_Get()Sebastian Huber2015-08-311-10/+32
| | | | This function has no internal use case.
* rbtree: Delete _RBTree_Is_first()Sebastian Huber2015-08-311-2/+2
|
* rbtree: Add _RBTree_Minimum(), _RBTree_Maximum()Sebastian Huber2015-08-311-10/+6
|
* timecounter: Port to RTEMSAlexander Krutwig2015-05-202-0/+445
| | | | | | New test sptests/timecounter01. Update #2271.
* sapi: Avoid declaration in source, fix typeSebastian Huber2015-04-171-0/+2
|
* Fix even more Doxygen issuesJoel Sherrill2015-03-061-1/+1
|
* Move test support from sapi to libmisc/testsupportSebastian Huber2015-03-051-125/+0
|
* rbtree: Simplify insert and extractSebastian Huber2014-08-071-9/+3
| | | | | | | Simplify _RBTree_Insert() and _RBTree_Extract(). Remove more superfluous NULL pointer checks. Change _RBTree_Is_root() to use only the node. Add parent parameter to _RBTree_Sibling(). Delete _RBTree_Grandparent() and _RBTree_Parent_sibling().
* rbtree: Add and use RBTree_Compare_resultSebastian Huber2014-08-052-4/+6
|
* Add and use RTEMS_CONTAINER_OF()Sebastian Huber2014-08-052-11/+1
|
* rbtree: Rename find header in find controlSebastian Huber2014-07-291-4/+4
| | | | Simplify _RBTree_Find_control(). Avoid superfluous NULL pointer checks.
* rbtree: Simplify off-tree handlingSebastian Huber2014-07-291-4/+4
| | | | | | | Only use the parent pointer, since this pointer is never NULL for nodes which are part of a tree. Rename functions from *_off_rbtree() to *_off_tree().
* Delete unused *_Is_null() functionsSebastian Huber2014-07-261-7/+0
|
* rbtree: Reduce RBTree_Control sizeSebastian Huber2014-07-151-28/+18
| | | | | | | | | | | | 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().
* rbtree: Delete unused functionsSebastian Huber2014-07-151-40/+0
|
* score: Fix scheduler context initializerSebastian Huber2014-06-121-3/+3
|
* score: Add clustered/partitioned schedulingSebastian Huber2014-04-151-0/+23
| | | | | | | | | | | | | | | Clustered/partitioned scheduling helps to control the worst-case latencies in the system. The goal is to reduce the amount of shared state in the system and thus prevention of lock contention. Modern multi-processor systems tend to have several layers of data and instruction caches. With clustered/partitioned scheduling it is possible to honour the cache topology of a system and thus avoid expensive cache synchronization traffic. We have clustered scheduling in case the set of processors of a system is partitioned into non-empty pairwise-disjoint subsets. These subsets are called clusters. Clusters with a cardinality of one are partitions. Each cluster is owned by exactly one scheduler instance.
* score: Add scheduler nameSebastian Huber2014-04-151-14/+21
|
* score: Static scheduler configurationSebastian Huber2014-04-151-0/+160
| | | | | | Do not allocate the scheduler control structures from the workspace. This is a preparation step for configuration of clustered/partitioned schedulers on SMP.
* score: Statically initialize IO managerSebastian Huber2014-04-102-24/+2
| | | | | | | | | | | | This simplifies the RTEMS initialization and helps to avoid a memory overhead. The workspace demands of the IO manager were not included in the <rtems/confdefs.h> workspace size estimate. This is also fixed as a side-effect. Update documentation and move "Specifying Application Defined Device Driver Table" to the section end. This sub-section is not that important for the user. Mentioning this at the beginning may lead to confusion.
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-2116-16/+16
|
* sapi: Add <rtems/test.h>Sebastian Huber2014-03-171-0/+125
| | | | | | Provide support functions to print the begin/end of test message. Provide a test fatal extension to print out profiling reports in the future.
* sapi: Add SMP lock profiling app. level dataSebastian Huber2014-03-141-1/+98
|
* sapi: Add per-CPU profiling application level dataSebastian Huber2014-03-141-0/+101
|
* sapi: Add profiling application level supportSebastian Huber2014-03-141-0/+148
|
* sapi: TyposSebastian Huber2014-03-131-3/+3
|
* sapi: Use one SMP lock for all chainsSebastian Huber2014-03-111-83/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This partially reverts commit 1215fd4d9426a59d568560e9a485628560363133. In order to support profiling of SMP locks and provide a future compatible SMP locks API it is necessary to add an SMP lock destroy function. Since the commit above adds an SMP lock to each chain control we would have to add a rtems_chain_destroy() function as well. This complicates the chain usage dramatically. Thus revert the patch above. A global SMP lock for all chains is used to implement the protected chain operations. Advantages: * The SAPI chain API is now identical on SMP and non-SMP configurations. * The size of the chain control is reduced and is then equal to the Score chains. * The protected chain operations work correctly on SMP. Disadvantage: * Applications using many different chains and the protected operations may notice lock contention. The chain control size drop is a huge benefit (SAPI chain controls are 66% larger than the Score chain controls). The only disadvantage is not really a problem since these applications can use specific interrupt locks and unprotected chain operations to avoid this issue.
* POSIX keys now enabled in all configurations.Joel Sherrill2014-03-071-1/+17
| | | | | | | 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.
* score: Rename _Internal_error_Occurred()Sebastian Huber2014-02-211-2/+2
| | | | Rename _Internal_error_Occurred() into _Terminate().
* score: Add CPU counter supportSebastian Huber2014-02-141-0/+160
| | | | | | | | | Add a CPU counter interface to allow access to a free-running counter. It is useful to measure short time intervals. This can be used for example to enable profiling of critical low-level functions. Add two busy wait functions rtems_counter_delay_ticks() and rtems_counter_delay_nanoseconds() implemented via the CPU counter.
* score: Change debug helper functionsSebastian Huber2014-02-121-8/+12
| | | | | | | | Rename rtems_internal_error_description() to rtems_internal_error_text(). Rename rtems_fatal_source_description() to rtems_fatal_source_text(). Rename rtems_status_code_description() to rtems_status_text(). Remove previous implementation of rtems_status_text().
* score/rbtree: Remove "unprotected" from APISebastian Huber2013-11-211-22/+38
|
* score/rbtree: Delete protected operationsSebastian Huber2013-11-211-112/+0
| | | | | The user of the red-black tree container must now ensure that at most one thread at once can access an instance.
* sapi: SMP support for chainsSebastian Huber2013-08-301-31/+134
| | | | | | | | Add ISR lock to chain control for proper SMP protection. Replace rtems_chain_extract() with rtems_chain_explicit_extract() and rtems_chain_insert() with rtems_chain_explicit_insert() on SMP configurations. Use rtems_chain_explicit_extract() and rtems_chain_explicit_insert() to provide SMP support.
* score: Add and use CHAIN_INITIALIZER_ONE_NODE().Sebastian Huber2013-08-271-0/+16
| | | | | | Add and use CHAIN_NODE_INITIALIZER_ONE_NODE_CHAIN(), RTEMS_CHAIN_INITIALIZER_ONE_NODE() and RTEMS_CHAIN_NODE_INITIALIZER_ONE_NODE_CHAIN().
* score: Create object implementation headerSebastian Huber2013-07-261-0/+1
| | | | | | 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: Merge sysstate API into one fileSebastian Huber2013-07-241-1/+0
|
* sapi: Create extension implementation headerSebastian Huber2013-07-232-17/+73
| | | | | | Move implementation specific parts of extension.h and extension.inl into new header file extensionimpl.h. The extension.h contains now only the application visible API.
* sapi: Merge rbtree API into one fileSebastian Huber2013-07-231-4/+469
|