Sebastian Huber
8f9658187a
score: Rework MP thread queue callout support
...
The thread queue implementation was heavily reworked to support SMP.
This broke the multiprocessing support of the thread queues. This is
fixed by this patch.
A thread proxy is unblocked due to three reasons
1) timeout,
2) request satisfaction, and
3) extraction.
In case 1) no MPCI message must be sent. This is ensured via the
_Thread_queue_MP_callout_do_nothing() callout set during
_Thread_MP_Allocate_proxy().
In case 2) and 3) an MPCI message must be sent. In case we interrupt
the blocking operation during _Thread_queue_Enqueue_critical(), then
this message must be sent by the blocking thread. For this the new
fields Thread_Proxy_control::thread_queue_callout and
Thread_Proxy_control::thread_queue_id are used.
Delete the individual API MP callout types and use
Thread_queue_MP_callout throughout. This type is only defined in
multiprocessing configurations. Prefix the multiprocessing parameters
with mp_ to ease code review. Multiprocessing specific parameters are
optional due to use of a similar macro pattern. There is no overhead
for non-multiprocessing configurations.
2016-04-06 09:08:21 +02:00
Sebastian Huber
818ad5eb76
score: Simplify _Thread_queue_Do_flush()
...
Also set the thread wait return code for thread proxies since this
causes no harm.
2016-04-06 09:08:20 +02:00
Sebastian Huber
9809d6e082
score: _Thread_queue_Flush() parameter changes
...
Change _Thread_queue_Flush() into a macro that invokes
_Thread_queue_Do_flush() with the parameter set defined by
RTEMS_MULTIPROCESSING. For multiprocessing configurations add the
object identifier to avoid direct use of the thread wait information.
Use mp_ prefix for multiprocessing related parameters.
Rename Thread_queue_Flush_callout to Thread_queue_MP_callout since this
type will be re-used later for other operations as well.
2016-04-06 09:08:20 +02:00
Sebastian Huber
e581ea9218
score: Fix _Thread_queue_Extract_locked()
...
We must update the wait flags under protection of the current thread
lock, otherwise a _Thread_Timeout() running on another processor may
interfere.
2016-04-06 09:08:20 +02:00
Sebastian Huber
6ca60e5dc9
score: Delete MP support for RW locks
...
MP support was not implemented.
2016-04-06 09:08:20 +02:00
Sebastian Huber
97312fcc6d
score: Delete Thread_Wait_information::id
...
This field was only by the monitor in non-multiprocessing
configurations. Add new field Thread_Wait_information::remote_id in
multiprocessing configurations and use it for the remote procedure call
thread queue.
Add _Thread_Wait_get_id() to obtain the object identifier for debug and
system information tools. Ensure the object layout via static asserts.
Add test cases to sptests/spthreadq01.
2016-04-06 09:08:20 +02:00
Sebastian Huber
d2c8693e15
bsp/atsam: Fix mbuf allocation
2016-04-01 08:33:29 +02:00
Sebastian Huber
9eaf564d52
score: Add and use _RBTree_Insert_inline()
2016-04-01 07:56:58 +02:00
Sebastian Huber
97127aa119
score: Add and use _RBTree_Find_inline()
2016-04-01 07:35:18 +02:00
Sebastian Huber
c01401c481
score: _User_extensions_Remove_set()
...
Use unprotected chain operation in _User_extensions_Remove_set() since
the caller must own the object allocator lock.
Update #2555 .
2016-03-31 13:33:48 +02:00
Sebastian Huber
2803314e1c
bsp/leon3: Remove dead code
2016-03-31 13:33:45 +02:00
Alexander Krutwig
fb29ca55ea
bsp/atsam: Add network interface driver
2016-03-31 13:00:44 +02:00
Sebastian Huber
0bd49f1535
bsp/atsam: Add nocache region support
2016-03-31 12:58:19 +02:00
Sebastian Huber
935e9c7dfc
bsp/atsam: Fix sizes of internal SRAM
2016-03-31 12:58:19 +02:00
Chris Johns
0a2f5bdd19
bsp/pc386: Fix --console=/--printk= argument parsing.
2016-03-31 14:45:59 +11:00
Joel Sherrill
d33ab8256d
v850/gdbv850sim/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:24 -05:00
Joel Sherrill
f7e2ceb4ac
sparc64/usiii/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:24 -05:00
Joel Sherrill
c412142f20
sparc64/niagara/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:24 -05:00
Joel Sherrill
23e574699c
sparc/erc32/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:24 -05:00
Joel Sherrill
be13774bcf
sh/shared/console.c: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
64f3cf8af4
sh/gensh2/startup/hw_init.c: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
09a21c59d9
powerpc/virtex5/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
bea9a25e2e
powerpc/virtex4/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
c9705f037a
powerpc/virtex/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
d379a62976
powerpc/qemuppc/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
c5ecb95c63
powerpc/psim/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
bf820a6f47
powerpc/haleakala/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
ff9f426cbd
moxie/moxiesim/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
7054fccf6f
mips/rbtx4938/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
fd2987774c
mips/rbtx4925/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
fd437ab396
mips/malta/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
aafd8188ca
mips/jmr3904/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
bbea36cd08
mips/hurricane/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
241c1b8e0b
mips/csb350/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
482fdd5510
m68k/uC5282/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
6d27f69c6f
m68k/mvme167/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
2816b1afab
m68k/mvme162/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
1d1b6f7a87
m68k/mvme147s/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:23 -05:00
Joel Sherrill
68a5bfcc5f
m68k/mvme147/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:22 -05:00
Joel Sherrill
ce019f3ddc
m68k/mvme147/console/console.c: Do not include <rtems/iosupp.h>
2016-03-30 14:04:22 -05:00
Joel Sherrill
228942f583
m68k/mrm332/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:22 -05:00
Joel Sherrill
8400f68895
m68k/mcf5329/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:22 -05:00
Joel Sherrill
651504078e
m68k/mcf5235/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:22 -05:00
Joel Sherrill
c3db9091ab
m68k/mcf5225x/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:22 -05:00
Joel Sherrill
3cf6de5843
m68k/mcf52235/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:22 -05:00
Joel Sherrill
9bbf6cd30f
m68k/mcf5206elite/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:22 -05:00
Joel Sherrill
d931d28f64
m68k/genmcf548x/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:22 -05:00
Joel Sherrill
f68a6ec28c
m68k/gen68360/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:22 -05:00
Joel Sherrill
5e96a582e8
m68k/gen68340/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:22 -05:00
Joel Sherrill
cbc20686bd
m68k/csb360/include/bsp.h: Do not include <rtems/iosupp.h>
2016-03-30 14:04:22 -05:00