Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 #ifndef _LINUX_TTY_FLAGS_H
0003 #define _LINUX_TTY_FLAGS_H
0004 
0005 /*
0006  * Definitions for async_struct (and serial_struct) flags field also
0007  * shared by the tty_port flags structures.
0008  *
0009  * Define ASYNCB_* for convenient use with {test,set,clear}_bit.
0010  *
0011  * Bits [0..ASYNCB_LAST_USER] are userspace defined/visible/changeable
0012  * [x] in the bit comments indicates the flag is defunct and no longer used.
0013  */
0014 #define ASYNCB_HUP_NOTIFY    0 /* Notify getty on hangups and closes
0015                     * on the callout port */
0016 #define ASYNCB_FOURPORT      1 /* Set OUT1, OUT2 per AST Fourport settings */
0017 #define ASYNCB_SAK       2 /* Secure Attention Key (Orange book) */
0018 #define ASYNCB_SPLIT_TERMIOS     3 /* [x] Separate termios for dialin/callout */
0019 #define ASYNCB_SPD_HI        4 /* Use 57600 instead of 38400 bps */
0020 #define ASYNCB_SPD_VHI       5 /* Use 115200 instead of 38400 bps */
0021 #define ASYNCB_SKIP_TEST     6 /* Skip UART test during autoconfiguration */
0022 #define ASYNCB_AUTO_IRQ      7 /* Do automatic IRQ during
0023                     * autoconfiguration */
0024 #define ASYNCB_SESSION_LOCKOUT   8 /* [x] Lock out cua opens based on session */
0025 #define ASYNCB_PGRP_LOCKOUT  9 /* [x] Lock out cua opens based on pgrp */
0026 #define ASYNCB_CALLOUT_NOHUP    10 /* [x] Don't do hangups for cua device */
0027 #define ASYNCB_HARDPPS_CD   11 /* Call hardpps when CD goes high  */
0028 #define ASYNCB_SPD_SHI      12 /* Use 230400 instead of 38400 bps */
0029 #define ASYNCB_LOW_LATENCY  13 /* Request low latency behaviour */
0030 #define ASYNCB_BUGGY_UART   14 /* This is a buggy UART, skip some safety
0031                     * checks.  Note: can be dangerous! */
0032 #define ASYNCB_AUTOPROBE    15 /* [x] Port was autoprobed by PCI/PNP code */
0033 #define ASYNCB_MAGIC_MULTIPLIER 16 /* Use special CLK or divisor */
0034 #define ASYNCB_LAST_USER    16
0035 
0036 /*
0037  * Internal flags used only by kernel (read-only)
0038  *
0039  * WARNING: These flags are no longer used and have been superceded by the
0040  *      TTY_PORT_ flags in the iflags field (and not userspace-visible)
0041  */
0042 #ifndef __KERNEL__
0043 #define ASYNCB_INITIALIZED  31 /* Serial port was initialized */
0044 #define ASYNCB_SUSPENDED    30 /* Serial port is suspended */
0045 #define ASYNCB_NORMAL_ACTIVE    29 /* Normal device is active */
0046 #define ASYNCB_BOOT_AUTOCONF    28 /* Autoconfigure port on bootup */
0047 #define ASYNCB_CLOSING      27 /* Serial port is closing */
0048 #define ASYNCB_CTS_FLOW     26 /* Do CTS flow control */
0049 #define ASYNCB_CHECK_CD     25 /* i.e., CLOCAL */
0050 #define ASYNCB_SHARE_IRQ    24 /* for multifunction cards, no longer used */
0051 #define ASYNCB_CONS_FLOW    23 /* flow control for console  */
0052 #define ASYNCB_FIRST_KERNEL 22
0053 #endif
0054 
0055 /* Masks */
0056 #define ASYNC_HUP_NOTIFY    (1U << ASYNCB_HUP_NOTIFY)
0057 #define ASYNC_SUSPENDED     (1U << ASYNCB_SUSPENDED)
0058 #define ASYNC_FOURPORT      (1U << ASYNCB_FOURPORT)
0059 #define ASYNC_SAK       (1U << ASYNCB_SAK)
0060 #define ASYNC_SPLIT_TERMIOS (1U << ASYNCB_SPLIT_TERMIOS)
0061 #define ASYNC_SPD_HI        (1U << ASYNCB_SPD_HI)
0062 #define ASYNC_SPD_VHI       (1U << ASYNCB_SPD_VHI)
0063 #define ASYNC_SKIP_TEST     (1U << ASYNCB_SKIP_TEST)
0064 #define ASYNC_AUTO_IRQ      (1U << ASYNCB_AUTO_IRQ)
0065 #define ASYNC_SESSION_LOCKOUT   (1U << ASYNCB_SESSION_LOCKOUT)
0066 #define ASYNC_PGRP_LOCKOUT  (1U << ASYNCB_PGRP_LOCKOUT)
0067 #define ASYNC_CALLOUT_NOHUP (1U << ASYNCB_CALLOUT_NOHUP)
0068 #define ASYNC_HARDPPS_CD    (1U << ASYNCB_HARDPPS_CD)
0069 #define ASYNC_SPD_SHI       (1U << ASYNCB_SPD_SHI)
0070 #define ASYNC_LOW_LATENCY   (1U << ASYNCB_LOW_LATENCY)
0071 #define ASYNC_BUGGY_UART    (1U << ASYNCB_BUGGY_UART)
0072 #define ASYNC_AUTOPROBE     (1U << ASYNCB_AUTOPROBE)
0073 #define ASYNC_MAGIC_MULTIPLIER  (1U << ASYNCB_MAGIC_MULTIPLIER)
0074 
0075 #define ASYNC_FLAGS     ((1U << (ASYNCB_LAST_USER + 1)) - 1)
0076 #define ASYNC_DEPRECATED    (ASYNC_SPLIT_TERMIOS | ASYNC_SESSION_LOCKOUT | \
0077         ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
0078 #define ASYNC_USR_MASK      (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \
0079         ASYNC_LOW_LATENCY)
0080 #define ASYNC_SPD_CUST      (ASYNC_SPD_HI|ASYNC_SPD_VHI)
0081 #define ASYNC_SPD_WARP      (ASYNC_SPD_HI|ASYNC_SPD_SHI)
0082 #define ASYNC_SPD_MASK      (ASYNC_SPD_HI|ASYNC_SPD_VHI|ASYNC_SPD_SHI)
0083 
0084 #ifndef __KERNEL__
0085 /* These flags are no longer used (and were always masked from userspace) */
0086 #define ASYNC_INITIALIZED   (1U << ASYNCB_INITIALIZED)
0087 #define ASYNC_NORMAL_ACTIVE (1U << ASYNCB_NORMAL_ACTIVE)
0088 #define ASYNC_BOOT_AUTOCONF (1U << ASYNCB_BOOT_AUTOCONF)
0089 #define ASYNC_CLOSING       (1U << ASYNCB_CLOSING)
0090 #define ASYNC_CTS_FLOW      (1U << ASYNCB_CTS_FLOW)
0091 #define ASYNC_CHECK_CD      (1U << ASYNCB_CHECK_CD)
0092 #define ASYNC_SHARE_IRQ     (1U << ASYNCB_SHARE_IRQ)
0093 #define ASYNC_CONS_FLOW     (1U << ASYNCB_CONS_FLOW)
0094 #define ASYNC_INTERNAL_FLAGS    (~((1U << ASYNCB_FIRST_KERNEL) - 1))
0095 #endif
0096 
0097 #endif