summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi/include/confdefs.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2016-02-03Use linker set for POSIX User Threads initSebastian Huber1-4/+5
Update #2408.
2016-02-03Use linker set for Classic User Tasks initSebastian Huber1-4/+5
Update #2408.
2016-02-03Use linker set for libio initializationSebastian Huber1-14/+0
Update #2408.
2016-02-03Use atexit() handler to close std file descriptorsSebastian Huber1-7/+0
2016-02-03Use linker set for root file system initializationSebastian Huber1-5/+6
Update #2408.
2016-02-03Optional Initial Extensions initializationSebastian Huber1-0/+8
Update #2408.
2015-12-24api: Remove deprecated NotepadsAun-Ali Zaidi1-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.
2015-11-25Require __getreent()Sebastian Huber1-1/+1
This function is used by Newlib since 2013-07-09 (Git commit 9b51cd8c6b9cdd067d9648a7ab952884019c56a5).
2015-10-27CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK was undocumented and not error checkedJoel Sherrill1-0/+14
closes #2431.
2015-10-26basdefs.h: Add and use RTEMS_DEPRECATEDSebastian Huber1-1/+1
2015-09-04score: Implement SMP-specific priority queueSebastian Huber1-3/+4
2015-07-23score: Introduce Thread_queue_HeadsSebastian Huber1-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).
2015-06-26score: Simplify <rtems/system.h>Sebastian Huber1-0/+1
Drop the <rtems/score/percpu.h> include since this file exposes a lot of implementation details.
2015-05-27sapi: Fix workspace size estimateSebastian Huber1-2/+1
Reserve a full minimum block to account for the heap protection enabled via RTEMS_DEBUG.
2015-05-27sapi: Fix workspace size estimateSebastian Huber1-4/+15
2015-05-27sapi: Simplify confdefs.hSebastian Huber1-1/+0
The _Configure_From_workspace() already takes care that zero size allocations contribute nothing to the workspace size estimate.
2015-04-17DRVMGR: added driver manager to cpukit/libdrvmgrDaniel Hellstrom1-1/+10
2015-04-17LIBPCI: added PCI layer to cpukit/libpciDaniel Hellstrom1-0/+46
2015-03-11confdefs.h: Improve the DoxygenJoel Sherrill1-121/+780
2015-03-10cpukit: deprecate task variables. closes #2293.Gedare Bloom1-0/+3
2015-03-10cpukit: deprecate notepadsGedare Bloom1-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
2015-02-14IMFS: Add CONFIGURE_IMFS_DISABLE_READDIRSebastian Huber1-1/+5
2015-02-13IMFS: Rename CONFIGURE_IMFS_DISABLE_FCHMODSebastian Huber1-2/+2
Rename CONFIGURE_IMFS_DISABLE_FCHMOD to CONFIGURE_IMFS_DISABLE_CHMOD.
2015-02-13IMFS: Add CONFIGURE_IMFS_DISABLE_MKNOD_FILESebastian Huber1-1/+5
2015-02-13IMFS: CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEMSebastian Huber1-0/+11
Resurrect CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM.
2015-02-12IMFS: Add fine grained configurationSebastian Huber1-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.
2015-02-09Filesystem: Simplify FIFO and pipe configurationSebastian Huber1-30/+23
2015-02-04Filesystem: Statically initialize rtems_libio_iopsSebastian Huber1-2/+4
2015-02-04Filesystem: Make rtems_libio_number_iops constSebastian Huber1-1/+1
2014-12-12confdefs.h: Fix workspace size if idle task is FPSebastian Huber1-2/+8
2014-11-28libcsupport: Delete malloc statisticsSebastian Huber1-13/+0
Use the heap handler statistics instead. Add heap walk option to MALLOC shell command. close #1367
2014-11-24_Scheduler_FIXME_thread_priority_queues_are_brokenSebastian Huber1-6/+0
Delete this variable since it is no longer necessary due to the thread priority queue implementation change to use RB trees.
2014-09-16Use correct prototype of benchmark_timer_read()Joel Sherrill1-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.
2014-06-23score: Collect scheduler related fields in TCBSebastian Huber1-1/+1
Add Thread_Scheduler_control to collect scheduler related fields of the TCB.
2014-06-02libblock: Add RTEMS_BDBUF_USE_PTHREADRalf Kirchner1-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.
2014-06-02rtems: Avoid copy and paste in confdefs.hRalf Kirchner1-32/+48
Add and use CONFIGURE_POSIX_MUTEXES. Add and use CONFIGURE_POSIX_CONDITION_VARIABLES.
2014-05-28score: Multiprocessor Resource Sharing ProtocolSebastian Huber1-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.
2014-05-14score: Introduce scheduler nodesSebastian Huber1-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.
2014-04-29score: Statically initialize _ISR_Vector_tableSebastian Huber1-28/+0
2014-04-27rtems: Account for the network semaphore.Chris Johns1-1/+8
2014-04-25sapi: Fix condef.h compile error for disabled network configuration.Jennifer Averett1-0/+2
Added define for CONFIGURE_SEMAPHORES_FOR_NFS when networking disabled.
2014-04-25rtems: Account for file system semaphores.Chris Johns1-2/+32
Add support to account for the semaphores used by the file systems.
2014-04-17sapi: Fix CONFIGURE_UNLIMITED_OBJECTSSebastian Huber1-6/+8
POSIX keys and key value pairs support now the unlimited option.
2014-04-17sapi: Error case for CONFIGURE_UNLIMITED_OBJECTSSebastian Huber1-0/+6
2014-04-15score: Add clustered/partitioned schedulingSebastian Huber1-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.
2014-04-15score: Add scheduler nameSebastian Huber1-8/+44
2014-04-15score: Simplify thread control initializationSebastian Huber1-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.
2014-04-15score: Static scheduler configurationSebastian Huber1-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.
2014-04-10score: Statically initialize IO managerSebastian Huber1-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.
2014-04-07score: Fix POSIX threads size estimateSebastian Huber1-12/+12
The POSIX threads are separate objects. Account for the object administration overhead.