summaryrefslogtreecommitdiff
path: root/cpukit/libcsupport/src/resource_snapshot.c (follow)
AgeCommit message (Collapse)Author
2020-04-16Canonicalize config.h includeSebastian Huber
Use the following variant which was already used by most source files: #ifdef HAVE_CONFIG_H #include "config.h" #endif
2018-10-29posix: Provide threads by defaultSebastian Huber
Update #2514.
2017-10-05posix: Implement self-contained POSIX mutexSebastian Huber
POSIX mutexes are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3112.
2017-10-05posix: Implement self-contained POSIX condvarSebastian Huber
POSIX condition variables are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3113.
2017-10-05posix: Implement self-contained POSIX rwlocksSebastian Huber
POSIX rwlocks are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3115.
2017-10-05posix: Implement self-contained POSIX barriersSebastian Huber
POSIX barriers are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3114.
2017-09-15libio: Use FIFO for iop free listSebastian Huber
Update #3136.
2016-11-23posix: Add self-contained pthread spinlockSebastian Huber
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-04Size optimization for resource snapshotsSebastian Huber
Do not reference the objects information directly.
2016-05-02posix: Simplify message queuesSebastian Huber
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: Simplify _Objects_Get_next()Sebastian Huber
Remove unused location parameter.
2016-03-18posix: Use per-thread lookup tree for POSIX KeysSebastian Huber
Yields higher performance on SMP systems. Close #2625.
2015-08-31rbheap: Drop direction from _RBTree_Iterate()Sebastian Huber
2015-07-23score: Introduce Thread_queue_HeadsSebastian Huber
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).
2014-12-12Add POSIX key value pairs to resource snapshotSebastian Huber
2014-11-28score: Return heap stats via _Heap_Get_informationSebastian Huber
Print out heap statistics via the MALLOC and WKSPACE shell commands.
2014-03-31score: PR2152: Use allocator mutex for objectsSebastian Huber
Use allocator mutex for objects allocate/free. This prevents that the thread dispatch latency depends on the workspace/heap fragmentation.
2014-03-31score: Thread life cycle re-implementationSebastian Huber
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.
2014-03-21Change all references of rtems.com to rtems.org.Chris Johns
2013-08-06posix: Create key implementation headerSebastian Huber
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-07-23rtems: Create tasks implementation headerSebastian Huber
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-23rtems: Create region implementation headerSebastian Huber
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-23rtems: Create part implementation headerSebastian Huber
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-23rtems: Create timer implementation headerSebastian Huber
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-23rtems: Create ratemon implementation headerSebastian Huber
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-23rtems: Create dpmem implementation headerSebastian Huber
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-23sapi: Create extension implementation headerSebastian Huber
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-22posix: Create spinlock implementation headerSebastian Huber
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-22posix: Create timer implementation headerSebastian Huber
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-22posix: Create rwlock implementation headerSebastian Huber
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-22posix: Create pthread implementation headerSebastian Huber
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-22posix: Create condition variable impl headerSebastian Huber
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-22posix: Create barrier implementation headerSebastian Huber
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-22rtems: Create barrier implementation headerSebastian Huber
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-22posix: Create message queue implementation headerSebastian Huber
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-22rtems: Create message queue implementation headerSebastian Huber
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-22posix: Create semaphore implementation headerSebastian Huber
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-18posix: Create mutex implementation headerSebastian Huber
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-18rtems: Create semaphore implementation headerSebastian Huber
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-06-21score: _Heap_Protection_free_all_delayed_blocks()Sebastian Huber
Add and use _Heap_Protection_free_all_delayed_blocks() to prevent test suite failures if RTEMS_DEBUG is defined.
2012-12-21libcsupport: Add rtems_resource_snapshot_take()Sebastian Huber
Add rtems_resource_rtems_api, rtems_resource_posix_api, rtems_resource_snapshot, rtems_resource_snapshot_equal(), and rtems_resource_snapshot_check().