summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi/include/confdefs.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-01-25Remove make preinstallChris Johns1-3587/+0
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
2017-12-06confdefs: Replace RTEMS 4.12 with 5.1Sebastian Huber1-8/+8
Update #3220.
2017-12-06libio: Use API mutexSebastian Huber1-6/+1
2017-12-06drvmgr: Use API mutexSebastian Huber1-10/+1
2017-12-04score: Use self-contained API mutexSebastian Huber1-9/+1
Use a self-contained recursive mutex for API_Mutex_Control. The API mutexes are protected against asynchronous thread cancellation. Add dedicated mutexes for libatomic and TOD. Close #2629. Close #2630.
2017-11-06Add simple console driverSebastian Huber1-0/+17
Update #3170. Update #3199.
2017-10-25confdefs: CONFIGURE_MICROSECONDS_PER_TICKSebastian Huber1-0/+4
Reject non-positive CONFIGURE_MICROSECONDS_PER_TICK values.
2017-10-24score: Add _Watchdog_Nanoseconds_per_tickSebastian Huber1-1/+3
Move it from the configuration to a separate variable. Update #3117. Update #3182.
2017-10-24score: _Watchdog_Is_far_future_monotonic_timespecSebastian Huber1-0/+3
Update #3117. Update #3182.
2017-10-24confdefs: Warn about problematic ticks per secondSebastian Huber1-0/+4
A non-integer clock ticks per second value may lead to inaccurate time format conversions. Update #3117. Update #3182.
2017-10-24score: Add _Watchdog_Ticks_per_secondSebastian Huber1-0/+4
This value is frequently used. Avoid the function call overhead and the integer division at run-time. Update #3117. Update #3182.
2017-10-12confdefs: Add warnings for obsolete optionsSebastian Huber1-1/+21
Update #2674. Close #3112. Close #3113. Close #3114. Close #3115. Close #3116.
2017-10-06confdefs: Fix typoSebastian Huber1-1/+1
2017-10-05posix: Implement self-contained POSIX mutexSebastian Huber1-69/+1
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 Huber1-63/+0
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 Huber1-26/+0
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 Huber1-25/+0
POSIX barriers are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3114.
2017-08-22confdefs: Fix POSIX keys configurationSebastian Huber1-1/+2
Remove the OBJECTS_UNLIMITED_OBJECTS flag for the memory size configuration. Update #3105.
2017-07-10score: Make EDF the default SMP schedulerSebastian Huber1-2/+2
The EDF SMP scheduler supports simple thread processor affinities (see #3059) with a small run-time overhead. The current default SMP scheduler lacks support for thread processor affinities at all. The EDF SMP scheduler offers a good feature set for most applications. So, use it by default. Run-time libraries like libgomp, MTAPI, work stealing schedulers, language interpreters (e.g. Erlang virtual machine), maintainence of per-processor data (e.g. Universal Memory Allocator (UMA)), etc. use a one-to-one thread processor affinity for example. Update #3063.
2017-07-10score: Add simple affinity support to EDF SMPSebastian Huber1-1/+2
Update #3059.
2017-06-29score: Add SMP EDF schedulerSebastian Huber1-0/+24
Update #3056.
2017-05-16confdefs.h: Add SMP enabled field to configurationSebastian Huber1-0/+7
Do not use the processor count to determine if SMP is enabled. Instead use a dedicated configuration option. Enable SMP by default in SMP configurations. Add CONFIGURE_DISABLE_SMP_CONFIGURATION to all test which would fail otherwise. Update #3001.
2017-05-16confdefs.h: Fix compile error in non-SMP cfgSebastian Huber1-1/+1
Bug introduced by f778b7f3f177a39505aeea61206e95fc54f875be. Update #3001.
2017-05-12confdefs.h: Use SMP scheduler only if necessarySebastian Huber1-1/+1
Update #3001.
2017-05-11confdefs.h: CONFIGURE_DISABLE_SMP_CONFIGURATIONSebastian Huber1-2/+6
Enable the SMP configuration by default in case SMP is enabled. Add configuration option CONFIGURE_DISABLE_SMP_CONFIGURATION to disable it explicitly. Add CONFIGURE_DISABLE_SMP_CONFIGURATION to all test which would fail otherwise. Update #3001.
2017-05-05posix/mman: add mmap support for shm objectsGedare Bloom1-1/+2
Update #2859.
2017-02-14Rename CONFIGURE_SMP_MAXIMUM_PROCESSORSSebastian Huber1-43/+44
Rename CONFIGURE_SMP_MAXIMUM_PROCESSORS to CONFIGURE_MAXIMUM_PROCESSORS since the SMP part is superfluous. Update #2894.
2017-02-03Prefix confdefs.h internal def with an underscoreSebastian Huber1-455/+352
Close #2895.
2017-02-03confdefs.h: SimplifySebastian Huber1-3/+1
2017-02-02confdefs.h: Only define _CONFIGURE_SMP_APPLICATION if RTEMS_SMP definedKevin Kirspel1-0/+2
2017-02-02Remove CONFIGURE_SMP_APPLICATIONSebastian Huber1-22/+16
Enable the SMP support if CONFIGURE_SMP_MAXIMUM_PROCESSORS > 1. Update #2893.
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-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-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-09-21score: Add scheduler node table for each threadSebastian Huber1-29/+35
Update #2556.
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-25confdefs.h: Fix heap alloc size estimateSebastian Huber1-4/+8
Account for the heap minimum block size.
2016-05-20score: Add per scheduler instance maximum prioritySebastian Huber1-12/+1
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-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 Huber1-0/+29
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-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.
2016-03-29score: Fix MPCI workspace size estimateSebastian Huber1-1/+3
Global objects are no real objects with an objects information structure.
2016-03-29score: Fix MPCI receive server workspace sizeSebastian Huber1-13/+33
2016-03-29score: Fix multiprocessing thread proxiesSebastian Huber1-1/+3
We must provide thread queue heads for the thread wait information for each thread proxy (thread queue heads were introduced by d7665823b208daefb6855591d808e1f3075cedcb). The thread proxy must be allocated before the enqueue operation.
2016-03-14score: Use ISR lock for IO driver registrationSebastian Huber1-0/+1
Create implementation header file. Update #2555.