1/* Structure types for pre-termios terminal ioctls. Linux version.
2 Copyright (C) 1996-2018 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <http://www.gnu.org/licenses/>. */
18
19#ifndef _SYS_IOCTL_H
20# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
21#endif
22
23/* Get definition of constants for use with `ioctl'. */
24#include <asm/ioctls.h>
25
26
27struct winsize
28 {
29 unsigned short int ws_row;
30 unsigned short int ws_col;
31 unsigned short int ws_xpixel;
32 unsigned short int ws_ypixel;
33 };
34
35#define NCC 8
36struct termio
37 {
38 unsigned short int c_iflag; /* input mode flags */
39 unsigned short int c_oflag; /* output mode flags */
40 unsigned short int c_cflag; /* control mode flags */
41 unsigned short int c_lflag; /* local mode flags */
42 unsigned char c_line; /* line discipline */
43 unsigned char c_cc[NCC]; /* control characters */
44};
45
46/* modem lines */
47#define TIOCM_LE 0x001
48#define TIOCM_DTR 0x002
49#define TIOCM_RTS 0x004
50#define TIOCM_ST 0x008
51#define TIOCM_SR 0x010
52#define TIOCM_CTS 0x020
53#define TIOCM_CAR 0x040
54#define TIOCM_RNG 0x080
55#define TIOCM_DSR 0x100
56#define TIOCM_CD TIOCM_CAR
57#define TIOCM_RI TIOCM_RNG
58
59/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
60
61/* line disciplines */
62#define N_TTY 0
63#define N_SLIP 1
64#define N_MOUSE 2
65#define N_PPP 3
66#define N_STRIP 4
67#define N_AX25 5
68#define N_X25 6 /* X.25 async */
69#define N_6PACK 7
70#define N_MASC 8 /* Mobitex module */
71#define N_R3964 9 /* Simatic R3964 module */
72#define N_PROFIBUS_FDL 10 /* Profibus */
73#define N_IRDA 11 /* Linux IR */
74#define N_SMSBLOCK 12 /* SMS block mode */
75#define N_HDLC 13 /* synchronous HDLC */
76#define N_SYNC_PPP 14 /* synchronous PPP */
77#define N_HCI 15 /* Bluetooth HCI UART */
78