glibc (2.38)

(root)/
include/
bits/
ioctl-types.h
       1  /* Structure types for pre-termios terminal ioctls.  Linux version.
       2     Copyright (C) 1996-2023 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     <https://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  
      27  struct 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
      36  struct 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  */