summaryrefslogtreecommitdiff
path: root/cpukit/sapi (follow)
AgeCommit message (Collapse)Author
2020-09-18rtems: Move from <rtems.h> to <rtems/config.h>Sebastian Huber
Move configuration related declarations and definitions to <rtems/config.h>. The goal is to make <rtems.h> an include only header file.
2020-09-17CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZESebastian Huber
Add this application configuration option. This configuration option can be used to reserve space for the dynamic linking of modules with thread-local storage objects. Add RTEMS_TASK_STORAGE_ALIGNMENT to define the minium alignment of a thread-local storage size. Update #4074.
2020-08-31rtems: Add _RTEMS_Name_to_id()Sebastian Huber
Simplify object name to identifier directives. Using _RTEMS_Name_to_id() to implement the directives enables a tail call optimization. Change license to BSD-2-Clause according to file history. Update #3053.
2020-07-14rtems: Move declartion of _RTEMS_versionSebastian Huber
Close #3978.
2020-05-06score: Update _Copyright_NoticeSebastian Huber
Add the _Copyright_Notice to a special linker set to prevent a garbage collection of this item.
2020-05-06rtems: Deprecate _Copyright_NoticeSebastian Huber
Close #3973.
2020-05-06rtems: Add rtems_get_copyright_notice()Sebastian Huber
Update #3973.
2020-05-06rtems: Deprecate use of _RTEMS_versionSebastian Huber
Close #3970.
2020-04-28doxygen: Switch @brief and @ingroupSebastian Huber
This order change fixes the Latex documentation build via Doxygen.
2020-04-17sapi: Add param check to rtems_extension_create()Sebastian Huber
Check that the extensions table is not NULL. Change format. Update #3953.
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
2020-02-26config: Initialize IO drivers on demandSebastian Huber
2020-02-25libio: Add POSIX user environment pointer to TCBSebastian Huber
The IO library used a POSIX key to store an optional POSIX user environment pointer. This pulled in the POSIX keys support in every application configuration. Add a user environment pointer to the thread control block (TCB) instead. Applications which do not need the POSIX user environment will just get an overhead of one pointer per thread. Close #3882.
2020-02-06sysinit: Add RTEMS_SYSINIT_ZERO_MEMORYSebastian Huber
Use a dedicate system initialization step to zero the memory used for the workspace and C program heap. This avoids dead code in case CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY is not configured.
2020-02-04config: Add CONFIGURE_VERBOSE_SYSTEM_INITIALIZATIONSebastian Huber
Update #3861.
2020-02-04Use RTEMS_SYSINIT_ORDER_LAST_BUT_5Sebastian Huber
Use RTEMS_SYSINIT_ORDER_LAST_BUT_5 instead of RTEMS_SYSINIT_ORDER_LAST to allow applications and support functions to place system initialization handlers behind the standard handlers. Update #3838.
2020-02-04bsps: Rework work area initializationSebastian Huber
The work area initialization was done by the BSP through bsp_work_area_initialize(). This approach predated the system initialization through the system initialization linker set. The workspace and C program heap were unconditionally initialized. The aim is to support RTEMS application configurations which do not need the workspace and C program heap. In these configurations, the workspace and C prgram heap should not get initialized. Change all bsp_work_area_initialize() to implement _Memory_Get() instead. Move the dirty memory, sbrk(), per-CPU data, workspace, and malloc() heap initialization into separate system initialization steps. This makes it also easier to test the individual initialization steps. This change adds a dependency to _Heap_Extend() to all BSPs. This dependency will be removed in a follow up change. Update #3838.
2019-11-05rtems-5: Improve heap fatal error informationsebastian.huber
Update #3806.
2019-09-09rtems: Make rtems_version_control_key() saferSebastian Huber
Return the empty string instead of a NULL pointer if no version key is available.
2019-04-09rtems: Add rtems_scheduler_get_processor_maximum()Sebastian Huber
Add rtems_scheduler_get_processor_maximum() as a replacement for rtems_get_processor_count(). The rtems_get_processor_count() is a bit orphaned. Adopt it by the Scheduler Manager. The count is also misleading, since the processor set may have gaps and the actual count of online processors may be less than the value returned by rtems_get_processor_count(). Update #3732.
2019-04-04doxygen: Rename Score* groups in RTEMSScore*Sebastian Huber
Update #3706
2019-04-04doxygen: Added Version to API->ClassicAndreas Dachsberger
Update #3706.
2019-03-14Remove superfluous <rtems/system.h> includesSebastian Huber
2018-12-18score: Fix per-CPU data allocationSebastian Huber
Allocate the per-CPU data for secondary processors directly from the heap areas before heap initialization and not via _Workspace_Allocate_aligned(). This avoids dependency on the workspace allocator. It fixes also a problem on some platforms (e.g. QorIQ) where at this early point in the system initialization the top of the RAM is used by low-level startup code on secondary processors (boot pages). Update #3507.
2018-12-14score: Static Objects_Information initializationSebastian Huber
Statically allocate the objects information together with the initial set of objects either via <rtems/confdefs.h>. Provide default object informations with zero objects via librtemscpu.a. This greatly simplifies the workspace size estimate. RTEMS applications which do not use the unlimited objects option are easier to debug since all objects reside now in statically allocated objects of the right types. Close #3621.
2018-12-14rtems: Use object information to get config maxSebastian Huber
Use functions instead of macros. Add missing rtems_configuration_get_maximum_*() functions. Update #3621.
2018-12-07score: Remove Objects_Information::is_stringSebastian Huber
Use Objects_Information::name_length to store this information. Update #3621.
2018-12-03Convert CPU counter ticks to/from sbintime_tSebastian Huber
The sbintime_t is an efficient time format. Add the ability to convert CPU counter ticks to/from sbintime_t.
2018-10-09build: Move sapi/Makefile.amSebastian Huber
2018-10-04Rename files to make them unique within cpukitSebastian Huber
This allows to build librtemscpu.a in one rush in the future.
2018-06-15Add _CPU_Counter_frequency()Sebastian Huber
Add rtems_counter_frequency() API function. Use it to initialize the counter value converter via the new system initialization step (RTEMS_SYSINIT_CPU_COUNTER). This decouples the counter implementation and the counter converter. It avoids an unnecessary pull in of the 64-bit integer division from libgcc. Update #3456.
2018-06-05Add RTEMS_FATAL_SOURCE_INVALID_HEAP_FREESebastian Huber
An invalid heap usage such as a double free is usually a fatal error since this indicates a use after free. Replace the use of printk() in free() with a fatal error. Update #3437.
2018-06-05Update rtems_fatal_source_text()Sebastian Huber
Add RTEMS_FATAL_SOURCE_PANIC to rtems_fatal_source_text(). Update #3244.
2018-04-04build: Remove EXTRA_DISTSebastian Huber
A "make dist" is not supported. So, it makes no sense to have pure "make dist" related stuff in the Makefile.am.
2018-01-25Remove make preinstallChris Johns
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 Huber
Update #3220.
2017-12-06libio: Use API mutexSebastian Huber
2017-12-06drvmgr: Use API mutexSebastian Huber
2017-12-04score: Use self-contained API mutexSebastian Huber
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-29sapi/src/panic.c: Add include of <rtems/bspIo.h>Joel Sherrill
2017-11-22sapi: New implementation of rtems_panic()Sebastian Huber
The previous rtems_panic() implementation was quite heavy weight. It depended on _exit() which calls the global destructors. It used fprintf(stderr, ...) for output which depends on an initialized console device and the complex fprintf(). Introduce a new fatal source RTEMS_FATAL_SOURCE_PANIC for rtems_panic() and output via vprintk(). Update #3244.
2017-11-17cpukit: Add _arc4random_getentropy_fail.Christian Mauderer
Add a default implementation of _arc4random_getentropy_fail with an internal error. Update #3239.
2017-11-14build: Fix the dependence for the generating the key file.Chris Johns
Update #3217.
2017-11-13Fix bashism in vc-key.shMartin Erik Werner
Change "==" to "=", since "==" for comparison is not available in POSIX sh. Signed-off-by: Martin Erik Werner <martinerikwerner@gmail.com>
2017-11-10cpukit: Add a Version API.Chris Johns
Provide functions to get the version string, major, minor and revision numbers and the version control identifer that is a unique tag for the version control system. Update #3199.
2017-11-06Add simple console driverSebastian Huber
Update #3170. Update #3199.
2017-10-25confdefs: CONFIGURE_MICROSECONDS_PER_TICKSebastian Huber
Reject non-positive CONFIGURE_MICROSECONDS_PER_TICK values.
2017-10-24score: Add _Watchdog_Nanoseconds_per_tickSebastian Huber
Move it from the configuration to a separate variable. Update #3117. Update #3182.
2017-10-24score: _Watchdog_Is_far_future_monotonic_timespecSebastian Huber
Update #3117. Update #3182.
2017-10-24confdefs: Warn about problematic ticks per secondSebastian Huber
A non-integer clock ticks per second value may lead to inaccurate time format conversions. Update #3117. Update #3182.