Commit Graph

25482 Commits

Author SHA1 Message Date
Sebastian Huber
b5d514fe2d score: Create message queue implementation header
Move implementation specific parts of coremsg.h and coremsg.inl into new
header file coremsgimpl.h.  The coremsg.h contains now only the
application visible API.
2013-07-22 16:56:59 +02:00
Sebastian Huber
972a5c5f94 posix: Create message queue implementation header
Move implementation specific parts of mqueue.h and mqueue.inl into new
header file mqueueimpl.h.  The mqueue.h contains now only the
application visible API.
2013-07-22 16:56:59 +02:00
Sebastian Huber
993a888dfd rtems: Create message queue implementation header
Move implementation specific parts of message.h and message.inl into new
header file messageimpl.h.  The message.h contains now only the
application visible API.
2013-07-22 16:56:58 +02:00
Sebastian Huber
e36f2b8c91 score: Avoid direct usage of _Thread_Executing
Pass the executing thread as a function parameter.  Obtain the executing
thread inside a thread dispatch critical section to avoid problems on
SMP.
2013-07-22 16:56:58 +02:00
Sebastian Huber
570045ed7f score: Add const qualifier 2013-07-22 16:56:58 +02:00
Sebastian Huber
c4f585589a score: Create semaphore implementation header
Move implementation specific parts of coresem.h and coresem.inl into new
header file coresemimpl.h.  The coresem.h contains now only the
application visible API.
2013-07-22 16:56:58 +02:00
Sebastian Huber
c624c0e9e2 posix: Convert to inline function 2013-07-22 16:56:58 +02:00
Sebastian Huber
9c743e8e72 posix: Create semaphore implementation header
Move implementation specific parts of semaphore.h and semaphore.inl into
new header file semaphoreimpl.h.  The semaphore.h contains now only the
application visible API.
2013-07-22 16:56:57 +02:00
Sebastian Huber
05e82bd76b score: Error for non-preemptible tasks on SMP
A common use case for disabled preemption was to ensure mutual exclusion
on single-processor configurations.  On SMP this does not work.

To abandon non-preemptible tasks simplifies the scheduler.
2013-07-22 16:46:01 +02:00
Sebastian Huber
79d9523f19 rtems: Error for task variables on SMP
Task variables are not supported on SMP.
2013-07-22 16:46:01 +02:00
Sebastian Huber
50ccf988c2 rtems: Error for task delete on SMP
Task deletion is currently not implemented on SMP configurations.
2013-07-22 16:46:01 +02:00
Sebastian Huber
f913c796ff sapi: Add rtems_configuration_is_smp_enabled()
Add a configuration field which indicates if the SMP mode of operation
is enabled.  This can be used to disable features unsupported on SMP,
e.g task variables.
2013-07-22 16:46:01 +02:00
Sebastian Huber
0bbd8fdce2 score: Add and use _ISR_Get_nest_level() 2013-07-22 16:46:01 +02:00
Sebastian Huber
d0a97f2d1d score: Move ISR catch support functions
Delete now unused file <rtems/score/isr.inl>.
2013-07-22 16:46:00 +02:00
Sebastian Huber
45b572fa4a score: Move ISR level content to single file 2013-07-22 16:46:00 +02:00
Sebastian Huber
1a30d44266 libmisc: Use _Thread_Get_executing() 2013-07-22 16:46:00 +02:00
Sebastian Huber
d566f33e67 libcsupport: Use _Thread_Get_executing() 2013-07-22 16:46:00 +02:00
Sebastian Huber
d7ce33f17e testsuites: Use _Thread_Get_executing() 2013-07-22 16:46:00 +02:00
Sebastian Huber
5f7757b05b posix: Use _Thread_Get_executing() 2013-07-22 16:45:59 +02:00
Sebastian Huber
3b8d2fa443 rtems: Use _Thread_Get_executing() 2013-07-22 16:45:59 +02:00
Sebastian Huber
02f73d487e score: Use _Thread_Get_executing() 2013-07-22 16:45:59 +02:00
Sebastian Huber
a9127a2e65 testsuites: Include missing header files 2013-07-22 16:45:59 +02:00
Sebastian Huber
f2d9fda780 shell: Include missing header file 2013-07-22 16:45:58 +02:00
Sebastian Huber
ca1d84efb8 network: Include missing header file 2013-07-22 16:45:58 +02:00
Sebastian Huber
a1b4752869 posix: Include missing header files 2013-07-22 16:45:58 +02:00
Sebastian Huber
1e4f08b412 score: Include missing header files 2013-07-22 16:45:58 +02:00
Sebastian Huber
57c8805648 smptests: Be successful on one processor 2013-07-22 16:45:58 +02:00
Ralf Kirchner
2f589cccae bsp/gen83xx: Fix BSP options for MPC8348EAMDS 2013-07-18 10:19:38 +02:00
Sebastian Huber
e7ce41bb6d libcsupport: Do not use _ISR_Nest_level
The _Thread_Dispatch_is_enabled() is false if _ISR_Nest_level is not
equal to zero.
2013-07-18 09:58:58 +02:00
Sebastian Huber
401f1b9d56 rtems, posix: Use _Thread_Get_executing() 2013-07-18 09:58:58 +02:00
Sebastian Huber
95e09afa92 score: Avoid direct usage of _Thread_Executing
Pass the executing thread as a function parameter.  Obtain the executing
thread inside a thread dispatch critical section to avoid problems on
SMP.
2013-07-18 09:58:58 +02:00
Sebastian Huber
ac15b0716a score: Convert to inline function 2013-07-18 09:58:58 +02:00
Sebastian Huber
9728ef357f posix: Convert to inline function 2013-07-18 09:58:57 +02:00
Sebastian Huber
15462a6f1c rtems: Convert to inline functions 2013-07-18 09:58:57 +02:00
Sebastian Huber
20e239c2f0 score: Create mutex implementation header
Move implementation specific parts of coremutex.h and coremutex.inl into
new header file coremuteximpl.h.  The coremutex.h contains now only the
application visible API.
2013-07-18 09:58:57 +02:00
Sebastian Huber
f9d533a5f3 posix: Create mutex implementation header
Move implementation specific parts of mutex.h and mutex.inl into new
header file muteximpl.h.  The mutex.h contains now only the application
visible API.
2013-07-18 09:58:57 +02:00
Sebastian Huber
2bbea657ae rtems: Create semaphore implementation header
Move implementation specific parts of sem.h and sem.inl into new header
file semimpl.h.  The sem.h contains now only the application visible
API.
2013-07-18 09:58:56 +02:00
Sebastian Huber
0dd262d33d libtests/gxx01: Avoid random memory read/write 2013-07-18 09:58:56 +02:00
Sebastian Huber
cbfe05c95a score: Update due to API changes 2013-07-18 09:58:56 +02:00
Sebastian Huber
f7740e97a2 smp: Rename _CPU_Processor_event_receive()
Rename to _CPU_SMP_Processor_event_receive().
2013-07-17 13:09:50 +02:00
Sebastian Huber
07f6e4193e smp: Rename _CPU_Processor_event_broadcast()
Rename to _CPU_SMP_Processor_event_broadcast().
2013-07-17 13:09:50 +02:00
Sebastian Huber
ca63ae2ec0 smp: Add and use _CPU_SMP_Send_interrupt()
Delete bsp_smp_interrupt_cpu().
2013-07-17 13:09:50 +02:00
Sebastian Huber
39e51758c8 smp: Add and use _CPU_SMP_Get_current_processor()
Add and use _SMP_Get_current_processor() and
rtems_smp_get_current_processor().

Delete bsp_smp_interrupt_cpu().

Change type of current processor index from int to uint32_t to match
_SMP_Processor_count type.
2013-07-17 13:09:49 +02:00
Sebastian Huber
a7ce0cec5d smp: Delete RTEMS_BSP_SMP_CONTEXT_SWITCH_NECESSARY
The thread dispatch is a side-effect of interrupt processing, thus there
is no need to send an explicit message.
2013-07-17 13:09:49 +02:00
Sebastian Huber
9c9b62d8dd score: Changes due to Newlib __DYNAMIC_REENT__
Delete _Thread_libc_reent and add __getreent() instead according to
__DYNAMIC_REENT__ define.

For SMP configurations __DYNAMIC_REENT__ must be defined.

A Newlib including the following patch is required:

2013-07-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* libc/include/sys/config.h (__DYNAMIC_REENT__): Define for RTEMS.
2013-07-17 13:09:49 +02:00
Sebastian Huber
f74d9496ee score: Add _Thread_Get_executing() 2013-07-17 13:09:49 +02:00
Sebastian Huber
8b721d5e11 libcsupport: Use _reclaim_reent()
A Newlib including the following patch is required:

2013-04-25  Sebastian Huber <sebastian.huber@embedded-brains.de>

	* libc/stdio/local.h (_STDIO_CLOSE_PER_REENT_STD_STREAMS): New define.
	* libc/stdio/findfp.c (_STDIO_CLOSE_PER_REENT_STD_STREAMS): Use define.
2013-07-17 13:09:49 +02:00
WeiY
a04182c608 clean up old atomic related files 2013-07-17 13:07:34 +02:00
WeiY
2e7f579865 stdatomic.h support check when configure 2013-07-17 13:07:33 +02:00
WeiY
5186b55180 smpatomic test case update 2013-07-17 13:07:33 +02:00