| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add a local context structure to the SMP lock API for acquire and
release pairs. This context can be used to store the ISR level and
profiling information. It may be later used to enable more
sophisticated lock algorithms, e.g. MCS locks.
There is only one lock that cannot be used with a local context. This
is the per-CPU lock since here we would have to transfer the local
context through a context switch which is very complicated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This partially reverts commit 1215fd4d9426a59d568560e9a485628560363133.
In order to support profiling of SMP locks and provide a future
compatible SMP locks API it is necessary to add an SMP lock destroy
function. Since the commit above adds an SMP lock to each chain control
we would have to add a rtems_chain_destroy() function as well. This
complicates the chain usage dramatically. Thus revert the patch above.
A global SMP lock for all chains is used to implement the protected
chain operations.
Advantages:
* The SAPI chain API is now identical on SMP and non-SMP
configurations.
* The size of the chain control is reduced and is then equal to the
Score chains.
* The protected chain operations work correctly on SMP.
Disadvantage:
* Applications using many different chains and the protected operations
may notice lock contention.
The chain control size drop is a huge benefit (SAPI chain controls are
66% larger than the Score chain controls). The only disadvantage is not
really a problem since these applications can use specific interrupt
locks and unprotected chain operations to avoid this issue.
|
| |
|
| |
|
|
|
|
|
| |
If <sys/cpuset.h> is not provided by the toolset, the test
cannot be compiled.
|
|
|
|
|
| |
Add rtems_cache_get_data_cache_size() and
rtems_cache_get_instruction_cache_size().
|
|
|
|
| |
A cache line cannot have a negative size.
|
| |
|
| |
|
|
|
|
|
| |
Do not use _TLS_Size here since this will lead GCC to assume that this
symbol is not 0 and the later > 0 test will be optimized away.
|
|
|
|
|
| |
Adjust test to work with clock driver based CPU counters. They have a
period equal to the clock tick interval.
|
|
|
|
| |
Rename _Internal_error_Occurred() into _Terminate().
|
|
|
|
|
|
| |
Use rtems_fatal() instead of _CPU_Fatal_halt() to shutdown processors in
SMP configurations since this allows intervention of BSP or application
specific fatal extensions.
|
|
|
|
|
|
| |
Merge RTEMS_FATAL_SOURCE_BSP_GENERIC and RTEMS_FATAL_SOURCE_BSP_SPECIFIC
into new fatal source RTEMS_FATAL_SOURCE_BSP. This makes it easier to
figure out the code position given a fatal source and code.
|
|
|
|
|
| |
This error case is no longer required since rtems_shutdown_executive()
can be called anytime, anywhere
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not return to BSP context in the exit() shutdown path. This makes it
possible to re-use the initialization stack. It can be used for the
interrupt stack for example. On targets with a small RAM this is a
considerable benefit.
This change eliminates also some special cases and simplifies the code.
Delete _Thread_Set_global_exit_status(),
_Thread_Get_global_exit_status() and _Thread_Stop_multitasking().
|
|
|
|
|
|
| |
Merge systems states SYSTEM_STATE_SHUTDOWN and SYSTEM_STATE_FAILED into
new system state SYSTEM_STATE_TERMINATED. This reflects that all system
termination paths end up in _Internal_error_Occurred().
|
|
|
|
|
|
|
|
|
| |
Add a CPU counter interface to allow access to a free-running counter.
It is useful to measure short time intervals. This can be used for
example to enable profiling of critical low-level functions.
Add two busy wait functions rtems_counter_delay_ticks() and
rtems_counter_delay_nanoseconds() implemented via the CPU counter.
|
|
|
|
|
|
|
|
| |
Rename rtems_internal_error_description() to
rtems_internal_error_text(). Rename rtems_fatal_source_description() to
rtems_fatal_source_text(). Rename rtems_status_code_description() to
rtems_status_text(). Remove previous implementation of
rtems_status_text().
|
| |
|
| |
|
|
|
|
|
| |
Tested and implemented on ARM, m68k, PowerPC and SPARC. Other
architectures need more work.
|
| |
|
|
|
|
| |
From pull request at https://github.com/hazirguo/rtems/commit/fc07a4c501ffebe406464eb9b8dd2097adfd5e60
|
|
|
|
| |
Fix the documentation for the sp16, sp17 and sp20 tests.
|
| |
|
| |
|
| |
|
|
|
|
| |
Also fix naming issues.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The goal is to shrink the individual tests to have no unneeded
resources and to follow the structure of a normal test.
|
| |
|
|
|
|
| |
Correct the sp02.doc, sp05.doc, sp06.doc, sp07.doc, sp08.doc files.
|
| |
|
| |
|
|
|
|
|
|
| |
Add Timestamp support in the score to return a timestamp in nanoseconds.
Add a test.
Update the RTEMS API documentation.
|
|
|
|
|
|
| |
This adds five tests for <sys/cpuset.h>. It does not include
tests for CPU_XXX_S methods. The autotools should be able to
avoid enabling the tests unless the toolset has <sys/cpuset.h>.
|
| |
|
| |
|
|
|
|
|
| |
Return an error status with errno set to ENOSYS during node creation for
nodes not available in the current configuration.
|
| |
|
|
|
|
| |
Bug: https://www.rtems.org/bugzilla/show_bug.cgi?id=1216
|
|
|
|
| |
Bug test case for PR 1422
|
| |
|