summaryrefslogtreecommitdiffstats
path: root/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
* powerpc: Add register definesSebastian Huber2017-07-311-0/+26
| | | | | Update #3082. Update #3085.
* score: Add RTEMS_HAVE_MEMBER_SAME_TYPE()Sebastian Huber2017-07-312-2/+25
| | | | This fixes some "variably modified" warnings and a clang compile error.
* cpukit/include/rtems/inttypes.h: Correct PRIdioctl_command_tJoel Sherrill2017-07-281-1/+1
|
* bsp/t32mppc: Add SMP supportSebastian Huber2017-07-281-0/+3
|
* untar: Fix compile errorSebastian Huber2017-07-281-1/+1
|
* untar: Fix use of uninitialized variableSebastian Huber2017-07-281-0/+2
|
* Fix IO control request typeSebastian Huber2017-07-282-2/+3
|
* sparc: Add lazy floating point switchSebastian Huber2017-07-256-219/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The SPARC ABI is a bit special with respect to the floating point context. The complete floating point context is volatile. Thus, from an ABI point of view nothing needs to be saved and restored during a context switch. Instead the floating point context must be saved and restored during interrupt processing. Historically, the deferred floating point switch was used for SPARC and the complete floating point context is saved and restored during a context switch to the new floating point unit owner. This is a bit dangerous since post-switch actions (e.g. signal handlers) and context switch extensions may silently corrupt the floating point context. The floating point unit is disabled for interrupt handlers. Thus, in case an interrupt handler uses the floating point unit then this will result in a trap (INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT). In uniprocessor configurations, a lazy floating point context switch is used. In case an active floating point thread is interrupted (PSR[EF] == 1) and a thread dispatch is carried out, then this thread is registered as the floating point owner. When a floating point owner is present during a context switch, the floating point unit is disabled for the heir thread (PSR[EF] == 0). The floating point disabled trap checks that the use of the floating point unit is allowed and saves/restores the floating point context on demand. Update #3077.
* INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNITSebastian Huber2017-07-252-3/+5
| | | | | | Add new fatal error INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT. Update #3077.
* sparc: Rename SPARC_USE_SAFE_FP_SUPPORTSebastian Huber2017-07-253-28/+30
| | | | | | | Rename SPARC_USE_SAFE_FP_SUPPORT in SPARC_USE_SYNCHRONOUS_FP_SWITCH. Update comment. Update #3077.
* score: Add optional _CPU_Context_Destroy()Sebastian Huber2017-07-253-1/+27
| | | | Update #3077.
* posix: fix warnings with mmap from heap/wkspaceGedare Bloom2017-07-242-2/+2
| | | | | | Avoid void pointer arithmetic. Updates #2859.
* posix: replace mmap mappings lock with libio lockGedare Bloom2017-07-243-86/+13
| | | | | | Use the libio mutex lock instead of the mmap mappings lock. Updates #2859.
* posix: Use unprotected chain operationsSebastian Huber2017-07-202-2/+2
| | | | | | Operarations are already protected by mmap_mappings_lock. Updates #2859.
* Fixed issue with searching mapped addressesKevin Kirspel2017-07-201-3/+4
| | | | | | | | | | The loop that checks if the current address is already mapped uses the same local variable for the chanin node as the newly allocated chain node so the allocated chain node gets over written. Added a new local variable for the loop that checks the address Updates #2859.
* score: Fix warningSebastian Huber2017-07-181-1/+1
| | | | Update #3059.
* dumpbuf: Simplify rtems_print_buffer()Sebastian Huber2017-07-181-11/+17
| | | | | | This avoids an unnecessary use of the floating point unit. Update #3076.
* ftpd: Use floating point tasksSebastian Huber2017-07-181-1/+1
| | | | Update #3076.
* i2c: Point to most relevant Linux documentationSebastian Huber2017-07-171-3/+4
|
* sparc: Add assembly workaround for LEON3FT B2BST errataDaniel Cederman2017-07-173-0/+33
| | | | | | | | | | | | | | | This patch adds NOP instructions to prevent instruction sequences that are sensitive to the LEON3FT B2BST errata. See GRLIB-TN-0009: "LEON3FT Stale Cache Entry After Store with Data Tag Parity Error" for more information. The sequences are only modified if __FIX_LEON3FT_B2BST is defined. The patch works in conjunction with the -mfix-ut700, -mfix-gr712rc, and -mfix-ut699 GCC flags that prevents the sensitive sequences from being generated. Update #3057.
* posix/mmap: Add support for file handler and MAP_ANONKevin Kirspel2017-07-1434-113/+312
| | | | | | | | | | | Added a mmap file handler to struct _rtems_filesystem_file_handlers_r. Updated each file handler object to support the default mmap handler. Updated mmap() to call the mmap handler for MAP_SHARED. Added a mmap file handler for shm Added support for MAP_ANON in mmap(). Updates #2859
* score: Fix typoSebastian Huber2017-07-121-1/+1
| | | | Update #3059.
* Add interrupt vector set/get affinitySebastian Huber2017-07-122-0/+62
| | | | Close #3071.
* Add interrupt server moveSebastian Huber2017-07-121-0/+26
| | | | Update #3071.
* Add interrupt server set affinitySebastian Huber2017-07-121-0/+36
| | | | Update #3071.
* Add interrupt server suspend/resumeSebastian Huber2017-07-122-0/+45
| | | | | | | This mechanism can be used to safely move the interrupt server from one scheduler instance to another for example. Update #3071.
* Create one interrupt server per processorSebastian Huber2017-07-121-59/+70
| | | | | | | This allows load balancing of interrupt processing in SMP configurations. Update #3071.
* rtems: Add rtems_scheduler_ident_by_processor_setSebastian Huber2017-07-113-0/+86
| | | | Update #3070.
* rtems: Add rtems_scheduler_ident_by_processor()Sebastian Huber2017-07-113-0/+67
| | | | Update #3069.
* rtems: Fix warningSebastian Huber2017-07-111-2/+0
| | | | Update #3059.
* score: Make EDF the default SMP schedulerSebastian Huber2017-07-101-2/+2
| | | | | | | | | | | | | The EDF SMP scheduler supports simple thread processor affinities (see #3059) with a small run-time overhead. The current default SMP scheduler lacks support for thread processor affinities at all. The EDF SMP scheduler offers a good feature set for most applications. So, use it by default. Run-time libraries like libgomp, MTAPI, work stealing schedulers, language interpreters (e.g. Erlang virtual machine), maintainence of per-processor data (e.g. Universal Memory Allocator (UMA)), etc. use a one-to-one thread processor affinity for example. Update #3063.
* score: Fix set schedulerSebastian Huber2017-07-101-5/+13
| | | | | | | Ensure that the thread processor affinity fits the new scheduler instance. Update #3059.
* score: Add simple affinity support to EDF SMPSebastian Huber2017-07-1010-108/+600
| | | | Update #3059.
* score: Pass scheduler nodes to processor allocatorSebastian Huber2017-07-071-18/+14
| | | | | | | This allows scheduler implementations to easily access scheduler-specific data. Update #3059.
* score: Add scheduler node to set affinity opSebastian Huber2017-07-076-14/+14
| | | | Update #3059.
* score: Fix default set affinitySebastian Huber2017-07-071-4/+3
| | | | | | | | The set of online processors must be a subset of the thread processor affinity for the schedulers without arbitrary processor affinity support to avoid problems in case of processor addition and removal. Update #3059.
* score: Introduce _SMP_Get_online_processors()Sebastian Huber2017-07-073-2/+14
| | | | Update #3059.
* score: Use processor mask for set affinitySebastian Huber2017-07-076-62/+40
| | | | Update #3059.
* rtems: Fix rtems_scheduler_remove_processor()Sebastian Huber2017-07-071-4/+8
| | | | | | | | Account for the thread processor affinity and make sure that it is possible to allocate a processor to each thread dedicated to a scheduler instance. Update #3059.
* score: Add processor set to scheduler contextSebastian Huber2017-07-076-32/+22
| | | | | | | Replace the simple processor count with the processor set owned by the scheduler instance. Update #3059.
* score: Move processor affinity to Thread_ControlSebastian Huber2017-07-0711-143/+20
| | | | Update #3059.
* score: Add some processor mask functionsSebastian Huber2017-07-061-0/+99
| | | | Update #3059.
* score: Add processor mask to/from cpu_set_tSebastian Huber2017-07-063-2/+126
| | | | Update #3059.
* score: Use <sys/bitset.h> for Processor_maskSebastian Huber2017-07-066-66/+59
| | | | | | | | Implement the Processor_mask via <sys/bitset.h>. Provide _Processor_mask_To_uint32_t() to enable its use in device specific routines, e.g. interrupt affinity register in an interrupt controller. Update #3059.
* xz: Suppress attribute warningsSebastian Huber2017-07-051-0/+7
| | | | Update #2909.
* score: Fix formatSebastian Huber2017-07-051-14/+7
|
* score: Avoid clash with <strings.h> provided fls()Sebastian Huber2017-07-051-1/+2
|
* arm: Fix ARMv7-M interrupt processingSebastian Huber2017-07-042-30/+48
| | | | | | | | | | | | Right after a "msr basepri_max, %[basepri]" instruction an interrupt service may still take place (observed at least on Cortex-M7). However, pendable service calls that are activated during this interrupt service may be delayed until interrupts are enable again. The _ARMV7M_Pendable_service_call() did not check that a thread dispatch is allowed. Move this test from _ARMV7M_Interrupt_service_leave() to _ARMV7M_Pendable_service_call(). Update #3060.
* score: Add assert to _Thread_Dispatch()Sebastian Huber2017-07-041-0/+1
| | | | Update #3060.
* tests: Move busy loop to test supportSebastian Huber2017-06-293-1/+125
| | | | Update #3056.