| Commit message (Collapse) | Author | Files | Lines |
|
|
|
This adds the configure option CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
which allows the application to choose whether to have the POSIX
timer_create() function follow the behavior defined by POSIX or
the FACE Technical Standard.
Updates #4691.
|
|
The interfaces in the MallocSupport group belong to the implementation. They
are used by confdefs.h for example.
|
|
Update #3716.
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
|
|
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>
|
|
Commit 21275b58a5a69c3c838082ffc8a7a3641f32ea9a ("score: Static
Objects_Information initialization") introduced an off-by-one error in the
maintenance of inactive objects.
Close #4677.
|
|
With unlimited objects the object maximum may be larger than the sum of active
and inactive objects.
Update #4677.
|
|
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.
|
|
Check if given address/FIB exists locally.
Reviewed by: melifaro
Differential revision: https://reviews.freebsd.org/D32913
|
|
The modification to the hash are already naturally locked by
in_control_sx. Convert the hash lists to CK lists. Remove the
in_ifaddr_rmlock. Assert the network epoch where necessary.
Most cases when the hash lookup is done the epoch is already entered.
Cover a few cases, that need entering the epoch, which mostly is
initial configuration of tunnel interfaces and multicast addresses.
Reviewed by: melifaro
Differential revision: https://reviews.freebsd.org/D32584
|
|
Current logic always selects an IFA of the same family from the
outgoing interfaces. In IPv4 over IPv6 setup there can be just
single non-127.0.0.1 ifa, attached to the loopback interface.
Create a separate rt_getifa_family() to handle entire ifa selection
for the IPv4 over IPv6.
Differential Revision: https://reviews.freebsd.org/D31868
MFC after: 1 week
|
|
These functions were added in 2001 and are currently unused.
copyinfrom() looks to have never been used. copyinstrfrom() was used
for two weeks before the code was refactored to remove it's sole use.
Reviewed by: brooks, kib
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24928
|
|
Use early returns to simplify rtems_scheduler_ident().
|
|
Conditional expressions with inline functions are not optimized away if
optimization is disabled. Avoid such expressions to prevent dead
branches.
|
|
This function is only used in SMP configurations.
|
|
This function was never actually used and is dead code.
|
|
At some point during system initialization, the idle threads are created.
Afterwards, the boot processor basically executes within the context of an idle
thread with thread dispatching disabled. On some architectures, the
thread-local storage area of the associated thread must be set in dedicated
processor registers. Add the new CPU port function to do this:
void _CPU_Use_thread_local_storage( const Context_Control *context )
Close #4672.
|
|
Update #4670.
|
|
Update #4670.
|
|
The compiler wraps fork(), etc. system calls if coverage generation is enabled.
These functions must be provided by the system. For RTEMS, they just return an
error status.
Update #4670.
|
|
|
|
Update #4667.
|
|
Update #4667.
|
|
Conditional expressions with inline functions are not optimized away if
optimization is disabled. Avoid such expressions to prevent dead
branches. It helps also during code review to immediately see if a loop
is used or not.
|
|
The real implementation of hardpps() is defined in kern_ntptime.c. Use it only
if the NTP support is needed by the application.
Update #2349.
|
|
Use CLOCK_REALTIME and CLOCK_MONOTONIC for relative thread queue timeouts
instead of CLOCK_REALTIME_COARSE and CLOCK_MONOTONIC_COARSE. This fixes an
issue with clock_nanosleep() in combination with clock_gettime().
Close #4669.
|
|
The original file cpukit/libfs/src/ftpfs/tftpDriver.c
is split into two:
tftpfs.c - This file contains the code from tftpDriver.c
related to file system operations such as mount(),
open(), read(), and so on.
tftpDriver.c - In the original file remains only the code related
to networking. This code implements the Trivial
File Transfer Protocol (TFTP).
Moreover, the code is extended to support
* RFC 2347 TFTP Option Extension
* RFC 2348 TFTP Blocksize Option
* RFC 7440 TFTP Windowsize Option
Update #4666.
|
|
Update #4666.
|
|
|