| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
rtl-mdreloc-arm.c was used as the basis for rtl-mdreloc-aarch64.c. This lead
to some code being shared by the two files. The code was consolidated into
rtl-unwind-arm.c.
Closes #4686
|
|
|
|
|
|
|
|
| |
This issue was reported by Coverity Scan for RTEMS:
CID 1507760: Control flow issues (DEADCODE)
Closes #4690.
|
|
|
|
| |
Updates #4662
|
|
|
|
| |
Updates #4662
|
|
|
|
| |
Closes #4690
|
|
|
|
| |
Update #4670.
|
|
|
|
|
|
|
|
|
| |
A relative CLOCK_REALTIME time out shall not be affected by CLOCK_REALTIME
changes through clock_settime(). Since our CLOCK_REALTIME is basically just
CLOCK_MONOTONIC plus an offset, we can simply use the CLOCK_MONOTONIC watchdog
for relative CLOCK_REALTIME time outs.
Update #4690.
|
|
|
|
| |
- Report version, cpu, bsp, tools and options.
|
|
|
|
|
|
|
| |
Since commit 6a6580331df3e09516d50f37d4dd5fd57825c08a, the local table is
zero-initialized. Use an initial object control block instead.
Update #4678.
|
|
|
|
|
|
|
|
|
|
|
|
| |
In rtems_rtl_symbol_global_add() the loop that gets to the end of the symbol
table used "unsigned long" to increment the index for the table. For most
architectures this resulted in 4, but with AArch64, it results in 8. This
resulted in the symbols being read in wrong. Changing this to void* along with
changing the RISC-V specific code for 8 byte pointers in rtems-tools to work
independent of the architecture.
Updates #4673
Closes #4682
|
|
|
|
| |
Updates #4682
|
|
|
|
|
|
| |
rtl-mdreloc-aarch64.c and elf_machdep.h came from NetBSD.
Updates #4682
|
|
|
|
|
|
|
| |
The aarch64 define was incorrect. This was causing the libdl tests to not
work correctly.
Updates #4682
|
|
|
|
|
|
| |
Updated this file with the newer version in NetBSD.
Updates #4682
|
|
|
|
|
|
|
| |
Place the object control blocks in dedicated sections to allow a linker garbage
collection.
Update #4678.
|
|
|
|
|
|
|
|
|
|
| |
The rtems_task_delete() directive is basically just a combined pthread_cancel()
and pthread_join(). In addition, it removes the PTHREAD_DETACHED state. The
exit value returned by pthread_join() of threads cancelled by
rtems_task_delete() should reflect this by getting a PTHREAD_CANCELED value
instead of NULL which could be a normal exit value.
Close #4680.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Threads may join the thread termination of another thread using the
pthread_join() or rtems_task_delete() directives. The thread cancel operation
used a special case priority boosting mechanism implemented by
_Thread_Raise_real_priority(). The problem was that this approach
* is not transitive,
* does not account for priority adjustments of the calling task
while waiting for the join,
* does not support clustered scheduling, and
* does not detect deadlocks.
All these problems are fixed by using a priority inheritance thread queue for
the join operation.
Close #4679.
|
|
|
|
|
|
|
|
|
|
|
| |
- Support DDRMC0 region 0 up to 2G in size
- Support DDRMC0 region 1 with DDR memory greater than 2G
up to the DDRMC0 max amount
- Extend the heap with region 1's memory
Closes #4684
|
|
|
|
| |
Update #4684
|
| |
|
|
|
|
| |
This fixes a test failure on 64-bit systems with RTEMS_DEBUG enabled.
|
|
|
|
|
|
|
|
| |
The objects local table must be statically zero-initialized so that
_Objects_Get() and _Objects_Get_no_protection() return NULL if no object is
associated with the identifier.
Update #4678.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The uniprocessor schedulers had some special case logic for the
PRIORITY_PSEUDO_ISR priority. Tasks with a priority of PRIORITY_PSEUDO_ISR
were allowed to preempt a not preemptible task. If other higher priority task
are made ready while a PRIORITY_PSEUDO_ISR task preempts a not preemptible
task, then the other tasks run before the not preemptible task. This made the
RTEMS_NO_PREEMPT mode ineffective.
Remove the PRIORITY_PSEUDO_ISR special case logic. This simplifies the
uniprocessor schedulers. Move the uniprocessor-specific scheduler support to
the new header file <rtems/score/scheduleruniimpl.h>.
Close #2365.
|
| |
|
| |
|
|
|
|
|
|
| |
The build option definitions were rearranged such that the option
definitions used in the linker script were not available. This caused
linker errors when building.
|
| |
|
|
|
|
|
|
|
|
|
| |
This alters the AArch64 page table generation and mapping code and MMU
configuration to use page table level 0 in addition to levels 1, 2, and
3. This allows the mapping of up to 48 bits of memory space and is the
maximum that can be mapped without relying on additional processor
extensions. Mappings are restricted based on the number of physical
address bits that the CPU supports.
|
|
|
|
|
|
|
|
|
| |
In case the Newlib _REENT_THREAD_LOCAL configuration option is enabled, the
struct _reent is not defined (there is only a forward declaration in
<sys/reent.h>). Instead, the usual members of struct _reent are available as
dedicatd thread-local storage objects.
Update #4560.
|
|
|
|
| |
Update #4560.
|
| |
|
|
|
|
| |
Update #4338.
|
|
|
|
|
|
|
|
| |
Sort the .noinit* input sections by name first, then by alignment if two
sections have the same name. This allows the placement of begin/end symbols to
initialize some areas with a special value.
Update #4678.
|
|
|
|
| |
Update #4670.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When fdt_get_string return null, `namep` is not correctly reset.
From the document of `fdt_getprop_by_offset`, the parameter `namep` will
be always overwritten (that is, it will be overwritten without exception
of error occurance).
As for the caller (like
https://github.com/topjohnwu/Magisk/blob/e097c097feb881f6097b6d1dc346f310bc92f5d6/native/jni/magiskboot/dtb.cpp#L42),
the code may be like:
```cpp
size_t size;
const char *name;
auto *value = fdt_getprop_by_offset(fdt, prop, &name, &size);
```
and if `value == nullptr`, `size` is also be overwritten correctly but
`name` is not, which is quite inconsistent.
This commit makes sure `name` and `size` behavior consistently (reset to
reasonable value) when error occurs.
Signed-off-by: LoveSy <shana@zju.edu.cn>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
|
|
|
|
|
|
|
| |
The objects control blocks cannot be used to check the pre-initialization state
since they are allocated in a .noinit section.
Update #4678.
|
|
|
|
|
|
|
|
| |
Commit 21275b58a5a69c3c838082ffc8a7a3641f32ea9a ("score: Static
Objects_Information initialization") introduced an off-by-one error in the
maintenance of inactive objects.
Close #4677.
|
|
|
|
| |
Update #4677.
|
|
|
|
|
|
|
| |
With unlimited objects the object maximum may be larger than the sum of active
and inactive objects.
Update #4677.
|
|
|
|
|
| |
This section was added recently and must be mapped to be accessed
without generating an exception.
|
|
|
|
|
|
| |
Dirty or zero also the part of the .noinit section used by RTEMS.
Close #4678.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Place the statically allocated object control blocks, local tables, and thread
queue heads into the dedicated .noinit intput sections. The output section is
not zero initialized. Placing these elements into the .noinit section reduces
the system initialization time by decreasing the .bss section size.
It may improve the cache efficiency since the mostly read local tables are
placed in a contiguous memory area.
Update #4678.
|
|
|
|
|
|
|
|
| |
Sort the .noinit* input sections by name first, then by alignment if two
sections have the same name. This allows the placement of begin/end symbols to
initialize some areas with a special value.
Update #4678.
|
|
|
|
|
|
|
| |
Exceptions during system initialization work only on targets which do not need
a registration of exception frames during the global construction. In
particular, targets which use the DWARF2 unwinder cannot use exceptions during
system initialization.
|
|
|
|
|
| |
Commit 80090639a62b50d7d66614ca789e4592924a06e5 altered the system state
change. Account for this in assert_allocator_protected_thread_context().
|
|
|
|
| |
Update #3716.
|
|
|
|
| |
Update #2349.
|
|
|
|
| |
Updates #3053.
|