summaryrefslogtreecommitdiff
path: root/cpukit/libcsupport (follow)
AgeCommit message (Collapse)Author
2020-03-16rtems: Add rtems_put_char()Sebastian Huber
Update #3904.
2020-03-13libio: Robust file descriptor reference countingSebastian Huber
There was a race conditon in the reference counting of file descriptors during a close() operation. After the call to the close handler, the rtems_libio_free() function cleared the flags to zero. However, at this point in time there may still exist some holders of the file descriptor. With RTEMS_DEBUG enabled this could lead to failed assertions in rtems_libio_iop_drop(). Change the code to use only atomic read-modify-write operations on the rtems_libio_iop::flags.
2020-03-04console: Use IMFS_add_node() for simple task consSebastian Huber
Change license to BSD-2-Clause according to file history. Update #3053. Update #3894.
2020-03-04console: Use IMFS_add_node() for simple consoleSebastian Huber
Change license to BSD-2-Clause according to file history. Update #3053. Update #3894.
2020-02-25config: Add <rtems/confdefs/malloc.h>Sebastian Huber
Remove all comments and copyrightable content from the moved content. Use BSD-2-Clause license for new file. Move the default configuration to library files so that application configurations do not include the definitions for the default case. Update #3053. Update #3875.
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-10termios: Fix input canonical modeSebastian Huber
Canonical input processing was broken by 667501a314ba75f80f1c13c6b43dd35d0a00efd1 as shown by test case termios09. Update #3800.
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.
2020-01-17posix_devctl - Add support for SOCKCLOSEJoel Sherrill
The FACE Technical Standard, Edition 3.0 and later require the definition of the subcommand SOCKCLOSE in <devctl.h>. Reference: ​https://www.opengroup.org/face closes #3856.
2019-12-16libcsupport: Update rtems_print printk handler to return the lengthChris Johns
2019-12-13rtems: Add and use rtems_object_get_local_node()Sebastian Huber
Update #3841.
2019-11-05kill: Fix warningSebastian Huber
Include right header file for kill().
2019-10-08termios: Add Capability to Generate SIGINTR and SIGQUITJoel Sherrill
This patch adds the ability for termios to send SIGINTR on receipt of VINTR and SIGQUIT for VKILL and return -1/EINTR from read() on a termios channel. Importantly, this patch does not alter the default behavior or force POSIX signal code in just because termios is used. The application must explicitly enable the POSIX behavior of generating a signal upon receipt of these characters. This is discussed in the POSIX standard: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap11.html Closes #3800.
2019-03-14Remove superfluous <rtems/system.h> includesSebastian Huber
2019-01-10memalign: Add missing attributes to fix warningSebastian Huber
Update #3666.
2018-12-21Add aligned_alloc() and memalign()Sebastian Huber
Ensure that the C++17 aligned new operator works. Close #3666.
2018-11-14or1k: Support GCC 9Sebastian Huber
Close #3602.
2018-11-12Add rtems_malloc() and rtems_calloc()Sebastian Huber
Close #3583.
2018-11-08libcsupport: Add missing includeSebastian Huber
Update #3598.
2018-11-07config: Include <rtems.h> for RTEMS_NEWLIBSebastian Huber
2018-11-07termios: Move default lock functionsSebastian Huber
Move rtems_termios_device_lock_acquire_default() and rtems_termios_device_lock_release_default() to a file separate from the general Termios support. This avoids complex dependencies in printk() only scenarios.
2018-11-07config: Fix CONFIGURE_DISABLE_NEWLIB_REENTRANCYSebastian Huber
Move the __getreent() variant using the global reentrancy structure to librtemscpu.a. This avoids a definition of __getreent() in the configuration module if CONFIGURE_DISABLE_NEWLIB_REENTRANCY is defined. This avoids all the dependencies which would be exposed by a reference to the global reentrancy structure. This change is only possible since the default configuration moved to librtemsdefaultconfig.a recently.
2018-10-29posix: Provide threads by defaultSebastian Huber
Update #2514.
2018-10-22Remove checks for flockfile(), etc. declarationsSebastian Huber
Declarations provided by Newlib since 2002. Update #3409.
2018-10-22Remove getcwd()Sebastian Huber
This function is provided by Newlib since 2000. Update #3409.
2018-10-22Remove optional getrusage() declarationSebastian Huber
Declaration provided by Newlib since 2014. Update #3409.
2018-10-22Remove ttyname()Sebastian Huber
This function is provided by Newlib since 2000. Update #3409.
2018-10-22Remove __assert()Sebastian Huber
This function is provided by Newlib since 2000. Update #3409.
2018-10-22Remove isatty()Sebastian Huber
These functions are provided by Newlib since 2000. Update #3409.
2018-10-22Remove strlcat(), strlcpy(), strsep(), readdir_r()Sebastian Huber
These functions are provided by Newlib since 2002. Update #3409.
2018-10-22Support O_NOFOLLOW open() flagSebastian Huber
Close #3546.
2018-10-18Support O_DIRECTORY open() flagSebastian Huber
Close #3545.
2018-10-18console: Be fair in simple console readSebastian Huber
Wait for one tick in case no character is available after a call to getchark(). Otherwise the system is constantly busy within an input loop (for example in the RTEMS shell). The polled Termios driver uses the same approach.
2018-10-09build: Merge libcsupport/Makefile.amSebastian Huber
2018-10-09build: Remove specialized CPPFLAGSSebastian Huber
2018-10-04Optimize calloc()Sebastian Huber
Use return value of memset() to enable tail call optimizations.
2018-10-04Avoid need for -fno-builtin for calloc()Sebastian Huber
Use RTEMS_OBFUSCATE_VARIABLE() instead.
2018-10-04Remove superfluous pipe_create()Sebastian Huber
2018-10-02Use rtems_task_exit()Sebastian Huber
Update #3530. Update #3533.
2018-06-29riscv: Fix global constructionSebastian Huber
Update #3433.
2018-06-27console: Add missing return statusSebastian Huber
Update #3320.
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-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-03-06Add a simple task console driverSebastian Huber
Close #3320.
2018-02-22termios: Fix use of uninitialized variableSebastian Huber
Update #2840.
2018-02-02termios: Use self-contained objectsSebastian Huber
Update #2840.
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-07Remove obsolete network header filesSebastian Huber
Update #3254.
2017-12-06libio: Use API mutexSebastian Huber
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.