Commit Graph
203 Commits
Author SHA1 Message Date
Sebastian Huber 4ea97d2449 score/rbtree: Remove "unprotected" from API 2013-11-21 12:58:46 +01:00
Sebastian Huber 1215fd4d94 sapi: SMP support for chains
Add ISR lock to chain control for proper SMP protection.  Replace
rtems_chain_extract() with rtems_chain_explicit_extract() and
rtems_chain_insert() with rtems_chain_explicit_insert() on SMP
configurations.  Use rtems_chain_explicit_extract() and
rtems_chain_explicit_insert() to provide SMP support.
2013-08-30 11:16:28 +02:00
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 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 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
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 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 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 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 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 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 2d2352bab9 score: Add and use _Objects_Put()
Add and use _Objects_Put_without_thread_dispatch().  These two functions
pair with the _Objects_Get() function.  This helps to introduce object
specific SMP locks to avoid lock contention.
2013-06-07 17:06:43 +02:00
Sebastian Huber e3be691598 score: Remove idle field of Per_CPU_Control
This field is unused except for special case simulator clock drivers.
In these places use an alternative.  Add and use
_Thread_Set_global_exit_status() and _Thread_Get_global_exit_status().
2013-05-31 15:20:31 +02:00
Sebastian Huber e071c18322 smp: Move secondary CPU initialization request
Do not assume that the scheduler selects the main processor for the
initialization thread.
2013-05-29 11:06:08 +02:00
Sebastian Huber baf8f4dabc smp: Simplify main CPU initialization
Call _SMP_Handler_initialize() later and move bsp_smp_initialize() into
_SMP_Handler_initialize().  Change bsp_smp_initialize() prototype to
match integer types of calling context.
2013-05-29 11:06:07 +02:00
Sebastian Huber 6c2eedc7dd smp: Add maximum_processors field to config
Delete rtems_configuration_get_smp_maximum_processors().  Delete
rtems_configuration_smp_maximum_processors variable.  Add
maximum_processors field to rtems_configuration_table if RTEMS_SMP is
defined.  Add rtems_configuration_get_maximum_processors().
2013-05-16 11:44:12 +02:00
Sebastian Huber 10e348ab7d sapi: Fix warnings 2013-04-23 09:59:57 +02:00
Andreas Heinig 5f745464fc Fixed 2 compiler warnings 2013-03-19 15:13:54 +01:00
Sebastian Huber f2f39b62a2 sapi: Add rtems_fatal_source_description() 2013-01-07 16:08:19 +01:00
Christopher Kerl 4c98a3ea29 sapi misc: Clean up Doxygen GCI task #1
http://www.google-melange.com/gci/task/view/google/gci2012/8011204
2012-12-07 09:49:54 -05:00
Sebastian Huber 48bff53b3d score: rtems_initialize_start_multitasking()
Do not return from rtems_initialize_start_multitasking() and call
rtems_fatal() instead with a fatal source of RTEMS_FATAL_SOURCE_EXIT and
a fatal code with the exit status.

Remove all bsp_cleanup() functions.  The boot_card() is now a no return
function.
2012-12-07 09:38:41 +01:00
Sebastian Huber 3be0c9afa3 score: Add and use <rtems/score/userextimpl.h>
This file contains the parts of <rtems/score/userext.h> that are only
necessary for the RTEMS implementation.
2012-11-22 16:35:07 +01:00