Sebastian Huber
141e16d225
rtems: Conditionally define rtems_interrupt_frame
...
Update #2808 .
2016-11-18 07:30:32 +01:00
Sebastian Huber
8ef8a32d00
bsps/mips: Use <libcpu/isr_entries.h>
...
Avoid duplicate mips_vector_isr_handlers() declarations.
2016-11-18 07:30:32 +01:00
Sebastian Huber
82d30a310c
score: Move CPU_PER_CPU_CONTROL_SIZE
...
Move CPU_PER_CPU_CONTROL_SIZE and the optional CPU_Per_CPU_control to
<rtems/score/cpuimpl.h> to hide it from <rtems.h>.
2016-11-18 07:30:32 +01:00
Sebastian Huber
d78d5294cd
score: Add and use _Thread_Dispatch_direct()
...
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 .
2016-11-18 07:30:31 +01:00
Sebastian Huber
acc6d9bf37
score: Remove obsolete defines
...
The thread dispatch inline option is no longer used.
2016-11-18 07:30:31 +01:00
Sebastian Huber
0e658d456c
posix: Simplify cleanup push/pop
...
The POSIX cleanup list must be proteced from asynchronous thread
deletion. Here local interrupt disable is sufficient.
2016-11-18 07:30:31 +01:00
Sebastian Huber
1897fa6d82
sptests/sp37: Better cope with internal padding
2016-11-18 07:30:31 +01:00
Sebastian Huber
04bd261726
arm: Use TPIDRPRW for current per-CPU control
...
Use the previously unused TPIDRPRW register to get the per-CPU control
of the current processor. This avoids instructions in
GET_SELF_CPU_CONTROL which are not available in Thumb mode.
2016-11-18 07:30:31 +01:00
Chris Johns
3a30c6fa5c
Fix untar mkdir when the directory exists.
2016-11-18 09:10:20 +11:00
Christian Mauderer
bb5d97f3eb
bsp/atsamv: Make size of nocache-memory configurable.
2016-11-17 15:18:03 +01:00
Jiri Gaisler
316da9356a
rtl-mdreloc-sparc.c: Do not print unaligned pointer and cause unaligned access.
...
updates #2802 .
2016-11-14 08:21:12 -06:00
Sebastian Huber
38a1449fd4
powerpc: Add _CPU_Get_current_per_CPU_control()
...
Add _CPU_Get_current_per_CPU_control() on SMP configurations. Use SPRG0
for the current per-CPU control. This reduces the code size by three
instructions and is slightly faster.
Update #2805 .
2016-11-10 09:58:37 +01:00
Sebastian Huber
58bced64b9
score: Move _CPU_Get_current_per_CPU_control()
...
Move _CPU_Get_current_per_CPU_control() from <rtems/score/cpu.h> to
<rtems/score/cpuimpl.h>.
2016-11-10 09:22:18 +01:00
Sebastian Huber
05ca53ddf6
rtems: Add scheduler processor add/remove
...
Update #2797 .
2016-11-10 09:22:09 +01:00
Sebastian Huber
1f5bee3d85
score: Add and use Thread_Control::is_idle
...
Update #2797 .
2016-11-09 15:27:30 +01:00
Sebastian Huber
e6107854b2
score: Rename _Scheduler_Assignments
...
Rename _Scheduler_Assignments into _Scheduler_Initial_assignments to
make it clear that they may not reflect the run-time scheduler
assignment.
Update #2797 .
2016-11-09 15:27:29 +01:00
Sebastian Huber
68ef65bd5e
score: Clarify _Scheduler_SMP_Start_idle()
2016-11-09 15:27:29 +01:00
Sebastian Huber
1c46b80329
score: Add scheduler to per-CPU information
...
This makes it possible to adjust the scheduler of a processor at
run-time.
Update #2797 .
2016-11-09 15:27:29 +01:00
Sebastian Huber
f20dfa8fcd
score: Avoid _Scheduler_Get_by_CPU_index( 0 )
...
Avoid use of processor index 0 which may have no scheduler assigned.
2016-11-09 15:27:29 +01:00
Sebastian Huber
2612a0bf5b
score: Simplify _Scheduler_Get_by_id()
...
Avoid dead code in non-SMP configurations. Return scheduler identifier
independent of the current processor count of the scheduler via
rtems_scheduler_ident(), since this value may change during run-time.
Check the processor count in _Scheduler_Set() under scheduler lock
protection.
Update #2797 .
2016-11-09 15:27:29 +01:00
Sebastian Huber
16b14cfdf8
score: Fix _MRSP_Initialize()
...
The ceiling priorities must be initialized by scheduler index. Do not
confuse it with a processor index.
2016-11-09 15:27:28 +01:00
Sebastian Huber
947814cae7
mpci: Use the first scheduler for MPCI
...
Avoid use of processor index 0 which may have no scheduler assigned.
2016-11-09 15:27:28 +01:00
Sebastian Huber
2f5ac5b507
rtems: Fix rtems_task_create() scheduler selection
...
Use the home scheduler of the executing thread for the created thread.
This is in line with pthread_create(). Using the current processor may
pick up an unexpected scheduler in case of a temporary migration, e.g.
due to locking protocols.
2016-11-09 15:27:28 +01:00
Sebastian Huber
eb98dd49bc
score: Inline some SMP lock operations by default
...
The SMP ticket lock release turned out to be suitable for inlining, e.g.
a hand full of instructions, no branches.
The changes in the screen files do not reflect the changes due to this
commit. However, they are now up to date. Obtained on a T4240 running
at 1.5GHz using GCC 7.0.0 20161108..
2016-11-09 15:19:59 +01:00
Sebastian Huber
6de41c5fe9
Provide kernel space header files
...
These kernel space header files must be provided for Newlib
172e2050d95b41861db858dd9bc43a3fb4a28987.
2016-11-08 10:15:28 +01:00
Sebastian Huber
6cb234f079
bsp/qoriq: Remove duplicate qoriq_gpio definition
...
Close #2800 .
2016-11-07 09:31:35 +01:00
Sebastian Huber
7790d95f0a
sparc: Provide _CPU_Get_thread_executing()
2016-11-07 07:39:42 +01:00
Sebastian Huber
df48ed2cba
score: Add optional _CPU_Get_thread_executing()
2016-11-07 07:39:42 +01:00
Sebastian Huber
edbd43c613
score: Prevent assignment to _Thread_Executing
2016-11-07 07:39:41 +01:00
Sebastian Huber
df63fbd1ac
score: Add <rtems/score/cpuimpl.h>
...
The aim of this file is to encapsulate CPU port implementation details.
This helps to hide implementation details from <rtems.h> which
indirectly includes <rtems/score/cpu.h>.
2016-11-07 07:39:41 +01:00
Sebastian Huber
ee42943cd0
score: Optimize self-contained mutexes
2016-11-04 10:54:53 +01:00
Sebastian Huber
e7ab43d46f
score: Use non-inline thread queue lock ops
...
This reduces the code size and helps to reduce the amount of testing.
Hot paths can use the _Thread_queue_Queue_acquire_critical() and
_Thread_queue_Queue_release_critical() functions which are still inline.
2016-11-04 10:54:52 +01:00
Sebastian Huber
347ef92898
score: Provide inline variants for ISR lock ops
2016-11-04 10:54:52 +01:00
Sebastian Huber
9cd53495d2
score: Default to non-inline SMP lock ops
...
Use non-inline SMP lock acquire and release operations by default.
Provide inline variants for the hot spots, e.g. mutex acquire/release.
2016-11-04 10:54:52 +01:00
Sebastian Huber
9597c4ed56
Size optimization for resource snapshots
...
Do not reference the objects information directly.
2016-11-04 10:54:52 +01:00
Sebastian Huber
8b18b8eb67
posix: Fix _POSIX_RWLock_Manager_initialization()
...
Use right object class.
2016-11-04 10:54:52 +01:00
Sebastian Huber
76ad5e0c44
score: Fix _Scheduler_Try_to_schedule_node()
...
In case the thread is scheduled and the sticky level is greater than
one, then we must use an idle thread for correctness of MrsP.
2016-11-04 08:34:11 +01:00
Tim Cussins
11ae6f94f8
virtex4, virtex5 bsp.h: Use BSP_INTERRUPT_STACK_SIZE not user space CONFIGURE_INTERRUPT_STACK_SIZE
...
closes #2801 .
2016-11-03 12:49:12 -05:00
Joel Sherrill
8cf2f8b6f3
testsuites/testdata/dltests-broken-on-this-bsp.tcfg: Add new dl tests 03-05
2016-11-03 10:56:09 -05:00
Joel Sherrill
0df50a6c99
m68k/mrm332/make/custom/mrm332-testsuite.tcfg: Add dl05
2016-11-03 10:56:09 -05:00
Joel Sherrill
c27986335c
m68k/mcf5225x/make/custom/mcf5225x-testsuite.tcfg: Add dl05
2016-11-03 10:56:09 -05:00
Joel Sherrill
fbf45431ae
m68k/mcf52235/make/custom/mcf52235-testsuite.tcfg: Add dl05
2016-11-03 10:56:09 -05:00
Joel Sherrill
710302ae48
mcf5206elite/make/custom/mcf5206elite-testsuite.tcfg: Add dl05
2016-11-03 10:56:08 -05:00
Joel Sherrill
c7589640f9
moxiesim/bsp_specs: Add crtbegin/end to fix link issues
2016-11-03 10:56:08 -05:00
Sebastian Huber
afa92ab764
score: Add _Watchdog_Ticks_from_sbintime
...
Necessary to support a network stack update to FreeBSD 12.
2016-11-03 15:02:42 +01:00
Sebastian Huber
9599b4683d
score: Delete unused _Scheduler_Is_id_valid()
2016-11-03 11:23:49 +01:00
Sebastian Huber
47d246436f
score: Conditionally enable thread resource count
...
Maintain the thread resource count only in debug configurations. This
is a performance optimization for non-debug configurations.
2016-11-03 11:23:30 +01:00
Sebastian Huber
9e7fa07169
score: Relax _Scheduler_Set() restrictions
...
No longer unconditionally prevent scheduler changes if the thread owns
resources. Prevent a scheduler change only in case other threads wait
for the resource.
2016-11-03 11:19:34 +01:00
Sebastian Huber
0dd49d0015
score: Introduce thread resource count methods
...
This makes it easier to conditionally enable/disable the thread resource
count usage.
2016-11-03 10:55:48 +01:00
Sebastian Huber
6e31b56f95
rtems: Fix binary semaphore resource count
...
Binary semaphores (not simple binary semaphores) maintain the resource
count since 8797c76add . Do this also for
initially locked binary semaphores.
2016-11-03 10:55:31 +01:00