| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Update #3904.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Change license to BSD-2-Clause according to file history.
Update #3053.
Update #3894.
|
|
|
|
|
|
|
| |
Change license to BSD-2-Clause according to file history.
Update #3053.
Update #3894.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Canonical input processing was broken by
667501a314ba75f80f1c13c6b43dd35d0a00efd1 as shown by test case
termios09.
Update #3800.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Update #3841.
|
|
|
|
| |
Include right header file for kill().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Update #3666.
|
|
|
|
|
|
| |
Ensure that the C++17 aligned new operator works.
Close #3666.
|
|
|
|
| |
Close #3602.
|
|
|
|
| |
Close #3583.
|
|
|
|
| |
Update #3598.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Update #2514.
|
|
|
|
|
|
| |
Declarations provided by Newlib since 2002.
Update #3409.
|
|
|
|
|
|
| |
This function is provided by Newlib since 2000.
Update #3409.
|
|
|
|
|
|
| |
Declaration provided by Newlib since 2014.
Update #3409.
|
|
|
|
|
|
| |
This function is provided by Newlib since 2000.
Update #3409.
|
|
|
|
|
|
| |
This function is provided by Newlib since 2000.
Update #3409.
|
|
|
|
|
|
| |
These functions are provided by Newlib since 2000.
Update #3409.
|
|
|
|
|
|
| |
These functions are provided by Newlib since 2002.
Update #3409.
|
|
|
|
| |
Close #3546.
|
|
|
|
| |
Close #3545.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
Use return value of memset() to enable tail call optimizations.
|
|
|
|
| |
Use RTEMS_OBFUSCATE_VARIABLE() instead.
|
| |
|
|
|
|
|
| |
Update #3530.
Update #3533.
|
|
|
|
| |
Update #3433.
|
|
|
|
| |
Update #3320.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
A "make dist" is not supported. So, it makes no sense to have pure "make
dist" related stuff in the Makefile.am.
|
|
|
|
| |
Close #3320.
|
|
|
|
| |
Update #2840.
|
|
|
|
| |
Update #2840.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Update #3254.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|