#ifndef __ASM_GENERIC_IOCTLS_H
#define __ASM_GENERIC_IOCTLS_H

#include <linux/ioctl.h>

/*
 * These are the most common definitions for tty ioctl numbers.
 * Most of them do not use the recommended _IOC(), but there is
 * probably some source code out there hardcoding the number,
 * so we might as well use them for all new platforms.
 *
 * The architectures that use different values here typically
 * try to be compatible with some Unix variants for the same
 * architecture.
 */

/* 0x54 is just a magic number to make these relatively unique ('T') */

#define TCGETS                0x5401
#define TCSETS                0x5402
#define TCSETSW                0x5403
#define TCSETSF                0x5404
#define TCGETA                0x5405
#define TCSETA                0x5406
#define TCSETAW                0x5407
#define TCSETAF                0x5408
#define TCSBRK                0x5409
#define TCXONC                0x540A
#define TCFLSH                0x540B
#define TIOCEXCL        0x540C
#define TIOCNXCL        0x540D
#define TIOCSCTTY        0x540E
#define TIOCGPGRP        0x540F
#define TIOCSPGRP        0x5410
#define TIOCOUTQ        0x5411
#define TIOCSTI                0x5412
#define TIOCGWINSZ        0x5413
#define TIOCSWINSZ        0x5414
#define TIOCMGET        0x5415
#define TIOCMBIS        0x5416
#define TIOCMBIC        0x5417
#define TIOCMSET        0x5418
#define TIOCGSOFTCAR        0x5419
#define TIOCSSOFTCAR        0x541A
#define FIONREAD        0x541B
#define TIOCINQ                FIONREAD
#define TIOCLINUX        0x541C
#define TIOCCONS        0x541D
#define TIOCGSERIAL        0x541E
#define TIOCSSERIAL        0x541F
#define TIOCPKT                0x5420
#define FIONBIO                0x5421
#define TIOCNOTTY        0x5422
#define TIOCSETD        0x5423
#define TIOCGETD        0x5424
#define TCSBRKP                0x5425        /* Needed for POSIX tcsendbreak() */
#define TIOCSBRK        0x5427  /* BSD compatibility */
#define TIOCCBRK        0x5428  /* BSD compatibility */
#define TIOCGSID        0x5429  /* Return the session ID of FD */
#define TCGETS2                _IOR('T', 0x2A, struct termios2)
#define TCSETS2                _IOW('T', 0x2B, struct termios2)
#define TCSETSW2        _IOW('T', 0x2C, struct termios2)
#define TCSETSF2        _IOW('T', 0x2D, struct termios2)
#define TIOCGRS485        0x542E
#define TIOCSRS485        0x542F
#define TIOCGPTN        _IOR('T', 0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
#define TIOCSPTLCK        _IOW('T', 0x31, int)  /* Lock/unlock Pty */
#define TCGETX                0x5432 /* SYS5 TCGETX compatibility */
#define TCSETX                0x5433
#define TCSETXF                0x5434
#define TCSETXW                0x5435

#define FIONCLEX        0x5450
#define FIOCLEX                0x5451
#define FIOASYNC        0x5452
#define TIOCSERCONFIG        0x5453
#define TIOCSERGWILD        0x5454
#define TIOCSERSWILD        0x5455
#define TIOCGLCKTRMIOS        0x5456
#define TIOCSLCKTRMIOS        0x5457
#define TIOCSERGSTRUCT        0x5458 /* For debugging only */
#define TIOCSERGETLSR   0x5459 /* Get line status register */
#define TIOCSERGETMULTI 0x545A /* Get multiport config  */
#define TIOCSERSETMULTI 0x545B /* Set multiport config */

#define TIOCMIWAIT        0x545C        /* wait for a change on serial input line(s) */
#define TIOCGICOUNT        0x545D        /* read serial port __inline__ interrupt counts */

/*
 * some architectures define FIOQSIZE as 0x545E, which is used for
 * TIOCGHAYESESP on others
 */
#ifndef FIOQSIZE
# define TIOCGHAYESESP        0x545E  /* Get Hayes ESP configuration */
# define TIOCSHAYESESP        0x545F  /* Set Hayes ESP configuration */
# define FIOQSIZE        0x5460
#endif

/* Used for packet mode */
#define TIOCPKT_DATA                 0
#define TIOCPKT_FLUSHREAD         1
#define TIOCPKT_FLUSHWRITE         2
#define TIOCPKT_STOP                 4
#define TIOCPKT_START                 8
#define TIOCPKT_NOSTOP                16
#define TIOCPKT_DOSTOP                32

#define TIOCSER_TEMT        0x01        /* Transmitter physically empty */

#endif /* __ASM_GENERIC_IOCTLS_H */