Sebastian Huber
b7f5e391c0
score: Add _Thread_Exit()
...
The goal is to make _Thread_Exit() a no-return function in follow up
patches.
Update #2555 .
Update #2626 .
2016-05-20 07:49:36 +02:00
Sebastian Huber
e753748703
score: Delete redundant thread life enums
...
This makes it easier to add more states in the future.
Update #2555 .
Update #2626 .
2016-05-20 07:49:36 +02:00
Sebastian Huber
12a1228c59
psxclassic01: Assume correct pthread_detach()
...
Update #2714 .
2016-05-20 07:49:36 +02:00
Pavel Pisa
8830bfe65b
arm/raspberrypi: add cmdline support for rpi bsp.
2016-05-19 13:21:40 +02:00
YANG Qiao
54c197a2af
arm/raspberrypi: add VideoCore frame buffer control support
2016-05-19 13:21:40 +02:00
YANG Qiao
33e39d3102
arm/raspberrypi: add VideoCore mailbox support read and write
2016-05-19 13:21:40 +02:00
Pavel Pisa
12582291e0
arm/raspberrypi: add locking around GPIO pin function selection.
...
This is required if function or direction is changed by some driver
after start of thread multitasking or in interrupts drivers.
There can be problem with calling GPIO function selection before
data section is initialized. But actual ticket lock implementation
seems to be compatible even with memory initialized to zero oven
on SMP.
2016-05-19 13:21:40 +02:00
Pavel Pisa
4b62192f05
arm/raspberrypi: correct GPIO pin function selection.
...
Original implementation does only bitwise-or with previous register
value for all functions except IN. Switch from one to other function
would lead to incorrect value.
2016-05-19 13:21:40 +02:00
Pavel Pisa
e706a9d17c
arm/raspberrypi: ensure that RTEMS application image can be started by U-boot.
...
The current versions of U-boot start kernel/RTEMS application image
with instruction and data caches enabled and it sets exception
base register to new address after its self-relocation.
ldr r0, [r9, #GD_RELOCADDR] /* r0 = gd->relocaddr */
mcr p15, 0, r0, c12, c0, 0 /* Set VBAR */
Included changes in bsp_start_hook_0 restore default state to
allow RTEMS image to run after startup from newer U-boot version
on Raspberry Pi.
Clear interrupt enable registers in interrupt controller
to ensure that RTEMS starts from well defined state.
2016-05-19 13:21:40 +02:00
Pavel Pisa
6fbc692fe2
bsps/arm: CP15 support for flush prefetch buffer and table base control.
2016-05-19 13:21:39 +02:00
Sebastian Huber
41ce30a967
SMP: Add Mellor-Crummey and Scott (MCS) lock
...
Added only for evaluation purposes. We have to compare the performance
against the ticket lock on the interesting platforms via
smptests/smplock01.
The following GCC shortcoming affects the MCS lock:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66867
2016-05-19 11:50:38 +02:00
Sebastian Huber
26fafd5a2f
SMP: Add and use lock statistics helper
2016-05-19 11:50:37 +02:00
Sebastian Huber
a7668b2a88
SMP: Move ticket lock to separate header file
2016-05-19 11:50:35 +02:00
Sebastian Huber
2aae3a7032
SMP: Move lock stats to separate header file
2016-05-19 11:50:34 +02:00
Sebastian Huber
ae0f048ff3
psxtests/psxualarm: Avoid output in signal handler
...
Avoid output in signal handler to not disturb the timings which are
checked in this test. Use asserts to ensure proper signal handler
invocations.
2016-05-18 11:11:21 +02:00
Sebastian Huber
3c20d2810a
posix: Fix return states of pthread_kill()
...
POSIX mandates that an error code is returned and not -1 plus errno.
Close #2715 .
2016-05-17 13:41:56 +02:00
Sebastian Huber
9d8ee11e55
psxtests/psxcancel: Add pthread_detach() tests
...
Update #2714 .
2016-05-17 10:58:10 +02:00
Sebastian Huber
f014f84eb3
psxtests/psxcancel: Add resource check
2016-05-17 09:41:34 +02:00
Sebastian Huber
adc819ef76
sptests/spthreadlife01: Add self delete test case
2016-05-17 09:02:17 +02:00
Sebastian Huber
9fd72713c9
posix: Fix return status of pthread_cancel()
...
POSIX recommends ESRCH in case no thread exists for the specified
identifier.
Close #2713 .
2016-05-17 08:39:30 +02:00
Sebastian Huber
df23f464be
capture: Fix use of per-processor data
...
Get the current processor index only once and with interrupts disabled.
Close #2707 .
2016-05-12 13:24:43 +02:00
Sebastian Huber
d449c12df3
capture: Remove superfluous includes
2016-05-12 13:24:43 +02:00
Sebastian Huber
7bd18697f8
capture: Compact rtems_capture_record_t
...
Order fields according to alignment to reduce structure internal
padding.
2016-05-12 13:24:42 +02:00
Sebastian Huber
2f11d4a014
capture: Fix buffer allocation and free
...
Do not use function static variables. Remove superfluous volatile
qualifiers. Use proper integer types.
Close #2706 .
2016-05-12 13:24:42 +02:00
Sebastian Huber
1379d840a4
smptests/smpcapture02: Adjust for clock changes
...
Fix overall clock tick count. Change introduced by
90d8567d34 .
Update #2554 .
2016-05-12 13:24:42 +02:00
Sebastian Huber
0727760336
rtems: Add rtems_interrupt_lock_interrupt_disable
...
Update #2707 .
2016-05-12 13:24:42 +02:00
Sebastian Huber
ef6f8a8377
score: Avoid Giant lock for scheduler set/get
...
Update #2555 .
2016-05-12 13:24:41 +02:00
Sebastian Huber
8bc6bf28aa
posix: Avoid Giant lock for some pthread functions
...
Avoid Giant lock for pthread_getattr_np(), pthread_setschedparam() and
pthread_getschedparam(). Replace POSIX threads scheduler lock with
thread state lock.
Update #2555 .
2016-05-12 13:24:41 +02:00
Sebastian Huber
d995299994
score: Avoid Giant lock _Scheduler_Get_affinity()
...
Update #2555 .
2016-05-12 13:24:41 +02:00
Sebastian Huber
e135271b93
score: Avoid Giant lock _Scheduler_Set_affinity()
...
Update #2555 .
2016-05-12 13:24:41 +02:00
Sebastian Huber
bd12dda405
score: Use thread state lock for current state
...
In addition protect scheduler of thread by thread state lock. Enables
use of scheduler per-instance locks.
Update #2555 .
2016-05-12 13:24:41 +02:00
Sebastian Huber
11c66437e7
rtems: Avoid Giant lock rtems_task_is_suspended()
...
Update #2555 .
2016-05-12 13:24:40 +02:00
Sebastian Huber
4d76300ae5
rtems: Avoid Giant lock for some task operations
...
Avoid Giant lock for rtems_task_set_priority(), rtems_task_suspend() and
rtems_task_resume().
Update #2555 .
2016-05-12 13:24:40 +02:00
Sebastian Huber
105b4e6fa5
rtems: Use thread state lock for signals
2016-05-12 13:24:40 +02:00
Sebastian Huber
6e4f929296
score: Introduce thread state lock
...
Update #2556 .
2016-05-12 13:24:40 +02:00
Sebastian Huber
af20467ef4
score: Add _Thread_queue_Is_lock_owner()
...
Add _Thread_queue_Is_lock_owner() in case RTEMS_DEBUG is defined.
2016-05-12 13:24:38 +02:00
Sebastian Huber
d9bb9ebc34
posix: Make _POSIX_signals_Action_handler() static
2016-05-12 13:20:34 +02:00
Sebastian Huber
a0162bf372
mpci: Delete unused region support
2016-05-12 13:20:34 +02:00
Sebastian Huber
3e0bb6734a
score: Ensure matching lock acquire and release
...
Ensure matching lock acquire and release for SMP locks if RTEMS_DEBUG is
defined.
2016-05-12 13:20:34 +02:00
Sebastian Huber
1a9d36b921
score: Add _ISR_lock_Is_owner()
2016-05-12 13:20:34 +02:00
Sebastian Huber
9276fdec2e
score: Fix CORE mutex initialization
...
The priority inheritance and ceiling CORE mutexes wrongly used the FIFO
queueing discipline. Delete misleading _CORE_mutex_Is_priority(). Bug
introduced by 1e1a91ed11 .
Add test sptests/spmutex01, since no existing uni-processor test covered
the thread priority queueing discipline for CORE mutexes.
2016-05-12 13:20:33 +02:00
Sebastian Huber
2b71210f33
Revert "score: Avoid use of uninitialized variable"
...
Sorry, I should not fix warnings unmindfully.
This reverts commit 35c8efc950 .
2016-05-11 16:42:29 +02:00
Sebastian Huber
35c8efc950
score: Avoid use of uninitialized variable
...
Properly set the needs_help to NULL in _Scheduler_SMP_Enqueue_ordered()
in case the thread is inserted into the ready set.
2016-05-11 16:07:40 +02:00
Chris Johns
c3fd48d09c
i386/pc386: Clean out removed functions.
2016-05-11 11:45:02 +10:00
Chris Johns
8cb397b27d
i386/pc386: Add x86 debug register support for hardware break points.
2016-05-11 11:45:02 +10:00
Chris Johns
fc138a1027
i386/pc386: EOI the master and slave for slave IRQ signals.
2016-05-11 11:45:02 +10:00
Chris Johns
02ef5d9a05
i386/pc386: Add --ide-disable boot command line option.
2016-05-11 11:45:02 +10:00
Chris Johns
93fb879796
i386/pc386: Fix interrupt support.
...
Fix the interrupt and stop the spurious interrupt from happening.
The fix moves the EOI to C code and cleans that functionality out
of the asm part of the ISR handler.
The code checks the ISR and IRR registers on the enable.
Only ack the master for a slave IRQ if the slave has no other pending
requests.
2016-05-11 11:45:01 +10:00
Chris Johns
292dbff069
i386/pc386: Fix printk with the console changes.
2016-05-11 11:45:01 +10:00
Chris Johns
beefa11201
bsp/pc386: Use irq-generic.
2016-05-11 11:45:01 +10:00