summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-01-13posix: shared memory supportGedare Bloom1-0/+39
Add POSIX shared memory manager (Shm). Includes a hook-based approach for the backing memory storage that defaults to the Workspace, and a test is provided using the heap. A test is also provided for the basic use of mmap'ing a shared memory object. This test currently fails at the mmap stage due to no support for mmap.
2017-01-13score: Add _Thread_Set_name()Sebastian Huber1-0/+18
Add configuration option CONFIGURE_MAXIMUM_THREAD_NAME_SIZE. Update #2858.
2016-12-21Clarify simple timecounter documentationSebastian Huber1-13/+21
2016-12-12Add INTERNAL_ERROR_LIBIO_STDERR_FD_OPEN_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12Add INTERNAL_ERROR_LIBIO_STDOUT_FD_OPEN_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12Add INTERNAL_ERROR_LIBIO_SEM_CREATE_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12INTERNAL_ERROR_LIBIO_USER_ENV_KEY_CREATE_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12Add INTERNAL_ERROR_POSIX_INIT_THREAD_CREATE_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12Add INTERNAL_ERROR_RTEMS_INIT_TASK_CREATE_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-09score: Remove fatal is internal indicatorSebastian Huber6-46/+14
The fatal is internal indicator is redundant since the fatal source and error code uniquely identify a fatal error. Keep the fatal user extension is internal parameter for backward compatibility and set it to false always. Update #2825.
2016-12-06score: Simplify linker set APISebastian Huber1-8/+3
Resurrect RTEMS_LINKER_SET_BEGIN() and RTEMS_LINKER_SET_END(). Add new macros RTEMS_LINKER_SET_ITEM_COUNT(), RTEMS_LINKER_SET_IS_EMPTY(), and RTEMS_LINKER_SET_FOREACH(). Remove confusing RTEMS_LINKER_SET_ASSIGN_BEGIN() and RTEMS_LINKER_SET_ASSIGN_END(). Fix RTEMS_LINKER_SET_SIZE() to return the size in characters as specified by the documentation. Update #2408. Update #2790.
2016-11-23score: Uncomment unused internal error codesSebastian Huber1-3/+3
Update #2825.
2016-11-23posix: Add self-contained pthread spinlockSebastian Huber1-28/+0
Turn pthread_spinlock_t into a self-contained object. On uni-processor configurations, interrupts are disabled in the lock/trylock operations and the previous interrupt status is restored in the corresponding unlock operations. On SMP configurations, a ticket lock is a acquired and released in addition. The self-contained pthread_spinlock_t object is defined by Newlib in <sys/_pthreadtypes.h>. typedef struct { struct _Ticket_lock_Control _lock; __uint32_t _interrupt_state; } pthread_spinlock_t; This implementation is simple and efficient. However, this test case of the Linux Test Project would fail due to call of printf() and sleep() during spin lock ownership: https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/1-2.c There is only limited support for profiling on SMP configurations. Delete CORE spinlock implementation. Update #2674.
2016-11-23score: Add thread queue enqueue calloutSebastian Huber1-1/+1
Replace the expected thread dispatch disable level with a thread queue enqueue callout. This enables the use of _Thread_Dispatch_direct() in the thread queue enqueue procedure. This avoids impossible exection paths, e.g. Per_CPU_Control::dispatch_necessary is always true.
2016-11-23score: Robust thread dispatchSebastian Huber1-1/+2
On SMP configurations, it is a fatal error to call blocking operating system with interrupts disabled, since this prevents delivery of inter-processor interrupts. This could lead to executing threads which are not allowed to execute resulting in undefined behaviour. The ARM Cortex-M port has a similar problem, since the interrupt state is not a part of the thread context. Update #2811.
2016-11-18score: Add and use _Thread_Dispatch_direct()Sebastian Huber1-1/+2
This function is useful for operations which synchronously block, e.g. self restart, self deletion, yield, sleep. It helps to detect if these operations are called in the wrong context. Since the thread dispatch necessary indicator is not used, this is more robust in some SMP situations. Update #2751.
2016-11-09score: Rename _Scheduler_AssignmentsSebastian Huber1-3/+3
Rename _Scheduler_Assignments into _Scheduler_Initial_assignments to make it clear that they may not reflect the run-time scheduler assignment. Update #2797.
2016-11-02score: First part of new MrsP implementationSebastian Huber1-1/+2
Update #2556.
2016-10-12score: More robust linker setsSebastian Huber1-2/+5
Update #2408. Update #2790.
2016-09-21score: Add scheduler node table for each threadSebastian Huber1-29/+35
Update #2556.
2016-09-06score: Add missing const qualifiersSebastian Huber1-4/+4
2016-08-08score: Add debug support to red-black treesSebastian Huber1-0/+1
This helps to detect double insert and extract errors.
2016-07-27score: Add deadlock detectionSebastian Huber1-2/+3
The mutex objects use the owner field of the thread queues for the mutex owner. Use this and add a deadlock detection to _Thread_queue_Enqueue_critical() for thread queues with an owner. Update #2412. Update #2556. Close #2765.
2016-07-22score: Add debug support to chainsSebastian Huber3-0/+17
This helps to detect * double insert, append, prepend errors, and * get from empty chain errors.
2016-06-22score: Move _RBTree_Find()Sebastian Huber4-21/+119
The _RBTree_Find() is no longer used in the score. Move it to sapi and make it rtems_rbtree_find(). Move corresponding types and support functions to sapi.
2016-06-22score: Move _RBTree_Insert()Sebastian Huber3-11/+79
The _RBTree_Insert() is no longer used in the score. Move it to sapi and make it rtems_rbtree_insert().
2016-06-09confdefs.h: Do not hide network file systemsSebastian Huber1-34/+30
Do not hide network file systems if RTEMS_NETWORKING is not defined, since they may be provided by the LibBSD.
2016-05-30score: _CORE_mutex_Check_dispatch_for_seize()Sebastian Huber1-1/+1
Move the safety check performed by _CORE_mutex_Check_dispatch_for_seize() out of the performance critical path and generalize it. Blocking on a thread queue with an unexpected thread dispatch disabled level is illegal in all system states. Add the expected thread dispatch disable level (which may be 1 or 2 depending on the operation) to Thread_queue_Context and use it in _Thread_queue_Enqueue_critical().
2016-05-25confdefs.h: Fix heap alloc size estimateSebastian Huber1-4/+8
Account for the heap minimum block size.
2016-05-25cpukit, testsuite: Add rtems_printf and rtems_printer support.Chris Johns2-74/+53
This change adds rtems_printf and related functions and wraps the RTEMS print plugin support into a user API. All references to the plugin are removed and replaced with the rtems_printer interface. Printk and related functions are made to return a valid number of characters formatted and output. The function attribute to check printf functions has been added to rtems_printf and printk. No changes to remove warrnings are part of this patch set. The testsuite has been moved over to the rtems_printer. The testsuite has a mix of rtems_printer access and direct print control via the tmacros.h header file. The support for begink/endk has been removed as it served no purpose and only confused the code base. The testsuite has not been refactored to use rtems_printf. This is future work.
2016-05-20score: Add per scheduler instance maximum prioritySebastian Huber2-13/+18
The priority values are only valid within a scheduler instance. Thus, the maximum priority value must be defined per scheduler instance. The first scheduler instance defines PRIORITY_MAXIMUM. This implies that RTEMS_MAXIMUM_PRIORITY and POSIX_SCHEDULER_MAXIMUM_PRIORITY are only valid for threads of the first scheduler instance. Further API/implementation changes are necessary to fix this. Update #2556.
2016-05-04score: Make _Objects_Information_table constSebastian Huber1-1/+2
The _Objects_Information_table is statically initialized. So, we can make it read-only.
2016-05-04rtems: Remove task variablesSebastian Huber1-48/+1
Update #2494. Update #2555.
2016-05-04confdefs.h: Fix message queue size estimateSebastian Huber1-1/+2
Account for maximum message size alignment. Simplify _CORE_message_queue_Initialize().
2016-05-04confdefs.h: Fix named object size estimateSebastian Huber1-2/+3
Account for the terminating null character. Use _POSIX_PATH_MAX instead of NAME_MAX according to _POSIX_Semaphore_Manager_initialization() and _POSIX_Message_queue_Manager_initialization().
2016-05-02score: Add dummy Strong APA schedulerSebastian Huber2-0/+49
Start with a copy of the Priority SMP scheduler implementation. Update #2510.
2016-05-02posix: Simplify message queuesSebastian Huber1-37/+2
The mq_open() function returns a descriptor to a POSIX message queue object identified by a name. This is similar to sem_open(). In contrast to the POSIX semaphore the POSIX message queues use a separate object for the descriptor. This extra object is superfluous, since the object identifier can be used directly for this purpose, just like for the semaphores. Update #2702. Update #2555.
2016-04-21score: Optimize _Objects_Get_no_protection()Sebastian Huber1-1/+1
Make the id the first parameter since usual callers get the object identifier as the first parameter themself.
2016-04-21score: Simplify _Objects_Initialize_information()Sebastian Huber1-5/+1
Remove unused supports_global parameter. Convert _Objects_Initialize_information() to a macro to avoid use of RTEMS_MULTIPROCESSING define for each caller.
2016-04-18sapi: Avoid Giant lock for extensionsSebastian Huber2-25/+15
Extension create and delete is protected by the object allocator lock. Update #2555.
2016-04-06score: Delete _Chain_Append()Sebastian Huber2-14/+0
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Get()Sebastian Huber2-13/+0
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Extract()Sebastian Huber2-11/+2
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Insert()Sebastian Huber2-10/+4
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Get_with_empty_check()Sebastian Huber2-14/+0
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Prepend_with_empty_check()Sebastian Huber2-12/+2
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Append_with_empty_check()Sebastian Huber2-12/+2
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Prepend()Sebastian Huber3-29/+22
This function is not used in the score. Update #2555.
2016-04-06score: Use red-black tree for active global objectsSebastian Huber1-9/+0
Use a red-black tree to lookup active global objects by identifier or name. Update #2555.
2016-03-29score: Fix MPCI workspace size estimateSebastian Huber1-0/+9
Account for the global objects table.