Hardware Reference
In-Depth Information
Disabling
ISTRIP
prevents the kernel from stripping the high-order bit in the byte.
Disabling
INLCR
,
ICRNL
prevents the substitution of
NL
or
CR
characters (for input).
Disabling
IGNCR
prevents the kernel from deleting the
CR
character from the input stream.
Disabling
IXON
disables software flow control so that the characters
XON
and
XOFF
can be
read by the application program.
Looking at the output processing changes,
term.c_oflag &= ~OPOST;
we see that the following change applies:
Flag
Description
Setting
OPOST
Enable output processing
Disabled
This disables all output processing features with one flag.
Local processing includes both input and output. The following local processing
flags are changed:
term.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG| IEXTEN);
From this, we see that these local processing features are disabled:
Flag
Description
Setting
ECHO
Echo input
Disabled
ECHONL
Echo NL even if !ECHO
Disabled
ICANON
Enable canonical mode
Disabled
ISIG
Generate signals
Disabled
IEXTEN
Enable input processing
Disabled
Disabling
ICANON
means that all special nonsignal characters defined in
c_cc
are
disregarded (like
VERASE
). Disabling
ISIG
means that there will be no signals sent to your
application for characters like
VINTR
. Disabling
IEXTEN
disables other
c_cc
character
processing like
VEOL2
,
VLNEXT
,
VREPRINT
,
VWERASE
, and the
IUCLC
flag. Disabling
ECHO
and
ECHONL
disables two aspects of character echoing.
Finally, the following control aspects are changed:
term.c_cflag &= ~ (CSIZE | PARENB);
term.c_cflag |= CS8;