tty: tty_driver: move TTY macros to the top

So that they can be referenced in structs once converted to enums (in
the next patches).

Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20250317070046.24386-13-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Jiri Slaby (SUSE)
2025-03-17 08:00:27 +01:00
committed by Greg Kroah-Hartman
parent f812af3642
commit 67acbcc324

View File

@@ -16,6 +16,84 @@ struct tty_driver;
struct serial_icounter_struct;
struct serial_struct;
/**
* DOC: TTY Driver Flags
*
* TTY_DRIVER_RESET_TERMIOS
* Requests the tty layer to reset the termios setting when the last
* process has closed the device. Used for PTYs, in particular.
*
* TTY_DRIVER_REAL_RAW
* Indicates that the driver will guarantee not to set any special
* character handling flags if this is set for the tty:
*
* ``(IGNBRK || (!BRKINT && !PARMRK)) && (IGNPAR || !INPCK)``
*
* That is, if there is no reason for the driver to
* send notifications of parity and break characters up to the line
* driver, it won't do so. This allows the line driver to optimize for
* this case if this flag is set. (Note that there is also a promise, if
* the above case is true, not to signal overruns, either.)
*
* TTY_DRIVER_DYNAMIC_DEV
* The individual tty devices need to be registered with a call to
* tty_register_device() when the device is found in the system and
* unregistered with a call to tty_unregister_device() so the devices will
* be show up properly in sysfs. If not set, all &tty_driver.num entries
* will be created by the tty core in sysfs when tty_register_driver() is
* called. This is to be used by drivers that have tty devices that can
* appear and disappear while the main tty driver is registered with the
* tty core.
*
* TTY_DRIVER_DEVPTS_MEM
* Don't use the standard arrays (&tty_driver.ttys and
* &tty_driver.termios), instead use dynamic memory keyed through the
* devpts filesystem. This is only applicable to the PTY driver.
*
* TTY_DRIVER_HARDWARE_BREAK
* Hardware handles break signals. Pass the requested timeout to the
* &tty_operations.break_ctl instead of using a simple on/off interface.
*
* TTY_DRIVER_DYNAMIC_ALLOC
* Do not allocate structures which are needed per line for this driver
* (&tty_driver.ports) as it would waste memory. The driver will take
* care. This is only applicable to the PTY driver.
*
* TTY_DRIVER_UNNUMBERED_NODE
* Do not create numbered ``/dev`` nodes. For example, create
* ``/dev/ttyprintk`` and not ``/dev/ttyprintk0``. Applicable only when a
* driver for a single tty device is being allocated.
*/
#define TTY_DRIVER_INSTALLED 0x0001
#define TTY_DRIVER_RESET_TERMIOS 0x0002
#define TTY_DRIVER_REAL_RAW 0x0004
#define TTY_DRIVER_DYNAMIC_DEV 0x0008
#define TTY_DRIVER_DEVPTS_MEM 0x0010
#define TTY_DRIVER_HARDWARE_BREAK 0x0020
#define TTY_DRIVER_DYNAMIC_ALLOC 0x0040
#define TTY_DRIVER_UNNUMBERED_NODE 0x0080
/* tty driver types */
#define TTY_DRIVER_TYPE_SYSTEM 0x0001
#define TTY_DRIVER_TYPE_CONSOLE 0x0002
#define TTY_DRIVER_TYPE_SERIAL 0x0003
#define TTY_DRIVER_TYPE_PTY 0x0004
#define TTY_DRIVER_TYPE_SCC 0x0005 /* scc driver */
#define TTY_DRIVER_TYPE_SYSCONS 0x0006
/* system subtypes (magic, used by tty_io.c) */
#define SYSTEM_TYPE_TTY 0x0001
#define SYSTEM_TYPE_CONSOLE 0x0002
#define SYSTEM_TYPE_SYSCONS 0x0003
#define SYSTEM_TYPE_SYSPTMX 0x0004
/* pty subtypes (magic, used by tty_io.c) */
#define PTY_TYPE_MASTER 0x0001
#define PTY_TYPE_SLAVE 0x0002
/* serial subtype definitions */
#define SERIAL_TYPE_NORMAL 1
/**
* struct tty_operations -- interface between driver and tty
*
@@ -494,84 +572,6 @@ static inline void tty_set_operations(struct tty_driver *driver,
driver->ops = op;
}
/**
* DOC: TTY Driver Flags
*
* TTY_DRIVER_RESET_TERMIOS
* Requests the tty layer to reset the termios setting when the last
* process has closed the device. Used for PTYs, in particular.
*
* TTY_DRIVER_REAL_RAW
* Indicates that the driver will guarantee not to set any special
* character handling flags if this is set for the tty:
*
* ``(IGNBRK || (!BRKINT && !PARMRK)) && (IGNPAR || !INPCK)``
*
* That is, if there is no reason for the driver to
* send notifications of parity and break characters up to the line
* driver, it won't do so. This allows the line driver to optimize for
* this case if this flag is set. (Note that there is also a promise, if
* the above case is true, not to signal overruns, either.)
*
* TTY_DRIVER_DYNAMIC_DEV
* The individual tty devices need to be registered with a call to
* tty_register_device() when the device is found in the system and
* unregistered with a call to tty_unregister_device() so the devices will
* be show up properly in sysfs. If not set, all &tty_driver.num entries
* will be created by the tty core in sysfs when tty_register_driver() is
* called. This is to be used by drivers that have tty devices that can
* appear and disappear while the main tty driver is registered with the
* tty core.
*
* TTY_DRIVER_DEVPTS_MEM
* Don't use the standard arrays (&tty_driver.ttys and
* &tty_driver.termios), instead use dynamic memory keyed through the
* devpts filesystem. This is only applicable to the PTY driver.
*
* TTY_DRIVER_HARDWARE_BREAK
* Hardware handles break signals. Pass the requested timeout to the
* &tty_operations.break_ctl instead of using a simple on/off interface.
*
* TTY_DRIVER_DYNAMIC_ALLOC
* Do not allocate structures which are needed per line for this driver
* (&tty_driver.ports) as it would waste memory. The driver will take
* care. This is only applicable to the PTY driver.
*
* TTY_DRIVER_UNNUMBERED_NODE
* Do not create numbered ``/dev`` nodes. For example, create
* ``/dev/ttyprintk`` and not ``/dev/ttyprintk0``. Applicable only when a
* driver for a single tty device is being allocated.
*/
#define TTY_DRIVER_INSTALLED 0x0001
#define TTY_DRIVER_RESET_TERMIOS 0x0002
#define TTY_DRIVER_REAL_RAW 0x0004
#define TTY_DRIVER_DYNAMIC_DEV 0x0008
#define TTY_DRIVER_DEVPTS_MEM 0x0010
#define TTY_DRIVER_HARDWARE_BREAK 0x0020
#define TTY_DRIVER_DYNAMIC_ALLOC 0x0040
#define TTY_DRIVER_UNNUMBERED_NODE 0x0080
/* tty driver types */
#define TTY_DRIVER_TYPE_SYSTEM 0x0001
#define TTY_DRIVER_TYPE_CONSOLE 0x0002
#define TTY_DRIVER_TYPE_SERIAL 0x0003
#define TTY_DRIVER_TYPE_PTY 0x0004
#define TTY_DRIVER_TYPE_SCC 0x0005 /* scc driver */
#define TTY_DRIVER_TYPE_SYSCONS 0x0006
/* system subtypes (magic, used by tty_io.c) */
#define SYSTEM_TYPE_TTY 0x0001
#define SYSTEM_TYPE_CONSOLE 0x0002
#define SYSTEM_TYPE_SYSCONS 0x0003
#define SYSTEM_TYPE_SYSPTMX 0x0004
/* pty subtypes (magic, used by tty_io.c) */
#define PTY_TYPE_MASTER 0x0001
#define PTY_TYPE_SLAVE 0x0002
/* serial subtype definitions */
#define SERIAL_TYPE_NORMAL 1
int tty_register_driver(struct tty_driver *driver);
void tty_unregister_driver(struct tty_driver *driver);
struct device *tty_register_device(struct tty_driver *driver, unsigned index,