summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi/include/confdefs.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Use linker set for POSIX User Threads initSebastian Huber2016-02-031-4/+5
| | | | Update #2408.
* Use linker set for Classic User Tasks initSebastian Huber2016-02-031-4/+5
| | | | Update #2408.
* Use linker set for libio initializationSebastian Huber2016-02-031-14/+0
| | | | Update #2408.
* Use atexit() handler to close std file descriptorsSebastian Huber2016-02-031-7/+0
|
* Use linker set for root file system initializationSebastian Huber2016-02-031-5/+6
| | | | Update #2408.
* Optional Initial Extensions initializationSebastian Huber2016-02-031-0/+8
| | | | Update #2408.
* api: Remove deprecated NotepadsAun-Ali Zaidi2015-12-241-22/+0
| | | | | | | | | | | | | | | | | | | | | | | Notepads where a feature of RTEMS' tasks that simply functioned in the same way as POSIX keys or threaded local storage (TLS). They were introduced well before per task variables, which are also deprecated, and were barely used in favor of their POSIX alternatives. In addition to their scarce usage, Notepads took up unnecessary memory. For each task: - 16 32-bit integers were allocated. - A total of 64 bytes per task per thread. This is especially critical in low memory and safety-critical applications. They are also defined as uint32_t, and therefore are not guaranteed to hold a pointer. Lastly, they are not portable solutions for SMP and uniprocessor systems, like POSIX keys and TLS. updates #2493.
* Require __getreent()Sebastian Huber2015-11-251-1/+1
| | | | | This function is used by Newlib since 2013-07-09 (Git commit 9b51cd8c6b9cdd067d9648a7ab952884019c56a5).
* CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK was undocumented and not error checkedJoel Sherrill2015-10-271-0/+14
| | | | closes #2431.
* basdefs.h: Add and use RTEMS_DEPRECATEDSebastian Huber2015-10-261-1/+1
|
* score: Implement SMP-specific priority queueSebastian Huber2015-09-041-3/+4
|
* score: Introduce Thread_queue_HeadsSebastian Huber2015-07-231-0/+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).
* score: Simplify <rtems/system.h>Sebastian Huber2015-06-261-0/+1
| | | | | Drop the <rtems/score/percpu.h> include since this file exposes a lot of implementation details.
* sapi: Fix workspace size estimateSebastian Huber2015-05-271-2/+1
| | | | | Reserve a full minimum block to account for the heap protection enabled via RTEMS_DEBUG.
* sapi: Fix workspace size estimateSebastian Huber2015-05-271-4/+15
|
* sapi: Simplify confdefs.hSebastian Huber2015-05-271-1/+0
| | | | | The _Configure_From_workspace() already takes care that zero size allocations contribute nothing to the workspace size estimate.
* DRVMGR: added driver manager to cpukit/libdrvmgrDaniel Hellstrom2015-04-171-1/+10
|
* LIBPCI: added PCI layer to cpukit/libpciDaniel Hellstrom2015-04-171-0/+46
|
* confdefs.h: Improve the DoxygenJoel Sherrill2015-03-111-121/+780
|
* cpukit: deprecate task variables. closes #2293.Gedare Bloom2015-03-101-0/+3
|
* cpukit: deprecate notepadsGedare Bloom2015-03-101-3/+7
| | | | | | | | | | | | | | | Deprecate Classic API Notepads. Mark task_set/get_note() with the deprecated attribute, and also mark the notepads field. Replace disable with enable option for notepads in confdefs.h, and make notepads disabled by default. The previous option CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS is now unused and will emit a compile-time warning. A new option CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS is available to turn on notepads, but it also will emit a compile-time warning to indicate that notepads are deprecated. Closes #2265
* IMFS: Add CONFIGURE_IMFS_DISABLE_READDIRSebastian Huber2015-02-141-1/+5
|
* IMFS: Rename CONFIGURE_IMFS_DISABLE_FCHMODSebastian Huber2015-02-131-2/+2
| | | | Rename CONFIGURE_IMFS_DISABLE_FCHMOD to CONFIGURE_IMFS_DISABLE_CHMOD.
* IMFS: Add CONFIGURE_IMFS_DISABLE_MKNOD_FILESebastian Huber2015-02-131-1/+5
|
* IMFS: CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEMSebastian Huber2015-02-131-0/+11
| | | | Resurrect CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM.
* IMFS: Add fine grained configurationSebastian Huber2015-02-121-67/+117
| | | | | | | | | | | | | | | | | | Remove miniIMFS. Statically initialize the root IMFS. Add configuration options to disable individual features of the root IMFS, e.g. o CONFIGURE_IMFS_DISABLE_CHOWN, o CONFIGURE_IMFS_DISABLE_FCHMOD, o CONFIGURE_IMFS_DISABLE_LINK, o CONFIGURE_IMFS_DISABLE_MKNOD, o CONFIGURE_IMFS_DISABLE_MOUNT, o CONFIGURE_IMFS_DISABLE_READLINK, o CONFIGURE_IMFS_DISABLE_RENAME, o CONFIGURE_IMFS_DISABLE_RMNOD, o CONFIGURE_IMFS_DISABLE_SYMLINK, o CONFIGURE_IMFS_DISABLE_UNMOUNT, and o CONFIGURE_IMFS_DISABLE_UTIME.
* Filesystem: Simplify FIFO and pipe configurationSebastian Huber2015-02-091-30/+23
|
* Filesystem: Statically initialize rtems_libio_iopsSebastian Huber2015-02-041-2/+4
|
* Filesystem: Make rtems_libio_number_iops constSebastian Huber2015-02-041-1/+1
|
* confdefs.h: Fix workspace size if idle task is FPSebastian Huber2014-12-121-2/+8
|
* libcsupport: Delete malloc statisticsSebastian Huber2014-11-281-13/+0
| | | | | | | Use the heap handler statistics instead. Add heap walk option to MALLOC shell command. close #1367
* _Scheduler_FIXME_thread_priority_queues_are_brokenSebastian Huber2014-11-241-6/+0
| | | | | Delete this variable since it is no longer necessary due to the thread priority queue implementation change to use RB trees.
* Use correct prototype of benchmark_timer_read()Joel Sherrill2014-09-161-1/+1
| | | | | | | | | | | | | | This change starts with removing the effectively empty file timerdrv.h. The prototypes for benchmark_timer_XXX() were in btimer.h which was not universally used. Thus every use of timerdrv.h had to be changed to btimer.h. Then the prototypes for benchmark_timer_read() had to be adjusted to return benchmark_timer_t rather than int or uint32_t. I took this opportunity to also correct the file headers to separate the copyright from the file description comments which is needed to ensure the copyright isn't propagated into Doxygen output.
* score: Collect scheduler related fields in TCBSebastian Huber2014-06-231-1/+1
| | | | | Add Thread_Scheduler_control to collect scheduler related fields of the TCB.
* libblock: Add RTEMS_BDBUF_USE_PTHREADRalf Kirchner2014-06-021-10/+40
| | | | | | Use the PTHREAD mutexes and condition variables if available. This helps on SMP configurations to avoid the home grown condition variables via disabled preemption.
* rtems: Avoid copy and paste in confdefs.hRalf Kirchner2014-06-021-32/+48
| | | | | Add and use CONFIGURE_POSIX_MUTEXES. Add and use CONFIGURE_POSIX_CONDITION_VARIABLES.
* score: Multiprocessor Resource Sharing ProtocolSebastian Huber2014-05-281-1/+13
| | | | | | | | | | | | | | | | | | | | | | Add basic support for the Multiprocessor Resource Sharing Protocol (MrsP). The Multiprocessor Resource Sharing Protocol (MrsP) is defined in A. Burns and A.J. Wellings, A Schedulability Compatible Multiprocessor Resource Sharing Protocol - MrsP, Proceedings of the 25th Euromicro Conference on Real-Time Systems (ECRTS 2013), July 2013. It is a generalization of the Priority Ceiling Protocol to SMP systems. Each MrsP semaphore uses a ceiling priority per scheduler instance. These ceiling priorities can be specified with rtems_semaphore_set_priority(). A task obtaining or owning a MrsP semaphore will execute with the ceiling priority for its scheduler instance as specified by the MrsP semaphore object. Tasks waiting to get ownership of a MrsP semaphore will not relinquish the processor voluntarily. In case the owner of a MrsP semaphore gets preempted it can ask all tasks waiting for this semaphore to help out and temporarily borrow the right to execute on one of their assigned processors. The help out feature is not implemented with this patch.
* score: Introduce scheduler nodesSebastian Huber2014-05-141-7/+13
| | | | | | | | | | | | Rename scheduler per-thread information into scheduler nodes using Scheduler_Node as the base type. Use inheritance for specialized schedulers. Move the scheduler specific states from the thread control block into the scheduler node structure. Validate the SMP scheduler node state transitions in case RTEMS_DEBUG is defined.
* score: Statically initialize _ISR_Vector_tableSebastian Huber2014-04-291-28/+0
|
* rtems: Account for the network semaphore.Chris Johns2014-04-271-1/+8
|
* sapi: Fix condef.h compile error for disabled network configuration.Jennifer Averett2014-04-251-0/+2
| | | | Added define for CONFIGURE_SEMAPHORES_FOR_NFS when networking disabled.
* rtems: Account for file system semaphores.Chris Johns2014-04-251-2/+32
| | | | Add support to account for the semaphores used by the file systems.
* sapi: Fix CONFIGURE_UNLIMITED_OBJECTSSebastian Huber2014-04-171-6/+8
| | | | POSIX keys and key value pairs support now the unlimited option.
* sapi: Error case for CONFIGURE_UNLIMITED_OBJECTSSebastian Huber2014-04-171-0/+6
|
* score: Add clustered/partitioned schedulingSebastian Huber2014-04-151-0/+113
| | | | | | | | | | | | | | | Clustered/partitioned scheduling helps to control the worst-case latencies in the system. The goal is to reduce the amount of shared state in the system and thus prevention of lock contention. Modern multi-processor systems tend to have several layers of data and instruction caches. With clustered/partitioned scheduling it is possible to honour the cache topology of a system and thus avoid expensive cache synchronization traffic. We have clustered scheduling in case the set of processors of a system is partitioned into non-empty pairwise-disjoint subsets. These subsets are called clusters. Clusters with a cardinality of one are partitions. Each cluster is owned by exactly one scheduler instance.
* score: Add scheduler nameSebastian Huber2014-04-151-8/+44
|
* score: Simplify thread control initializationSebastian Huber2014-04-151-86/+74
| | | | | | | | | | | The thread control block contains fields that point to application configuration dependent memory areas, like the scheduler information, the API control blocks, the user extension context table, the RTEMS notepads and the Newlib re-entrancy support. Account for these areas in the configuration and avoid extra workspace allocations for these areas. This helps also to avoid heap fragementation and reduces the per thread memory due to a reduced heap allocation overhead.
* score: Static scheduler configurationSebastian Huber2014-04-151-58/+71
| | | | | | Do not allocate the scheduler control structures from the workspace. This is a preparation step for configuration of clustered/partitioned schedulers on SMP.
* score: Statically initialize IO managerSebastian Huber2014-04-101-23/+14
| | | | | | | | | | | | This simplifies the RTEMS initialization and helps to avoid a memory overhead. The workspace demands of the IO manager were not included in the <rtems/confdefs.h> workspace size estimate. This is also fixed as a side-effect. Update documentation and move "Specifying Application Defined Device Driver Table" to the section end. This sub-section is not that important for the user. Mentioning this at the beginning may lead to confusion.
* score: Fix POSIX threads size estimateSebastian Huber2014-04-071-12/+12
| | | | | The POSIX threads are separate objects. Account for the object administration overhead.