| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At the moment the line discipline start function (l_start) has no
possibility to get feedback about the number of characters that have
been sent. This patch passes that information via an additional
parameter.
The change might trigger a warning on existing code because of a pointer
mismatch but it shouldn't break it. An existing function with the old
API will just ignore the additional parameter.
Update #4493
|
|
|
|
| |
This mutex is used to maintain termios internal data structures.
|
|
|
|
|
|
|
|
|
|
| |
Merge the rtems_termios_isig_status_code and
rtems_termios_iproc_status_code enums into a single
rtems_termios_iproc_status_code which is now a part of the API.
Simplify rtems_termios_posix_isig_handler() to avoid unreachable code.
Close #3800.
|
|
|
|
|
|
|
|
| |
Use the following variant which was already used by most source files:
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Canonical input processing was broken by
667501a314ba75f80f1c13c6b43dd35d0a00efd1 as shown by test case
termios09.
Update #3800.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Update #3530.
Update #3533.
|
|
|
|
| |
Update #2840.
|
|
|
|
| |
Update #2840.
|
|
|
|
|
|
|
| |
In canonical mode, input is made available line by line. We must stop
the canonical buffer filling upon reception of an end-of-line character.
Close #3218.
|
|
|
|
| |
Update #3132.
|
|
|
|
| |
Update #2133.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Added a mmap file handler to struct _rtems_filesystem_file_handlers_r.
Updated each file handler object to support the default mmap handler.
Updated mmap() to call the mmap handler for MAP_SHARED.
Added a mmap file handler for shm
Added support for MAP_ANON in mmap().
Updates #2859
|
|
|
|
| |
Update #2833.
|
|
|
|
|
|
|
| |
Remove obsolete support for OFILL, OFDEL, NLDLY, CRDLY, BSDLY, VTDLY,
and FFDLY which is not present on FreeBSD and not implemented in Linux.
Update #2833.
|
|
|
|
| |
updates #2897.
|
|
|
|
| |
Update #2897.
|
|
|
|
|
|
|
|
|
|
|
| |
Adding modified FreeBSD headers to synchronize RTEMS termios with
FreeBSD. Modify termios to support dedicated input and output baud for
termios structure. Updated BSPs to use dedicated input and output baud
in termios structure. Updated tools to use dedicated input and output
baud in termios structure. Updated termios testsuites to use dedicated
input and output baud in termios structure.
Close #2897.
|
|
|
|
| |
Use the modular arithmetic addition rule.
|
| |
|
|
|
|
|
|
|
|
| |
Currently only blocking read/write operations are implemented. A
blocking write must transfer at least one character. It should not wait
for the device for the second character and so on.
Close #2917.
|
| |
|
|
|
|
| |
Call rtems_termios_puts() only once. Adjust column in one place.
|
|
|
|
|
|
|
| |
In canonical mode, the raw input buffer or the canonical buffer may
overflow without an end of line. Avoid an infinite loop in this case.
Close #2915.
|
|
|
|
|
|
|
|
| |
Call the receive callback in case a read will succeed without to block.
This enables the use of the receive callback for a poll() and select()
support. Increase raw input buffer size to allow buffering of one line.
Close #2916.
|
|
|
|
| |
Optimize callout invocation check.
|
|
|
|
|
|
|
| |
In case carriage return characters should be ignored in the input
(IGNCR), then drop them early before they reach the raw input buffer.
This makes it easier to calculate the content size of the raw input
buffer.
|
|
|
|
|
|
|
| |
Use the device lock to protect the raw input buffer management, e.g.
tail, head and buffer content updates.
Close #2914.
|
|
|
|
|
|
| |
Remove dead code.
Update #2914.
|
|
|
|
| |
Real implementation is provided by libbsd.
|
|
|
|
|
|
| |
This enables early printk() support.
Update #2838.
|
|
|
|
|
|
|
|
|
|
| |
Add a new interrupt server driven Termios mode (TERMIOS_IRQ_DRIVEN).
This mode is identical to the interrupt driven mode except that a mutex
is used for device level locking. The intended use case for this mode
are device drivers that use the interrupt server, e.g. SPI or I2C
connected devices.
Update #2839.
|
|
|
|
|
|
|
|
|
|
| |
Termios has a task driven mode (TERMIOS_TASK_DRIVEN). This mode aims to
avoid long sections with disabled interrupts. This is only partly
implemented since the device level state is still protected by disabled
interrupts. Use a mutex to protect the device level state in task driven
mode to fix this issue.
Update #2838.
|
|
|
|
| |
Update #2785.
|
|
|
|
|
|
|
|
| |
This makes the new Termios devices independent of device major/minor
numbers. It enables BSP independent Termios device drivers which may
reside in the cpukit domain. These drivers require an IMFS and do not
work with the device file system. However, the device file system
should go away in the future.
|
|
|
|
|
|
|
| |
This helps to detect
* double insert, append, prepend errors, and
* get from empty chain errors.
|
|
|
|
|
|
| |
Coverity spotted that we were ignoring a return value. But ignoring
it is intentional. Adding (void) clearly indicates it is being ignored
explicitly.
|
|
|
|
|
|
|
| |
Move interrupt lock to device context and expose only this structure to
the read, write and set attributes device handler. This makes these
device handler independent of the general Termios infrastructure
suitable for direct use in printk() support.
|
| |
|
|
|
|
|
|
| |
Do not call rtems_termios_refill_transmitter() in case a PPP line
discipline is present. This is similar to
rtems_termios_dequeue_characters().
|
|
|
|
| |
Renamed startXmit(), nToSend is unsigned, just check FL_ORCVXOF, no (void) cast anymore, compute nToSend in single if/else if/else.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new low-level device API to Termios that passes the TTY structure
to the low-level device functions. This greatly simplifies the
low-level device drivers since they are no longer forced to derive their
private data from the minor number.
It makes it possible to use the TTY low-level lock in the device driver
low-level functions which is necessary for proper SMP support. For
example to set the attributes it is often necessary to perform a
read-modify-write operation on a control register used also by interrupt
routines.
A compatibility layer is provided to support device drivers using the
old callback functions so it is not necessary to modify existing device
drivers.
|
| |
|
| |
|