summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Remove explicit file names from @fileSebastian Huber2019-02-2887-87/+87
| | | | | | This makes the @file documentation independent of the actual file name. Update #3707.
* libdl/archive: Fix the config file string index while removing tailing white ↵Chris Johns2019-02-201-1/+1
| | | | | | | | space. Coverity issue 1442540 Updates #3686
* libdl/alloc: Add a locking interface to the allocator.Chris Johns2019-02-201-0/+20
| | | | | | | | | | | | | - Allow an allocator to lock the allocations. This is needed to lock the heap allocator so the text and trampoline table are as close together as possible to allow for the largest possible object file size. - Update the default heap allocator to lock the heap allocator. - Update ELF loading to lock the allocator. Updates #3685
* score: Avoid some deadlocks in _Once()Sebastian Huber2019-02-181-4/+6
| | | | | | | | Recursive usage of the same pthread_once_t results now in a deadlock. Previously, an error of EINVAL was returned. This usage scenario is invalid according to the POSIX pthread_once() specification. Close #3334.
* libdl: Allocator does not unlock and lock memory on loading.Chris Johns2019-02-151-2/+68
| | | | Close #3692
* posix: Remove unused _POSIX_Get_object_body()Sebastian Huber2019-02-121-41/+0
|
* libdl: Add powerpc large memory and small data support.Chris Johns2019-02-092-20/+50
| | | | | | | | | | | | | | | | | - Add support for architecure sections that can be handled by the architecture back end. - Add trampoline/fixup support for PowerPC. This means the PowerPC now supports large memory loading of applications. - Add a bit allocator to manage small block based regions of memory. - Add small data (sdata/sbss) support for the PowerPC. The support makes the linker allocated small data region of memory a global resource available to libdl loaded object files. Updates #3687 Updates #3685
* libdl: Add support for large memory programsChris Johns2019-02-094-20/+39
| | | | | | | | | | | | | | | - Add trampolines to support relocs that are out of range on support architectures. - Support not loading separate text/data sections in an object file if the symbol provided in the section is a duplicate. A base image may have pulled in part of an object and another part needs to be dynamically loaded. - Refactor the unresolved handling to scale to hundreds of unresolved symbols when loading large number of files. Updates #3685
* libdl: Add support for trampolinesChris Johns2019-02-091-1/+37
| | | | | | | | | | | | | - Trampolines or fixups for veneers provide long jump support for instruciton sets that implement short relative address branches. The linker provides trampolines when creating a static image. This patch adds trampoline support to libdl and the ARM architecture. - The dl09 test requires enough memory so modules are outside the relative branch instruction ranges for the architecture. Updates #3685
* libdl: Fix the support for constructors and desctructors.Chris Johns2019-02-091-0/+1
| | | | | | | - Fix the handling of pending objects. - Add a constructor flags in objects to track then being called. Closes #2921
* libdl: Add symbol searching and loading from archives.Chris Johns2019-02-096-29/+365
| | | | | | | | | | | | | | - Load archive symbol tables to support searching of archives for symbols. - Search archive symbols and load the object file that contains the symbol. - Search the global and archives until all remaining unresolved symbols are not found. Group the loaded object files in the pending queue. - Run the object file and loaded dependents as a group before adding to the main object list. - Remove orphaned object files after references are removed. Updates #3686
* score: Fix _User_extensions_Thread_switch() (SMP)Sebastian Huber2019-02-081-3/+11
| | | | | We have to read the first node again once we obtained the lock since it may have aready changed.
* record: Add enum value for each eventSebastian Huber2019-01-301-3/+888
| | | | Update #3665.
* Add low level event recording supportSebastian Huber2019-01-296-0/+826
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add low level event recording infrastructure for system and user defined events. The infrastructure is able to record high frequency events such as * SMP lock acquire/release, * interrupt entry/exit, * thread switches, * UMA zone allocate/free, and * Ethernet packet input/output, etc. It allows post-mortem analysis in fatal error handlers, e.g. the last events are in the record buffer, the newest event overwrites the oldest event. It is possible to detect record buffer overflows for consumers that expect a continuous stream of events, e.g. to display the system state in real-time. The implementation supports high-end SMP machines (more than 1GHz processor frequency, more than four processors). Add a new API instead. The implementation uses per-processor data structures and no atomic read-modify-write operations. It is uses per-processor ring buffers to record the events. The CPU counter is used to get the time of events. It is combined with periodic uptime events to synchronize it with CLOCK_REALTIME. The existing capture engine tries to solve this problem also, but its performance is not good enough for high-end production systems. The main issues are the variable-size buffers and the use of SMP locks for synchronization. To fix this, the API would change significantly. Update #3665.
* score: Remove unused _ISR_lock_Flash()Sebastian Huber2019-01-181-31/+0
|
* score: Improve debug support for ISR locksSebastian Huber2019-01-182-17/+39
| | | | Ensure that interrupts are disabled while acquiring an ISR lock.
* score: Simplify _Addresses_Is_aligned()Sebastian Huber2019-01-181-6/+2
| | | | | The CPU_ALIGNMENT must not be zero, this is also checked via a static assertion. Fix formatting.
* Fix format warnings due to ino_t changesSebastian Huber2019-01-101-2/+5
|
* score: Remove superfluous include from chainimpl.hSebastian Huber2019-01-072-1/+1
|
* score: Fix per-CPU data allocationSebastian Huber2018-12-181-1/+2
| | | | | | | | | | | Allocate the per-CPU data for secondary processors directly from the heap areas before heap initialization and not via _Workspace_Allocate_aligned(). This avoids dependency on the workspace allocator. It fixes also a problem on some platforms (e.g. QorIQ) where at this early point in the system initialization the top of the RAM is used by low-level startup code on secondary processors (boot pages). Update #3507.
* config: Remove CONFIGURE_CONFDEFS_DEBUGSebastian Huber2018-12-171-59/+0
| | | | | | | This configuration option was undocumented and not really helpful. To debug issues in <rtems/confdefs.h> it is better to save the preprocessesd file (GCC "-save-temps" option) and use the GCC "-Wp,-dD" pre-processor option.
* score: Static Objects_Information initializationSebastian Huber2018-12-1447-750/+900
| | | | | | | | | | | Statically allocate the objects information together with the initial set of objects either via <rtems/confdefs.h>. Provide default object informations with zero objects via librtemscpu.a. This greatly simplifies the workspace size estimate. RTEMS applications which do not use the unlimited objects option are easier to debug since all objects reside now in statically allocated objects of the right types. Close #3621.
* rtems: Use object information to get config maxSebastian Huber2018-12-142-7/+18
| | | | | | | Use functions instead of macros. Add missing rtems_configuration_get_maximum_*() functions. Update #3621.
* score: Remove Objects_Information::auto_extendSebastian Huber2018-12-141-4/+23
| | | | | | | Use Objects_Information::objects_per_block to provide this information. Add and use _Objects_Is_auto_extend(). Update #3621.
* score: Remove Objects_Information::the_apiSebastian Huber2018-12-071-4/+0
| | | | | | | Remove Objects_Information::the_class. This information is already contained in Objects_Information::maximum_id. Update #3621.
* score: Remove Objects_Information::maximumSebastian Huber2018-12-071-3/+15
| | | | | | | This information is already present in Objects_Information::maximum_id. Add and use _Objects_Get_maximum_index(). Update #3621.
* score: Optimize object lookupSebastian Huber2018-12-071-3/+23
| | | | | | | | | | | | | | | | Use the maximum ID for the ID to object translation. Using the maximum ID gets rid of an additional load from the object information in _Objects_Get(). In addition, object lookups fail for every ID in case the object information is cleared to zero. This makes it a bit more robust during system startup (see new tests in spconfig02). The local table no longer needs a NULL pointer entry at array index zero. Adjust all the object iteration loops accordingly. Remove Objects_Information::minimum_id since it contains only redundant information. Add _Objects_Get_minimum_id() to get the minimum ID. Update #3621.
* score: Rename Objects_Information::allocation_sizeSebastian Huber2018-12-071-2/+2
| | | | | | | | Rename Objects_Information::allocation_size in Objects_Information::objects_per_block. Adjust integer types in _Objects_Shrink_information() and _Objects_Free(). Update #3621.
* score: Rename Objects_Information::sizeSebastian Huber2018-12-071-8/+8
| | | | | | | | Rename Objects_Information::size to Objects_Information::object_size. Change its type from size_t to uint16_t and move it to reduce the size of Objects_Information. Update #3621.
* score: Remove Objects_Information::is_stringSebastian Huber2018-12-071-11/+22
| | | | | | Use Objects_Information::name_length to store this information. Update #3621.
* rtems: Add rtems_scheduler_get_maximum_priority()Sebastian Huber2018-12-071-0/+15
| | | | Update #3636.
* score: Avoid sbintime_t in API headersSebastian Huber2018-12-075-267/+306
| | | | | | | | | | The sbintime_t is a non-POSIX type and not visible if strict standard options are selected. Move implementation details from <rtems/score/timestamp.h> to <rtems/score/timestampimpl.h>. Update #3598.
* score: Use __typeof__ for strict ISO C compatSebastian Huber2018-12-061-3/+3
| | | | | Enable the use of RTEMS_DEVOLATILE() and RTEMS_DECONST() in strict ISO C environments.
* rtems: Fix rtems_task_restart() argument typeSebastian Huber2018-12-061-3/+3
| | | | Close #3637.
* Spelling and grammar fixes in source code comments (GCI 2018)Marçal Comajoan Cara2018-12-043-6/+6
|
* Convert CPU counter ticks to/from sbintime_tSebastian Huber2018-12-031-8/+28
| | | | | The sbintime_t is an efficient time format. Add the ability to convert CPU counter ticks to/from sbintime_t.
* Remove rtems_cache_*_processor_set() functionsSebastian Huber2018-11-261-79/+0
| | | | | | | | The following rtems_cache_*_processor_set() cache manager API functions are exotic, complex, very hard to use correctly, not used in the RTEMS code base, and apparently unused by applications. Close #3622.
* score: <rtems/score/smplockstats.h>Sebastian Huber2018-11-261-17/+17
| | | | | | | Remove <rtems/score/chainimpl.h> include from <rtems/score/smplockstats.h>. Close #3598.
* score: Introduce <rtems/score/heapinfo.h>Sebastian Huber2018-11-263-119/+160
| | | | | | | Move Heap_Information_block to separate header file to hide heap implementation details from <rtems.h>. Update #3598.
* libdl: Add object file dependencies to track referencesChris Johns2018-11-224-16/+128
| | | | | | | | | | Tracking references lets us manage when an object file can be unloaded. If an object file has references to it, it cannot be unloaded. Modules that depend on each other cannot be unloaded. Updates #3605
* libdl: Reindex unresolved names after removing used records.Chris Johns2018-11-221-1/+6
| | | | Updates #3194
* libdl: Manage the allocation of common uninitialised variables.Chris Johns2018-11-221-0/+33
| | | | | | | | | | | | | The use of separate text and data results in uninitialised variables being placed in the common section. There is no section in ELF for the common variables so the loader needs to create the section and allocate the variables in that section. This patch does that. The patch adds a second pass over the symbols. The issue can also be seen as a section 65522 error. Updates #3604
* score: Remove support for RTEMS_USE_16_BIT_OBJECTSebastian Huber2018-11-212-53/+2
| | | | | | | | | The RTEMS_USE_16_BIT_OBJECT define is not set by an RTEMS port. Remove support for 16-bit object identifiers. If someone really wants to use RTEMS on a 16-bit target, then it is better to use self-contained objects instead of playing around with object identifier optimizations. Update #3603.
* Include missing <sys/cpuset.h>Sebastian Huber2018-11-141-2/+6
| | | | Update #3598.
* Add rtems_malloc() and rtems_calloc()Sebastian Huber2018-11-121-0/+33
| | | | Close #3583.
* score: Add and use malloc() family attributesSebastian Huber2018-11-122-1/+52
| | | | Update #3583.
* score: Deprecate proc_ptrSebastian Huber2018-11-121-1/+1
| | | | Update #3585.
* score: Move internal structures to userextdata.hSebastian Huber2018-11-124-24/+65
| | | | Update #3598.
* score: Includes in <rtems/score/smplockstats.h>Sebastian Huber2018-11-121-0/+2
| | | | | | Include implementation header files only if necessary. Update #3598.
* rtems: Simplify includes in <rtems/rtems/cache.h>Sebastian Huber2018-11-121-2/+1
| | | | Update #3598.