summaryrefslogtreecommitdiffstats
path: root/cpukit/libcsupport/src/resource_snapshot.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Canonicalize config.h includeSebastian Huber2020-04-161-2/+2
| | | | | | | | Use the following variant which was already used by most source files: #ifdef HAVE_CONFIG_H #include "config.h" #endif
* posix: Provide threads by defaultSebastian Huber2018-10-291-26/+4
| | | | Update #2514.
* posix: Implement self-contained POSIX mutexSebastian Huber2017-10-051-1/+0
| | | | | | | | POSIX mutexes are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3112.
* posix: Implement self-contained POSIX condvarSebastian Huber2017-10-051-2/+0
| | | | | | | | POSIX condition variables are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3113.
* posix: Implement self-contained POSIX rwlocksSebastian Huber2017-10-051-2/+0
| | | | | | | | POSIX rwlocks are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3115.
* posix: Implement self-contained POSIX barriersSebastian Huber2017-10-051-1/+0
| | | | | | | | POSIX barriers are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3114.
* libio: Use FIFO for iop free listSebastian Huber2017-09-151-1/+1
| | | | Update #3136.
* posix: Add self-contained pthread spinlockSebastian Huber2016-11-231-2/+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.
* Size optimization for resource snapshotsSebastian Huber2016-11-041-23/+37
| | | | Do not reference the objects information directly.
* posix: Simplify message queuesSebastian Huber2016-05-021-1/+0
| | | | | | | | | | | | 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.
* score: Simplify _Objects_Get_next()Sebastian Huber2016-04-211-3/+1
| | | | Remove unused location parameter.
* posix: Use per-thread lookup tree for POSIX KeysSebastian Huber2016-03-181-17/+10
| | | | | | Yields higher performance on SMP systems. Close #2625.
* rbheap: Drop direction from _RBTree_Iterate()Sebastian Huber2015-08-311-3/+0
|
* score: Introduce Thread_queue_HeadsSebastian Huber2015-07-231-2/+2
| | | | | | | | | | | | | Move the storage for the thread queue heads to the threads. Each thread provides a set of thread queue heads allocated from a dedicated memory pool. In case a thread blocks on a queue, then it lends its heads to the queue. In case the thread unblocks, then it takes a free set of threads from the queue. Since a thread can block on at most one queue this works. This mechanism is used in FreeBSD. The motivation for this change is to reduce the memory demands of the synchronization objects. On a 32-bit uni-processor configuration the Thread_queue_Control size is now 8 bytes, compared to 64 bytes in RTEMS 4.10 (other changes reduced the size as well).
* Add POSIX key value pairs to resource snapshotSebastian Huber2014-12-121-11/+43
|
* score: Return heap stats via _Heap_Get_informationSebastian Huber2014-11-281-7/+8
| | | | Print out heap statistics via the MALLOC and WKSPACE shell commands.
* score: PR2152: Use allocator mutex for objectsSebastian Huber2014-03-311-17/+7
| | | | | Use allocator mutex for objects allocate/free. This prevents that the thread dispatch latency depends on the workspace/heap fragmentation.
* score: Thread life cycle re-implementationSebastian Huber2014-03-311-1/+4
| | | | | | | | | | | | | | | | | | | The thread deletion is now supported on SMP. This change fixes the following PRs: PR1814: SMP race condition between stack free and dispatch PR2035: psxcancel reveals NULL pointer access in _Thread_queue_Extract() The POSIX cleanup handler are now called in the right context (should be called in the context of the terminating thread). http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_09.html Add a user extension the reflects a thread termination event. This is used to reclaim the Newlib reentrancy structure (may use file operations), the POSIX cleanup handlers and the POSIX key destructors.
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-211-1/+1
|
* 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.
* rtems: Create tasks implementation headerSebastian Huber2013-07-231-0/+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-0/+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-0/+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-0/+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-0/+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-0/+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.
* sapi: Create extension implementation headerSebastian Huber2013-07-231-0/+2
| | | | | | 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.
* 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 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-0/+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-221-0/+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.
* 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-181-0/+2
| | | | | | 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: _Heap_Protection_free_all_delayed_blocks()Sebastian Huber2013-06-211-0/+14
| | | | | Add and use _Heap_Protection_free_all_delayed_blocks() to prevent test suite failures if RTEMS_DEBUG is defined.
* libcsupport: Add rtems_resource_snapshot_take()Sebastian Huber2012-12-211-0/+127
Add rtems_resource_rtems_api, rtems_resource_posix_api, rtems_resource_snapshot, rtems_resource_snapshot_equal(), and rtems_resource_snapshot_check().