| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This makes the @file documentation independent of the actual file name.
Update #3707.
|
|
|
|
|
|
|
|
| |
space.
Coverity issue 1442540
Updates #3686
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Close #3692
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
| |
- Fix the handling of pending objects.
- Add a constructor flags in objects to track then being called.
Closes #2921
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
| |
We have to read the first node again once we obtained the lock since it
may have aready changed.
|
|
|
|
| |
Update #3665.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Ensure that interrupts are disabled while acquiring an ISR lock.
|
|
|
|
|
| |
The CPU_ALIGNMENT must not be zero, this is also checked via a static
assertion. Fix formatting.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Use functions instead of macros. Add missing
rtems_configuration_get_maximum_*() functions.
Update #3621.
|
|
|
|
|
|
|
| |
Use Objects_Information::objects_per_block to provide this information.
Add and use _Objects_Is_auto_extend().
Update #3621.
|
|
|
|
|
|
|
| |
Remove Objects_Information::the_class. This information is already
contained in Objects_Information::maximum_id.
Update #3621.
|
|
|
|
|
|
|
| |
This information is already present in Objects_Information::maximum_id.
Add and use _Objects_Get_maximum_index().
Update #3621.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Rename Objects_Information::allocation_size in
Objects_Information::objects_per_block. Adjust integer types in
_Objects_Shrink_information() and _Objects_Free().
Update #3621.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Use Objects_Information::name_length to store this information.
Update #3621.
|
|
|
|
| |
Update #3636.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Enable the use of RTEMS_DEVOLATILE() and RTEMS_DECONST() in strict ISO C
environments.
|
|
|
|
| |
Close #3637.
|
| |
|
|
|
|
|
| |
The sbintime_t is an efficient time format. Add the ability to convert
CPU counter ticks to/from sbintime_t.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Remove <rtems/score/chainimpl.h> include from
<rtems/score/smplockstats.h>.
Close #3598.
|
|
|
|
|
|
|
| |
Move Heap_Information_block to separate header file to hide heap
implementation details from <rtems.h>.
Update #3598.
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Updates #3194
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Update #3598.
|
|
|
|
| |
Close #3583.
|
|
|
|
| |
Update #3583.
|
|
|
|
| |
Update #3585.
|
|
|
|
| |
Update #3598.
|
|
|
|
|
|
| |
Include implementation header files only if necessary.
Update #3598.
|
|
|
|
| |
Update #3598.
|