Commit Graph

514 Commits

Author SHA1 Message Date
Chris Johns
6e4c01e3a2 posix: Update to the pthread_once changes.
Implement the reeview changes.
Add a POSIX Fatal error domain.
Fix confdefs.h to correctly handle the internal POSIX mutexes.
2013-08-23 14:56:36 +10:00
Sebastian Huber
99b35052ae smp: Add Deterministic Priority SMP Scheduler 2013-08-20 10:17:35 +02:00
Sebastian Huber
9d83f58ab8 smp: Replace Scheduler_simple_smp_Control
Replace Scheduler_simple_smp_Control with Scheduler_SMP_Control.  Rename
_Scheduler_simple_smp_Instance() to _Scheduler_SMP_Instance().
2013-08-20 10:14:04 +02:00
Sebastian Huber
c1a356e9f8 score: _Priority_bit_map_Handler_initialization()
Delete _Priority_bit_map_Handler_initialization() and rely on BSS
initialization.  Move definition of _Priority_Major_bit_map and
_Priority_Bit_map to separate file.  Move definition of __log2table also
to this file.
2013-08-20 10:14:03 +02:00
Chris Johns
03acc5915e posix: Change pthread_once to be SMP safe.
Change pthread_once from using disabled pre-emption to using a
pthread mutex making it SMP safe. GCC using a posix threading
model uses pthread_once.

The pthread mutex requires at least 1 mutex is configured so
confdefs.h has been updated to account for the internal
mutex.
2013-08-14 10:21:41 +10:00
Sebastian Huber
6b4e448ebe PR766: Delete __RTEMS_INSIDE__ 2013-08-08 14:11:22 +02:00
Sebastian Huber
2ad250e92d posix: Create key implementation header
Move implementation specific parts of key.h and key.inl into new header
file keyimpl.h.  The key.h contains now only the application visible
API.
2013-08-06 15:47:57 +02:00
Zhongwei Yao
b5c906429f Unlimited objects support for POSIX keys
This patch enables unlimited model in POSIX key manger and have a decent
runtime on POSIX key searching, adding and deleting operations.  Memory
overhead is lower than current implementation when the size of key and key
value becomes big.
2013-08-06 14:11:38 +02:00
Sebastian Huber
b4b309c559 smp: Generalize _Thread_Start_multitasking()
Add context parameter to _Thread_Start_multitasking() and use this
function in rtems_smp_secondary_cpu_initialize().  This avoids
duplication of code.

Fix missing floating point context initialization in
rtems_smp_secondary_cpu_initialize().  Now performed via
_Thread_Start_multitasking().
2013-08-05 13:45:36 +02:00
Sebastian Huber
2bca05f7d7 score: Delete SYSTEM_STATE_BEGIN_MULTITASKING
Nothing happened between the SYSTEM_STATE_BEGIN_MULTITASKING to
SYSTEM_STATE_UP transition.
2013-08-05 13:45:36 +02:00
Sebastian Huber
f031df0e63 score: Rename tod.h to todimpl.h 2013-08-01 16:45:45 +02:00
Sebastian Huber
c236082873 smp: Provide cache optimized Per_CPU_Control
Delete _Per_CPU_Information_p.
2013-07-31 15:09:04 +02:00
Sebastian Huber
a2e3f33f39 score: Create object implementation header
Move implementation specific parts of object.h and object.inl into new
header file objectimpl.h.  The object.h contains now only the
application visible API.
2013-07-26 11:55:47 +02:00
Sebastian Huber
0c3edbf0cf Include missing <rtems/score/threaddispatch.h> 2013-07-26 11:55:47 +02:00
Sebastian Huber
7f04cb18ff score: Create mpci implementation header
Move implementation specific parts of mpci.h into new header file
mpciimpl.h.  The mpci.h contains now only the application visible API.
2013-07-26 11:55:46 +02:00
Sebastian Huber
6cec745f6c rtems: Create signal implementation header
Move implementation specific parts of signal.h into new header file
signalimpl.h.  The signal.h contains now only the application visible
API.
2013-07-26 11:55:46 +02:00
Sebastian Huber
5618c37a7a score: Create thread implementation header
Move implementation specific parts of thread.h and thread.inl into new
header file threadimpl.h.  The thread.h contains now only the
application visible API.

Remove superfluous header file includes from various files.
2013-07-26 11:55:44 +02:00
Sebastian Huber
f0bfd7d81d score: Create prioritybitmap implementation header
Move implementation specific parts of prioritybitmap.h and
prioritybitmap.inl into new header file prioritybitmapimpl.h.  The
prioritybitmap.h contains now only the application visible API.

Move content of bitfield.h into prioritybitmapimpl.h.
2013-07-26 11:55:44 +02:00
Sebastian Huber
c6e21ee18f score: Create scheduler implementation header
Move implementation specific parts of scheduler.h and scheduler.inl into
new header file schedulerimpl.h.  The scheduler.h contains now only the
application visible API.
2013-07-26 11:55:44 +02:00
Sebastian Huber
39046f766f score: Merge sysstate API into one file 2013-07-24 11:11:21 +02:00
Sebastian Huber
c40482815e rtems: Create tasks implementation header
Move implementation specific parts of tasks.h and tasks.inl into new
header file tasksimpl.h.  The tasks.h contains now only the application
visible API.
2013-07-23 15:12:55 +02:00
Sebastian Huber
f6c7c57d86 rtems: Create region implementation header
Move implementation specific parts of region.h and region.inl into new
header file regionimpl.h.  The region.h contains now only the
application visible API.
2013-07-23 15:12:55 +02:00
Sebastian Huber
8695cae269 rtems: Create part implementation header
Move implementation specific parts of part.h and part.inl into new
header file partimpl.h.  The part.h contains now only the application
visible API.
2013-07-23 15:12:55 +02:00
Sebastian Huber
e90b1dfdda rtems: Create timer implementation header
Move implementation specific parts of timer.h and timer.inl into new
header file timerimpl.h.  The timer.h contains now only the application
visible API.
2013-07-23 15:12:54 +02:00
Sebastian Huber
ecdcf01add rtems: Create ratemon implementation header
Move implementation specific parts of ratemon.h and ratemon.inl into
new header file ratemonimpl.h.  The ratemon.h contains now only the
application visible API.
2013-07-23 15:12:54 +02:00
Sebastian Huber
562815cf0b rtems: Create dpmem implementation header
Move implementation specific parts of dpmem.h and dpmem.inl into new
header file dpmemimpl.h.  The dpmem.h contains now only the application
visible API.
2013-07-23 15:12:54 +02:00
Sebastian Huber
e151eb1a36 rtems: Create event implementation header
Move implementation specific parts of event.h, event.inl, eventset.h and
eventset.inl into new header file eventimpl.h.  The event.h contains now
only the application visible API.
2013-07-23 15:12:53 +02:00
Sebastian Huber
faa2f8c4e9 rtems: Create status implementation header
Move implementation specific parts of status.h and status.inl into new
header file statusimpl.h.  The status.h contains now only the
application visible API.
2013-07-23 15:12:52 +02:00
Sebastian Huber
ac252bdce0 sapi: Create extension implementation header
Move implementation specific parts of extension.h and extension.inl into
new header file extensionimpl.h.  The extension.h contains now only the
application visible API.
2013-07-23 15:12:51 +02:00
Sebastian Huber
2445bda1db sapi: Merge rbtree API into one file 2013-07-23 15:12:51 +02:00
Sebastian Huber
98c7eacaaa sapi: Merge timespec API into one file 2013-07-23 15:12:51 +02:00
Sebastian Huber
b5ffa5e136 sapi: Merge CBS API into one file 2013-07-23 15:12:51 +02:00
Sebastian Huber
b1564cc164 sapi: Merge chain implementation into one file 2013-07-22 16:57:27 +02:00
Sebastian Huber
4b48ece07d score: Create watchdog implementation header
Move implementation specific parts of watchdog.h and watchdog.inl into
new header file watchdogimpl.h.  The watchdog.h contains now only the
application visible API.
2013-07-22 16:57:25 +02:00
Sebastian Huber
6e93dc4a95 score: Create chain implementation header
Move implementation specific parts of chain.h and chain.inl into new
header file chainimpl.h.  The chain.h contains now only the application
visible API.
2013-07-22 16:57:25 +02:00
Sebastian Huber
eb448eece9 posix: Create spinlock implementation header
Move implementation specific parts of spinlock.h and spinlock.inl into
new header file spinlockimpl.h.  The spinlock.h contains now only the
application visible API.
2013-07-22 16:57:24 +02:00
Sebastian Huber
f17c779828 posix: Create timer implementation header
Move implementation specific parts of timer.h and timer.inl into new
header file timerimpl.h.  The timer.h contains now only the application
visible API.
2013-07-22 16:57:24 +02:00
Sebastian Huber
0e8656b49e posix: Create rwlock implementation header
Move implementation specific parts of rwlock.h and rwlock.inl into new
header file rwlockimpl.h.  The rwlock.h contains now only the
application visible API.
2013-07-22 16:57:23 +02:00
Sebastian Huber
0c5317d16c posix: Create pthread implementation header
Move implementation specific parts of pthread.h and pthread.inl into new
header file pthreadimpl.h.  The pthread.h contains now only the
application visible API.
2013-07-22 16:57:23 +02:00
Sebastian Huber
97552c98b6 posix: Create priority implementation header
Move implementation specific parts of priority.h and priority.inl into
new header file priorityimpl.h.  Remove priority.h since there is no
application visible API.
2013-07-22 16:57:23 +02:00
Sebastian Huber
35210b128c posix: Create condition variable impl header
Move implementation specific parts of cond.h and cond.inl into new
header file condimpl.h.  The cond.h contains now only the application
visible API.
2013-07-22 16:57:22 +02:00
Sebastian Huber
6b4a3770cd posix: Create barrier implementation header
Move implementation specific parts of barrier.h and barrier.inl into new
header file barrierimpl.h.  The barrier.h contains now only the
application visible API.
2013-07-22 16:57:21 +02:00
Sebastian Huber
0b32bb8042 rtems: Create barrier implementation header
Move implementation specific parts of barrier.h and barrier.inl into new
header file barrierimpl.h.  The barrier.h contains now only the
application visible API.
2013-07-22 16:57:21 +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
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
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
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