| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Add a stack allocator hook specifically for allocation of IDLE thread stacks.
This allows the user to decide if IDLE thread stacks are statically allocated
or handled by the same custom allocator mechanism as other thread stacks.
Closes #4520.
|
|
|
|
|
|
|
|
|
|
| |
The IO library used a POSIX key to store an optional POSIX user
environment pointer. This pulled in the POSIX keys support in every
application configuration. Add a user environment pointer to the thread
control block (TCB) instead. Applications which do not need the POSIX
user environment will just get an overhead of one pointer per thread.
Close #3882.
|
|
|
|
|
|
| |
This function is unused.
Update #3735.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two use cases were envisioned for this.
1) a BSP or application which desires to update a real-time clock
when the RTEMS TOD is set.
2) a paravirtualized BSP can use this to propagate setting the time
in an RTEMS application to the hosting environment. This enables
the entire set of applications in the virtualized environments
to have a single consistent TOD.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The rtems_test_pause() and rtems_test_pause_and_screen_number() macros
had different implementations depending on the RTEMS_TEST_NO_PAUSE
define. This define was defined to 1 by default. The user was able to
change this via the undocumented --disable-test-no-pause configure
command line option.
Pausing tests and waiting for user input contradicts the goal of having
automated test runs. Remove this feature.
Update #3818.
|
|
|
|
|
|
| |
Ensure that the C++17 aligned new operator works.
Close #3666.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
Ensure that the creation of Classic API objects fails with the expected
status code in the default configuration.
Ensure that the deletion of Classic API objects fails with the expected
status code in the default configuration if the identifier is invalid.
Ensure that only the expected objects are present in the default
configuration via rtems_object_get_classic_name().
|
|
|
|
|
|
|
|
|
|
|
|
| |
The configured interrupt stack size (CONFIGURE_INTERRUPT_STACK_SIZE) is
checked against the minimum task stack size. The minium tasks task
stack size is also a configuration option
(CONFIGURE_MINIMUM_TASK_STACK_SIZE). So, this check does not really
help in case of configuration errors. In addition, the interrupt stack
is also re-used as the initialization stack in most BSPs. It is
probably better to use a stack checker to detect problems.
Update #3459.
|
|
|
|
| |
Update #3507.
|
|
|
|
| |
Close #3435.
|
|
|
|
|
|
| |
Add RTEMS_DEFINE_GLOBAL_SYMBOL() and add RTEMS_DECLARE_GLOBAL_SYMBOL().
Update #3459.
|
|
|
|
|
|
|
|
| |
An invalid heap usage such as a double free is usually a fatal error
since this indicates a use after free. Replace the use of printk() in
free() with a fatal error.
Update #3437.
|
|
|
|
| |
Update #3409.
|
|
|
|
|
|
|
|
| |
It tests the (never really working) strict order mutex option. That
option does not exist any more. Mutexes by other good means (spmutex01,
spsem*).
Update #3406.
|
|
|
|
|
|
|
|
|
|
|
| |
This option silences warning with automake-1.16.1 allowing us to
upgrade to that version.
This change has been tested with automake-1.12.6 and automake-1.16.1.
It seems version 1.16.1 configures slower than 1.12.6 for the same
source and BSP. The newer versions is 6 second slower.
Close #3387.
|
|
|
|
|
|
| |
This change is part of the testsuite Makefile.am reorganization.
Update #3382
|
|
|
|
| |
Update #3319.
|
|
|
|
| |
Update #2840.
|
|
|
|
| |
Update #2843.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.
This has at least seven problems:
* The make preinstall step itself needs time and disk space.
* Errors in header files show up in the build tree copy. This makes it
hard for editors to open the right file to fix the error.
* There is no clear relationship between source and build tree header
files. This makes an audit of the build process difficult.
* The visibility of all header files in the build tree makes it
difficult to enforce API barriers. For example it is discouraged to
use BSP-specifics in the cpukit.
* An introduction of a new build system is difficult.
* Include paths specified by the -B option are system headers. This
may suppress warnings.
* The parallel build had sporadic failures on some hosts.
This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.
The new cpukit include directories are:
* cpukit/include
* cpukit/score/cpu/@RTEMS_CPU@/include
* cpukit/libnetworking
The new BSP include directories are:
* bsps/include
* bsps/@RTEMS_CPU@/include
* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include
There are build tree include directories for generated files.
The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.
The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.
Update #3254.
|
|
|
|
| |
Update #3243.
|
|
|
|
|
|
|
|
| |
Provide functions to get the version string, major, minor and revision
numbers and the version control identifer that is a unique tag for
the version control system.
Update #3199.
|
| |
|
|
|
|
|
| |
Ensure that the time flow of CLOCK_REALTIME and CLOCK_MONOTONIC is close to
the clock driver ticks time flow.
|
|
|
|
|
|
|
| |
Check iop reference count in close() and return -1 with errno set to
EBUSY in case the file descriptor is still in use.
Update #3132.
|
|
|
|
|
|
| |
Add new fatal error INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT.
Update #3077.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prepare a precondition to prevent the potential integer overflow.
Remove one redundant parameter in _Rate_monotonic_Renew_deadline().
sptests/sprmsched02: Create
A test case for checking the overflow condition of postponed_jobs
in rtems_rate_monotonic_period_status.
Update #2885.
|
|
|
|
| |
Update #2795.
|
|
|
|
| |
Update #2795.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This function is useful for operations which synchronously block, e.g.
self restart, self deletion, yield, sleep. It helps to detect if these
operations are called in the wrong context. Since the thread dispatch
necessary indicator is not used, this is more robust in some SMP
situations.
Update #2751.
|
|
|
|
| |
Update #2556.
|
|
|
|
|
|
|
|
|
| |
The priority inheritance and ceiling CORE mutexes wrongly used the FIFO
queueing discipline. Delete misleading _CORE_mutex_Is_priority(). Bug
introduced by 1e1a91ed11458ddbb27b94d0001d8f0fc2ef7a97.
Add test sptests/spmutex01, since no existing uni-processor test covered
the thread priority queueing discipline for CORE mutexes.
|
|
|
|
|
| |
Update #2494.
Update #2555.
|
|
|
|
|
|
|
|
|
|
|
| |
Add a lock and use a chain iterator for safe iteration during concurrent
user extension addition and removal.
Ensure that dynamically added thread delete and fatal extensions are
called in reverse order.
Update #2555.
Update #2692.
|
|
|
|
|
|
|
| |
This service was marked as deprecated long prior to the 4.11 release
series and is now being removed.
closes #2676.
|
|
|
|
|
|
|
|
|
| |
Use a red-black tree instead of delta chains.
Close #2344.
Update #2554.
Update #2555.
Close #2606.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notepads where a feature of RTEMS' tasks that simply functioned in
the same way as POSIX keys or threaded local storage (TLS). They were
introduced well before per task variables, which are also deprecated,
and were barely used in favor of their POSIX alternatives.
In addition to their scarce usage, Notepads took up unnecessary memory.
For each task:
- 16 32-bit integers were allocated.
- A total of 64 bytes per task per thread.
This is especially critical in low memory and safety-critical applications.
They are also defined as uint32_t, and therefore are not guaranteed to
hold a pointer.
Lastly, they are not portable solutions for SMP and uniprocessor systems,
like POSIX keys and TLS.
updates #2493.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make rtems_initialize_data_structures(),
rtems_initialize_before_drivers() and rtems_initialize_device_drivers()
static. Rename rtems_initialize_start_multitasking() to
rtems_initialize_executive() and call the registered system
initialization handlers in this function. Add system initialization API
available via #include <rtems/sysinit.h>. Update the documentation
accordingly.
This is no functional change, only the method to call the existing
initialization routines changes. Instead of direct function calls a
table of function pointers contained in the new RTEMS system
initialization linker set is used. This table looks like this (the
actual addresses depend on the target).
nm *.exe | grep _Linker | sort
0201a2d0 D _Linker_set__Sysinit_begin
0201a2d0 D _Linker_set__Sysinit_bsp_work_area_initialize
0201a2d4 D _Linker_set__Sysinit_bsp_start
0201a2d8 D _Linker_set__Sysinit_rtems_initialize_data_structures
0201a2dc D _Linker_set__Sysinit_bsp_libc_init
0201a2e0 D _Linker_set__Sysinit_rtems_initialize_before_drivers
0201a2e4 D _Linker_set__Sysinit_bsp_predriver_hook
0201a2e8 D _Linker_set__Sysinit_rtems_initialize_device_drivers
0201a2ec D _Linker_set__Sysinit_bsp_postdriver_hook
0201a2f0 D _Linker_set__Sysinit_end
Add test sptests/spsysinit01.
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Close #2477.
|
| |
|
|
|
|
|
|
|
| |
This mutex implementation uses a thread priority queue with a simple
priority inheritance mechanism (similar to the object based mutexes).
The storage space must be supplied by the user (16 bytes on 32-bit
targets).
|
|
|
|
| |
Update #2365.
|
| |
|
|
|
|
|
|
|
|
| |
Replace timestamp implementation with FreeBSD bintime and timecounters.
New test sptests/sptimecounter02.
Update #2271.
|
|
|
|
|
|
| |
New test sptests/timecounter01.
Update #2271.
|