Files
MentOS/libc/inc/bits/termios-struct.h
T
Enrico Fraccaroli (Galfurian) 30e01ba560 Update version
2024-01-17 13:49:48 +01:00

47 lines
2.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/// @file termios-struct.h
/// @brief Definition of the `termios` structure.
/// @copyright (c) 2014-2024 This file is distributed under the MIT License.
/// See LICENSE.md for details.
#pragma once
/// Type for control characters.
typedef unsigned char cc_t;
/// Type for speed.
typedef unsigned int speed_t;
/// Type for flags.
typedef unsigned int tcflag_t;
/// The number of control characters.
#define NCCS 32
/// @brief Stores information about a terminal IOs.
typedef struct termios {
tcflag_t c_iflag; ///< input mode flags
tcflag_t c_oflag; ///< output mode flags
tcflag_t c_cflag; ///< control mode flags
tcflag_t c_lflag; ///< local mode flags
cc_t c_line; ///< line discipline
cc_t c_cc[NCCS]; ///< control characters
speed_t c_ispeed; ///< input speed
speed_t c_ospeed; ///< output speed
} termios_t;
//These flags generally control higher-level aspects of input processing than
// the input modes flags described in Input Modes, such as echoing, signals, and
// the choice of canonical or noncanonical input.
#define ISIG 0x00000080 ///< Controls whether the INTR, QUIT, and SUSP characters are recognized.
#define ICANON 0x00000100 ///< Enables canonical input processing mode.
#define ECHO 0x00000008 ///< Echo input characters.
#define ECHOE 0x00000002 ///< If ICANON is set, the ERASE character erases the preceding character.
#define ECHOK 0x00000004 ///< If ICANON is set, the KILL character erases the current line.
#define ECHONL 0x00000010 ///< If ICANON is set, echo the NL character even if ECHO is not set.
#define NOFLSH 0x80000000 ///< Do not clear in/out queues when receiving INTR, QUIT, and SUSP.
#define TOSTOP 0x00400000 ///< Allows SIGTTOU signals generated by background processes.
#define ECHOCTL 0x00000040 ///< If this and ECHO are set, control characters with ^ are echoed.
#define ECHOKE 0x00000001 ///< If ICANON is set, KILL is echoed by erasing each character on the line.
#define IEXTEN 0x00000400 ///< Enables implementation-defined input processing.
/// @brief Mask for extracting control values.
#define CTRL(x) ((x) & 037)