| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
The utimbuf structs in fsimfsconfig01 and fsimfsconfig02 were
being passed to utime uninitialized. This did not cause problems until
utime was changed to use utimensat behind the scenes. Now that
utimensat is called, the values of the utimbuf struct are checked, and
EINVAL is set for invalid values. The utimebuf structs in these tests
could contain invalid values since they are uninitialized.
By zero-initializing the utimbuf structs, we ensure that they pass the
checks in utimensat and that errno is set to the expected ENOTSUP.
|
|
|
|
|
| |
All other architectures use uint32_t for interrupt levels and there is
no reason not to do so on AArch64.
|
|
|
|
|
|
|
| |
Context validation for AArch64 was ported from the ARM implementation
without a reinterpretation of the actual requirements. The spcontext01
test just happened to pass because the set of scratch registers in ARM
is a subset of the scratch registers in AArch64.
|
|
|
|
|
|
| |
Replace the boolen return value with the new enum
Thread_queue_Deadlock_status. This improves the code readability.
Improve documentation. Shorten function names.
|
|
|
|
|
|
|
|
| |
For uniprocessor configurations, this patch removes dead code in the
_Thread_queue_Surrender() and _Thread_queue_Surrender_priority_ceiling()
functions.
Dead code is removed from _Thread_queue_Surrender_sticky().
|
|
|
|
|
|
|
| |
This function was unused. It was a relict of the thread queue rework done
during the SMP support development. In an early stage, the extract operation
was called with a NULL thread queue. However, this is no longer the case. The
extract operation is only called if we have a non-NULL thread queue.
|
|
|
|
| |
Reflect renamed specification item.
|
| |
|
|
|
|
|
|
|
| |
Adjust parameter names to match with the declaration. This avoid using
a name reserved by the C standard: "time".
Close #4035.
|
|
|
|
| |
Close #2548.
|
| |
|
|
|
|
|
| |
Move a code block to its own new function
_Thread_Initialize_scheduler_and_wait_nodes(). Add comments.
|
|
|
|
| |
This adds SMP support for AArch64 in cpukit and for the ZynqMP BSPs.
|
|
|
|
|
|
|
| |
ARM's GICv2 is configurable and its attributes vary between
implementations including omission of specific interrupts. This allows
BSPs to accomodate those varying implementations with customized
attribute sets.
|
|
|
|
|
| |
GICv2 can support up to 1024 interrupts, but ZynqMP hardware is only
configured for 192 interrupts.
|
|
|
|
|
|
| |
The order in which step checks for 1 and 2 are not rigidly defined and
may actually occur in either order depending on how the threads execute.
This waits for the job to complete to enforce the existing ordering.
|
|
|
|
|
|
|
|
| |
This adds the SMP function that supports spinup of additional CPU cores
using the ARM standard PSCI inteface. This interface is provided by QEMU
as well as ARM Trusted Firmware running in monitor mode (EL3) on ARMv7 and
AArch64 CPUs. This supports activation va SMC or HVC instructions
depending on BSP configuration.
|
|
|
|
|
| |
Close #3250.
Close #4081.
|
| |
|
|
|
|
|
|
|
| |
The T_now_tick() is a fall back time measurement using the CPU counter
in case no Clock Driver is configured. Some CPU counter may overflow
during the test execution. Accumulate the elapsed time to reduce the
chance of CPU counter overflows.
|
|
|
|
|
|
|
|
|
|
| |
If SMP support is enabled and the system has exactly one processor, then
it may use an uniprocessor scheduler. The ask for help, reconsider help
request, and withdraw node operations can be NULL in this case, since
they are only used if a thread has at least one helping scheduler node.
At least two schedulers are required to get a helping node and each
scheduler involved must own at least one processor. This is not
possible on a system with exactly one processor.
|
|
|
|
|
|
|
| |
Issue the new fatal SMP error
SMP_FATAL_SCHEDULER_REQUIRES_EXACTLY_ONE_PROCESSOR if the system starts
with not exactly one processor and an uniprocessor scheduler is
configured.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The uniprocessor schedulers do not support systems with more than more
processors. So they rivially support thread pinning and thus the
SMP_FATAL_SCHEDULER_PIN_OR_UNPIN_NOT_SUPPORTED cannot happen.
Add a second default implementation for SMP schedulers which do not
support thread pinning.
Change license to BSD-2-Clause according to file history and re-licensing
agreement.
Update #3053.
|
|
|
|
|
| |
Rename SCHEDULER_OPERATION_DEFAULT_GET_SET_AFFINITY in
SCHEDULER_DEFAULT_SET_AFFINITY_OPERATION. Add Doxygen comment.
|
|
|
|
|
| |
Rename SCHEDULER_OPERATION_DEFAULT_ASK_FOR_HELP in
SCHEDULER_DEFAULT_SMP_OPERATIONS. Add a Doxygen comment.
|
|
|
|
|
|
|
|
| |
psxdevctl is supposed to return the value in errno. Before, it was
returning -1 and setting errno. Changed the tests to reflect these
changes. Added code from RRADE's posix_devctl.c.
Closes #4506
|
| |
|
|
|
|
|
|
|
| |
Correct the description of the ``count`` parameter of
rtems_message_queue_flush().
Update #4508.
|
|
|
|
|
|
|
|
| |
- Trigger on a single character entering the RX FIFO
- Disable the RX timeout
- Send up to a FIFO full of data
|
|
|
|
| |
The linker flag to wrap putchar was lost in translation from make to waf.
|
| |
|
|
|
|
|
| |
Move the definition of the top-level Classic API implementation group to
an implementation header file.
|
| |
|
|
|
|
|
|
|
| |
Remove bogus return status from rtems_message_queue_receive(). Clarify
rtems_message_queue_flush().
Update #4508.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the duplicated description which is an out dated copy and paste
from the Classic API Guide. Instead, thoroughly document the individual
extensions.
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.
Update #3899.
Update #3993.
|
|
|
|
|
|
|
|
|
| |
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.
Update #3899.
Update #3993.
Update #4513.
|
| |
|
|
|
|
| |
Close #4504.
|
|
|
|
| |
Added I2C drivers for ZynqMP and updated build system accordingly.
|
|
|
|
|
| |
Certain files related to the Zynq BSP's I2C driver are useable by the ZynqMP BSP as well.
Moved these files to shared directory in anticipation of I2C support for ZynqMP.
|
|
|
|
|
|
|
|
|
| |
The rtems_rate_monotonic_get_status() directive returns an arbitrary
number for the count of postponed jobs if it is called for a newly
created period object. Set the count of postponed jobs to zero during
object creation.
Close #4511.
|
|
|
|
| |
Update #4338.
|
|
|
|
|
|
|
|
|
|
| |
Split up rbtreenext.c since only _RBTree_Minimum() is used by the operating
system core services (thread queues and the EDF scheduler).
Change license to BSD-2-Clause according to file history and re-licensing
agreement.
Update #3053.
|
|
|
|
|
|
|
|
| |
This simplifies the implementation a bit. Declare _TOD_Days_to_date[] in
<rtems/score/todimpl.h>. Make _TOD_Days_per_month[] and
_TOD_Days_since_last_leap_year[] static.
Update #4338.
|
|
|
|
| |
Split up the multi line if statement into smaller parts.
|
|
|
|
|
| |
Limit the CLOCK_REALTIME setting to ensure that the CLOCK_REALTIME is defined
for a system uptime of at least 114 years.
|
|
|
|
|
|
| |
Move the TOD validation to the callers of _TOD_Set(). This avoids dead code in
case only rtems_clock_set() is used in an application because rtems_clock_set()
always calls _TOD_Set() with a valid time of day.
|
|
|
|
| |
Use _Watchdog_Ticks_per_second instead.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The _Thread_Dispatch() function was customized over time and now the
work is done by _Thread_Do_dispatch() and specialized wrappers. The
plain _Thread_Dispatch() is now only used in some CPU ports. Move it to
a separate file to avoid dead code in the general.
Change license to BSD-2-Clause according to file history and
re-licensing agreement.
Update #3053.
|