summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi (follow)
Commit message (Collapse)AuthorAgeFilesLines
* posix: Change pthread_once to be SMP safe.Chris Johns2013-08-142-0/+9
| | | | | | | | | | 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.
* PR766: Delete __RTEMS_INSIDE__Sebastian Huber2013-08-081-3/+0
|
* posix: Create key implementation headerSebastian Huber2013-08-061-1/+1
| | | | | | 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.
* Unlimited objects support for POSIX keysZhongwei Yao2013-08-061-5/+29
| | | | | | | 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.
* smp: Generalize _Thread_Start_multitasking()Sebastian Huber2013-08-051-2/+4
| | | | | | | | | | 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().
* score: Delete SYSTEM_STATE_BEGIN_MULTITASKINGSebastian Huber2013-08-051-2/+0
| | | | | Nothing happened between the SYSTEM_STATE_BEGIN_MULTITASKING to SYSTEM_STATE_UP transition.
* score: Rename tod.h to todimpl.hSebastian Huber2013-08-011-1/+1
|
* smp: Provide cache optimized Per_CPU_ControlSebastian Huber2013-07-311-2/+1
| | | | Delete _Per_CPU_Information_p.
* score: Create object implementation headerSebastian Huber2013-07-266-5/+1
| | | | | | 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.
* Include missing <rtems/score/threaddispatch.h>Sebastian Huber2013-07-262-4/+3
|
* score: Create mpci implementation headerSebastian Huber2013-07-261-3/+0
| | | | | Move implementation specific parts of mpci.h into new header file mpciimpl.h. The mpci.h contains now only the application visible API.
* rtems: Create signal implementation headerSebastian Huber2013-07-261-1/+1
| | | | | | Move implementation specific parts of signal.h into new header file signalimpl.h. The signal.h contains now only the application visible API.
* score: Create thread implementation headerSebastian Huber2013-07-262-3/+2
| | | | | | | | 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.
* score: Create prioritybitmap implementation headerSebastian Huber2013-07-261-1/+1
| | | | | | | | 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.
* score: Create scheduler implementation headerSebastian Huber2013-07-261-1/+2
| | | | | | 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.
* score: Merge sysstate API into one fileSebastian Huber2013-07-241-1/+0
|
* rtems: Create tasks implementation headerSebastian Huber2013-07-231-1/+1
| | | | | | 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.
* rtems: Create region implementation headerSebastian Huber2013-07-231-1/+1
| | | | | | 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.
* rtems: Create part implementation headerSebastian Huber2013-07-231-1/+1
| | | | | | 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.
* rtems: Create timer implementation headerSebastian Huber2013-07-231-1/+1
| | | | | | 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.
* rtems: Create ratemon implementation headerSebastian Huber2013-07-231-1/+1
| | | | | | 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.
* rtems: Create dpmem implementation headerSebastian Huber2013-07-231-1/+1
| | | | | | 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.
* rtems: Create event implementation headerSebastian Huber2013-07-231-1/+1
| | | | | | 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.
* rtems: Create status implementation headerSebastian Huber2013-07-231-0/+1
| | | | | | 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.
* sapi: Create extension implementation headerSebastian Huber2013-07-2310-33/+36
| | | | | | 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.
* sapi: Merge rbtree API into one fileSebastian Huber2013-07-234-507/+469
|
* sapi: Merge timespec API into one fileSebastian Huber2013-07-234-305/+261
|
* sapi: Merge CBS API into one fileSebastian Huber2013-07-234-214/+182
|
* sapi: Merge chain implementation into one fileSebastian Huber2013-07-224-690/+643
|
* score: Create watchdog implementation headerSebastian Huber2013-07-221-1/+1
| | | | | | 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.
* score: Create chain implementation headerSebastian Huber2013-07-222-4/+1
| | | | | | 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.
* posix: Create spinlock implementation headerSebastian Huber2013-07-221-1/+1
| | | | | | 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.
* posix: Create timer implementation headerSebastian Huber2013-07-221-1/+1
| | | | | | 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.
* posix: Create rwlock implementation headerSebastian Huber2013-07-221-1/+1
| | | | | | 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.
* posix: Create pthread implementation headerSebastian Huber2013-07-221-1/+1
| | | | | | 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.
* posix: Create priority implementation headerSebastian Huber2013-07-221-1/+1
| | | | | | 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.
* posix: Create condition variable impl headerSebastian Huber2013-07-221-1/+1
| | | | | | 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.
* posix: Create barrier implementation headerSebastian Huber2013-07-221-1/+1
| | | | | | 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.
* rtems: Create barrier implementation headerSebastian Huber2013-07-221-1/+1
| | | | | | 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.
* posix: Create message queue implementation headerSebastian Huber2013-07-221-1/+1
| | | | | | 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.
* rtems: Create message queue implementation headerSebastian Huber2013-07-222-2/+1
| | | | | | 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.
* posix: Create semaphore implementation headerSebastian Huber2013-07-221-1/+1
| | | | | | 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.
* score: Error for non-preemptible tasks on SMPSebastian Huber2013-07-221-1/+5
| | | | | | | 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.
* sapi: Add rtems_configuration_is_smp_enabled()Sebastian Huber2013-07-222-0/+32
| | | | | | 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.
* posix: Create mutex implementation headerSebastian Huber2013-07-181-1/+1
| | | | | | 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.
* rtems: Create semaphore implementation headerSebastian Huber2013-07-182-2/+1
| | | | | | 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.
* score: Changes due to Newlib __DYNAMIC_REENT__Sebastian Huber2013-07-171-2/+14
| | | | | | | | | | | | | 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.
* scheduler: New simple SMP scheduler implementationSebastian Huber2013-06-141-1/+1
| | | | | | | | | | | | | | | | | The new Simple SMP Scheduler allocates a processor for the processor count highest priority ready threads. The thread priority and position in the ready chain are the only information to determine the scheduling decision. Threads with an allocated processor are in the scheduled chain. After initialization the scheduled chain has exactly processor count nodes. Each processor has exactly one allocated thread after initialization. All enqueue and extract operations may exchange threads with the scheduled chain. One thread will be added and another will be removed. The scheduled and ready chain is ordered according to the thread priority order. The chain insert operations are O(count of ready threads), thus this scheduler is unsuitable for most real-time applications. The thread preempt mode will be ignored.
* score: Add and use _Objects_Put()Sebastian Huber2013-06-071-1/+1
| | | | | | 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.
* score: Remove idle field of Per_CPU_ControlSebastian Huber2013-05-312-4/+3
| | | | | | 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().