| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Use the new Priority_Group_order enum instead of a boolean to indicated if a
priority should be inserted as the first or last node into its priority group.
This makes the code more expressive. It is also a bit more efficient since a
branch in _Scheduler_Node_set_priority() is avoided and a simple bitwise or
operation can be used.
|
|
|
|
|
|
|
|
| |
the timer_create() method can use CLOCK_MONOTONIC
but there was no test for this.
Also it implements the functionality to
create a CLOCK_MONOTONIC timer and gettime() .
Closes #3888
|
|
|
|
|
|
|
| |
Cloning under Cygwin turned off executable permission on these
files. This shows them as modified even though they have not
explicitly been touched. Executable permission should not have
been on for these files so this is just a minor clean up.
|
|
|
|
|
|
| |
Remove obsolete CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER application
configuration option which is unsupported since commit
69aa33490b1cd357519ab70b15ad150e11bb752e.
|
|
|
|
|
| |
Use the processor control to specify the target processor since this is what
the callers have available.
|
| |
|
|
|
|
|
|
|
|
| |
The per-CPU states which control the SMP system initialization were added quite
early during the SMP support development. Replace this initial implementation
with a simplified one. There is no longer a global SMP lock required which
serialized the state changes of all processors. The new implementation better
integrates with the per-CPU jobs.
|
|
|
|
|
|
| |
Remove _CPU_SMP_Processor_event_broadcast() and
_CPU_SMP_Processor_event_receive(). These functions are hard to use since they
are subject to the lost wake up problem.
|
|
|
|
|
|
|
|
|
|
| |
Users have access to the fatal error source and code though the fatal error
extension. The user-specific fatal error handling should be done in statically
initialized fatal error handlers. The _Internal_errors_What_happened was
updated after the fatal error extension. In addition, there was no API to get
the information stored in _Internal_errors_What_happened. In SMP
configurations, this object could contain a mix of different fatal errors.
Remove this object to save some bytes of storage.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
| |
Update #3269.
|
|
|
|
|
|
|
|
| |
Add RTEMS_FATAL_SOURCE_SPURIOUS_INTERRUPT as the fatal source for
spurious interrupts. Use the interrupt vector number of the spurious
interrupt for the fatal code.
Update #3269.
|
|
|
|
|
|
| |
Prefer RTEMS_FATAL_SOURCE_EXCEPTION over
INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT since the fatal code
(rtems_exception_frame) provides more context.
|
|
|
|
|
| |
This program contained an optional test case. It was enabled by the
RTEMS_COVERAGE define. The functions under test are not implemented by RTEMS.
|
|
|
|
| |
Update smpstrongapa01 to account for task shifting.
|
|
|
|
|
|
| |
Use BSP_INTERRUPT_VECTOR_COUNT instead of BSP_INTERRUPT_VECTOR_MAX.
Update #3269.
|
|
|
|
|
|
| |
This define represents the last valid interrupt vector number.
Update #3269.
|
|
|
|
|
|
|
|
|
|
| |
Remove BSP_INTERRUPT_VECTOR_MIN and unconditionally let interrupt vector
numbers start with zero.
The BSP_INTERRUPT_VECTOR_MIN == 0 invariant was tested by the previous commit
and building all BSPs.
Update #3269.
|
|
|
|
|
|
|
| |
This adds the possibility to open an I2C bus with O_NONBLOCK (or set it
later via fcntl) to get non-blocking transmissions. This means that if
the bus is busy, a read, write or transfer ioctl will return with a
EAGAIN errno.
|
|
|
|
|
|
|
|
|
| |
Make the initialization of the per-CPU data optional.
Change license to BSD-2-Clause according to file history and
re-licensing agreement.
Update #3053.
|
|
|
|
|
| |
Make sure that the linker sets work if placed in a library (this is how
they are used in RTEMS).
|
|
|
|
|
|
|
| |
GCC originally needed this 20 years ago. No longer needed, so it
is being removed.
Closes #4391
|
|
|
|
|
|
| |
The addition of the entire *utime*() family of functions resulted
in this call returning ENOENT not ENXIO. This is better aligned
with the POSIX definition of the methods.
|
|
|
|
|
|
| |
Improved tests for utime() and utimes() and update license.
Close #4399
|
|
|
|
|
|
| |
This adds a rtems_mutex_try_lock and a rtems_recursive_mutex_try_lock.
Update #4440.
|
|
|
|
| |
Close #4413.
|
|
|
|
|
| |
telnetd01 test cannot be run without a network stack, so this test is being
moved to the rtems-net-legacy repository.
|
|
|
|
| |
Close #4410.
|
| |
|
|
|
|
|
|
| |
Add a library for support functions used by validation tests. Rename
tc-support.* to tx-support.* since this file does not contain test
cases.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a parameter to _TOD_Validate() to disable the validation of the
ticks member.
There are two reasons for this change. Firstly, in
rtems_task_wake_when() was a double check for time_buffer == NULL (one
in rtems_task_wake_when() and one in _TOD_Validate()). Secondly, the
ticks member is ignored by rtems_task_wake_when(). This was done with a
write of zero to the ticks member and thus a modification of the
user-provided structure. Now the structure is no longer modified.
Using a mask parameter is quite efficient. You just have to load an
immediate value and there are no additional branches in _TOD_Validate().
Close #4406.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes bug #4403. Directives
* rtems_timer_fire_when()
* rtems_timer_server_fire_when()
* rtems_task_wake_when()
are documented to return RTEMS_INVALID_ADDRESS when their time-of-day
argument is NULL. But actually they return RTEMS_INVALID_CLOCK. To fix
the issue this patch changes _TOD_Validate() to return a
status code instead of just true/false.
Close #4403
|
|
|
|
|
|
|
| |
In the action requirements, some pre-conditions are not applicable
depending on the state of other pre-conditions. There is no particular
order in the pre-conditions, so we have to check the N/A status
individually.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In POSIX, zero size memory allocations are implementation-defined
behaviour. The implementation has two options:
https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html
https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_memalign.html
Linux and FreeBSD return a unique pointer for zero size memory
allocations. Return NULL on RTEMS to more likely catch the use of a
zero size memory area by erroneous applications.
Update #4390.
|
|
|
|
|
|
|
|
|
| |
In case the processor set is not large enough to contain the processor
set owned by the scheduler return RTEMS_INVALID_SIZE instead of
RTEMS_INVALID_NUMBER. This is more in line with other directives since
the issue is related to the size of an object.
Close #4401.
|