summaryrefslogtreecommitdiffstats
path: root/cpukit/score (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score/aarch64: Size saved SP register for ABIKinsey Moore2020-11-131-1/+4
| | | | | This ensures that the saved SP register is sized appropriately depending on the chosen ABI and prevents a warning in the libmisc stack checker.
* sparc: Add SPARC_INTERRUPT_SOURCE_TO_TRAP()Sebastian Huber2020-11-061-0/+12
| | | | Update #4171.
* sparc: Add SPARC_INTERRUPT_TRAP_TO_SOURCE()Sebastian Huber2020-11-061-0/+17
| | | | Update #4171.
* sparc: Add SPARC_IS_INTERRUPT_TRAP()Sebastian Huber2020-11-061-0/+17
| | | | Update #4171.
* sparc: Move SPARC-specific macros to sparc.hSebastian Huber2020-11-062-22/+40
| | | | | | Clarify Doxygen comments. Fix formatting. Update #4171.
* bsps/arm: Workaround for Errata 845369Sebastian Huber2020-10-161-0/+32
| | | | | | | Add a workaround for Cortex-A9 Errata 845369: Under Very Rare Timing Circumstances Transition into Streaming Mode Might Create Data Corruption. Update #4115.
* Remove *_Is_null() inline functionsSebastian Huber2020-10-141-3/+4
| | | | Simply compare the values against NULL.
* rtems: Improve RTEMS_NO_RETURN attributeSebastian Huber2020-10-1019-62/+28
| | | | | | | | | | | Provide RTEMS_NO_RETURN also in case RTEMS_DEBUG is defined to prevent errors like this: error: no return statement in function returning non-void [-Werror=return-type] Use C11 and C++11 standard means to declare a no-return function. Close #4122.
* score: Add AArch64 portKinsey Moore2020-10-0516-0/+2751
| | | | | This adds a CPU port for AArch64(ARMv8) with support for exceptions and interrupts.
* Decouple the C Program Heap initializationSebastian Huber2020-10-012-0/+91
| | | | | | | Before this patch RTEMS_Malloc_Initialize() had a fixed dependency on _Workspace_Area. Introduce _Workspace_Malloc_initializer to have this dependency only if CONFIGURE_UNIFIED_WORK_AREAS is defined by the application configuration.
* rtems: Add rtems_message_queue_construct()Sebastian Huber2020-09-283-9/+68
| | | | | | | | | | | In contrast to message queues created by rtems_message_queue_create(), the message queues constructed by this directive use a user-provided message buffer storage area. Add RTEMS_MESSAGE_QUEUE_BUFFER() to define a message buffer type for message buffer storage areas. Update #4007.
* score: Simplify CORE_message_queue_BufferSebastian Huber2020-09-284-23/+24
| | | | | | | | | | Merge CORE_message_queue_Buffer structure into CORE_message_queue_Buffer_control. Use a zero-length array for the actual message buffer. This reduces the structure size on all targets. Update #4007.
* score: Improve _CORE_message_queue_Initialize()Sebastian Huber2020-09-281-5/+5
| | | | | | Return a status code and differentiate between error conditions. Update #4007.
* score: Gather message queue control initializationSebastian Huber2020-09-281-16/+11
| | | | | | | Initialize the structure in a single code block after the error checks and calculations. Update #4007.
* score: Fix allocation size calculationSebastian Huber2020-09-281-51/+23
| | | | | | | | | | The previous multiplication error check is broken on 64-bit machines. Use the recommended check from SEI CERT C Coding Standard, "INT30-C. Ensure that unsigned integer operations do not wrap". Make sure the message size computation does not overflow. Update #4007.
* score: Use RTEMS_ALIGN_UP()Sebastian Huber2020-09-281-3/+4
| | | | Update #4007.
* or1k: Do not use printk() for _CPU_Fatal_halt()Sebastian Huber2020-09-231-4/+0
| | | | Debug output can be added to user-defined fatal error handlers.
* or1k: Remove superfluous includesSebastian Huber2020-09-231-2/+0
| | | | Including <stdio.h> in <rtems/score/cpu.h> breaks libbsd.
* CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZESebastian Huber2020-09-171-3/+13
| | | | | | | | | | | Add this application configuration option. This configuration option can be used to reserve space for the dynamic linking of modules with thread-local storage objects. Add RTEMS_TASK_STORAGE_ALIGNMENT to define the minium alignment of a thread-local storage size. Update #4074.
* arm: Fix arm_cp15_set_translation_table_entries()Sebastian Huber2020-09-171-0/+16
| | | | | | | | In a multi-processor system we must broadcast the TLB maintenance operation to the Inner Shareable domain to ensure that the other processors update their TLB caches accordingly. Close #4068.
* i386/score: fix assembly mnemonicGedare Bloom2020-09-121-1/+1
| | | | Closes #4076.
* score: Fix _Thread_Initialize()Sebastian Huber2020-09-111-5/+6
| | | | | | Fix an error cleanup path in SMP configurations to avoid a NULL pointer access. Update #3959.
* score: Add stack free handler to TCBSebastian Huber2020-08-313-17/+60
| | | | | | | This avoids a dependency to the stack free function in the thread destruction. Update #3959.
* score: Move _Stack_Allocator_free to separate fileSebastian Huber2020-08-312-2/+35
| | | | | | This decouples the task stack allocation from the deallocation. Update #3959.
* score: Add _Stack_Allocator_do_initialize()Sebastian Huber2020-08-313-21/+63
| | | | | | | | Do the stack allocator initialization and sanity check only if a user-provided stack allocator was configured. This avoids a dependency of _Thread_Handler_initialization() on the stack allocator. Update #3959.
* score: Use _Freechain_Push()Sebastian Huber2020-08-312-2/+2
| | | | | | The nodes are never NULL. Update #3959.
* score: Add <rtems/score/freechainimpl.h>Sebastian Huber2020-08-315-1/+5
| | | | | | Hide implementation details. Update #3959.
* score: Add _Freechain_Push()Sebastian Huber2020-08-311-2/+1
| | | | Update #3959.
* score: Fix debug assertSebastian Huber2020-08-311-4/+12
| | | | | Do not access executing->current_state outside the protection of the thread state lock. Add missing state with a comment.
* score: Optimize _Objects_Name_to_id_u32()Sebastian Huber2020-08-312-3/+2
| | | | | | | Remove the superfluous invalid name check since the object creation directives ensure that objects with such a name cannot exist. Also finding an object with such a name would be no catastrophy if it really exists.
* rtems: Add _RTEMS_Name_to_id()Sebastian Huber2020-08-311-2/+2
| | | | | | | | | | Simplify object name to identifier directives. Using _RTEMS_Name_to_id() to implement the directives enables a tail call optimization. Change license to BSD-2-Clause according to file history. Update #3053.
* score: Constify objects name to id functionsSebastian Huber2020-08-312-9/+9
|
* score: Fix set but not used warningSebastian Huber2020-08-211-1/+1
|
* sparc: Use RTEMS_XCONCAT()Sebastian Huber2020-08-201-4/+2
| | | | Prefer macros with a proper namespace.
* i386: Fix possible race condition on first context restoreJan Sommer2020-07-291-1/+1
| | | | | | | | | | | | Make sure that the esp is restored before the eflags register. When the init task is initially restored, system interrupts are activated when the eflags register is loaded. If the esp register still points to an address in the interrupt stack area (from early system initlization) the ISR might overwrite its own stack. Closes #4031
* epiphany: Remove support for this targetSebastian Huber2020-07-0513-1882/+0
| | | | | | | Due to an unmaintained toolchain (internal errors in GCC, no FSF GDB integration) the Epiphany architecture was obsoleted in RTEMS 5.1. Update #3941.
* i386: Replace fpcr clobber with memory clobberSebastian Huber2020-07-052-3/+3
| | | | Update #3943.
* score: Clarify CPU_USE_LIBC_INIT_FINI_ARRAY optionSebastian Huber2020-06-301-3/+4
| | | | Update #4018.
* score: Add CPU_USE_LIBC_INIT_FINI_ARRAYKinsey Moore2020-06-3019-2/+48
| | | | | | | | This introduces the CPU_USE_LIBC_INIT_FINI_ARRAY define for use by CPU ports to determine which global constructor and destructor methods are used instead of placing architecture defines where they shouldn't be. Close #4018
* bsp/pc386: Define interrupt stack frame for smpJan Sommer2020-06-112-13/+17
| | | | | | - Defines CPU_Interrupt_frame in cpu_impl.h - Updates isq_asm.S to save/restore registers in matching order to interrupt frame
* bsp/pc386: Update context switch and restoreJan Sommer2020-06-112-16/+51
| | | | Uses similar flow in cpu_asm.S for i386 as for arm.
* bsp/pc386: Update GDT to work for SMPJan Sommer2020-06-112-5/+32
| | | | | | | | | | Create a GS segment in the GDT for each processor for storing TLS. This makes the GDT in startAP.S obsolete as all processors now share the same GDT, which is passed to each AP at startup. The correct segment for each processor is calculated in cpu_asm.S. Update #3335
* arm: Fix ARMv7-M exception handlerSebastian Huber2020-05-271-8/+15
| | | | | | Store the stack pointer of the exception context to the exception frame. Close #3987.
* doxygen: Switch @brief and @ingroupSebastian Huber2020-04-2833-33/+66
| | | | This order change fixes the Latex documentation build via Doxygen.
* Canonicalize config.h includeSebastian Huber2020-04-16286-331/+331
| | | | | | | | Use the following variant which was already used by most source files: #ifdef HAVE_CONFIG_H #include "config.h" #endif
* score: Check time of day in _TOD_Set()Sebastian Huber2020-04-141-1/+20
| | | | Close #3949.
* score: Return status in _TOD_Set()Sebastian Huber2020-04-142-19/+23
| | | | Update #3949.
* Revert "score: Fix _ISR_Stack_area_end"Sebastian Huber2020-04-051-36/+0
| | | | | This reverts commit 8e80876bdd54e36fb668eee655eec1dd588daf13 which broke several architectures.
* score: Fix _ISR_Stack_area_endSebastian Huber2020-04-031-0/+36
| | | | | | | | | | The _ISR_Stack_area_begin and _ISR_Stack_area_end symbols are in different sections. They must have the same alignment, otherwise the following linker directive could separate them: *(SORT_BY_ALIGNMENT (SORT_BY_NAME (.rtemsstack*))) Update #3799.
* arm: ARMv7-M statically initialized vector tableSebastian Huber2020-04-032-16/+30
| | | | | | | Statically initialize the ARMv7-M vector table to allow a placement in ROM with read-only MPU settings. Change licence to BSD-2-Clause in some files.