qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

termbits.h (11550B)


      1 /* Derived from asm-generic/termbits.h */
      2 
      3 #ifndef GENERIC_TERMBITS_H
      4 #define GENERIC_TERMBITS_H
      5 
      6 typedef unsigned char   target_cc_t;        /* cc_t */
      7 typedef unsigned int    target_speed_t;     /* speed_t */
      8 typedef unsigned int    target_tcflag_t;    /* tcflag_t */
      9 
     10 #define TARGET_NCCS 19
     11 
     12 struct target_termios {
     13     target_tcflag_t c_iflag;         /* input mode flags */
     14     target_tcflag_t c_oflag;         /* output mode flags */
     15     target_tcflag_t c_cflag;         /* control mode flags */
     16     target_tcflag_t c_lflag;         /* local mode flags */
     17     target_cc_t c_line;              /* line discipline */
     18     target_cc_t c_cc[TARGET_NCCS];   /* control characters */
     19 };
     20 
     21 struct target_termios2 {
     22     target_tcflag_t c_iflag;       /* input mode flags */
     23     target_tcflag_t c_oflag;       /* output mode flags */
     24     target_tcflag_t c_cflag;       /* control mode flags */
     25     target_tcflag_t c_lflag;       /* local mode flags */
     26     target_cc_t c_line;            /* line discipline */
     27     target_cc_t c_cc[TARGET_NCCS]; /* control characters */
     28     target_speed_t c_ispeed;       /* input speed */
     29     target_speed_t c_ospeed;       /* output speed */
     30 };
     31 
     32 struct target_ktermios {
     33     target_tcflag_t c_iflag;       /* input mode flags */
     34     target_tcflag_t c_oflag;       /* output mode flags */
     35     target_tcflag_t c_cflag;       /* control mode flags */
     36     target_tcflag_t c_lflag;       /* local mode flags */
     37     target_cc_t c_line;            /* line discipline */
     38     target_cc_t c_cc[TARGET_NCCS]; /* control characters */
     39     target_speed_t c_ispeed;       /* input speed */
     40     target_speed_t c_ospeed;       /* output speed */
     41 };
     42 
     43 /* c_cc character offsets */
     44 #define TARGET_VINTR    0
     45 #define TARGET_VQUIT    1
     46 #define TARGET_VERASE   2
     47 #define TARGET_VKILL    3
     48 #define TARGET_VEOF     4
     49 #define TARGET_VTIME    5
     50 #define TARGET_VMIN     6
     51 #define TARGET_VSWTC    7
     52 #define TARGET_VSTART   8
     53 #define TARGET_VSTOP    9
     54 #define TARGET_VSUSP    10
     55 #define TARGET_VEOL     11
     56 #define TARGET_VREPRINT 12
     57 #define TARGET_VDISCARD 13
     58 #define TARGET_VWERASE  14
     59 #define TARGET_VLNEXT   15
     60 #define TARGET_VEOL2    16
     61 
     62 /* c_iflag bits */
     63 #define TARGET_IGNBRK   0000001
     64 #define TARGET_BRKINT   0000002
     65 #define TARGET_IGNPAR   0000004
     66 #define TARGET_PARMRK   0000010
     67 #define TARGET_INPCK    0000020
     68 #define TARGET_ISTRIP   0000040
     69 #define TARGET_INLCR    0000100
     70 #define TARGET_IGNCR    0000200
     71 #define TARGET_ICRNL    0000400
     72 #define TARGET_IUCLC    0001000
     73 #define TARGET_IXON     0002000
     74 #define TARGET_IXANY    0004000
     75 #define TARGET_IXOFF    0010000
     76 #define TARGET_IMAXBEL  0020000
     77 #define TARGET_IUTF8    0040000
     78 
     79 /* c_oflag bits */
     80 #define TARGET_OPOST    0000001
     81 #define TARGET_OLCUC    0000002
     82 #define TARGET_ONLCR    0000004
     83 #define TARGET_OCRNL    0000010
     84 #define TARGET_ONOCR    0000020
     85 #define TARGET_ONLRET   0000040
     86 #define TARGET_OFILL    0000100
     87 #define TARGET_OFDEL    0000200
     88 #define TARGET_NLDLY    0000400
     89 #define  TARGET_NL0     0000000
     90 #define  TARGET_NL1     0000400
     91 #define TARGET_CRDLY    0003000
     92 #define  TARGET_CR0     0000000
     93 #define  TARGET_CR1     0001000
     94 #define  TARGET_CR2     0002000
     95 #define  TARGET_CR3     0003000
     96 #define TARGET_TABDLY   0014000
     97 #define  TARGET_TAB0    0000000
     98 #define  TARGET_TAB1    0004000
     99 #define  TARGET_TAB2    0010000
    100 #define  TARGET_TAB3    0014000
    101 #define  TARGET_XTABS   0014000
    102 #define TARGET_BSDLY    0020000
    103 #define  TARGET_BS0     0000000
    104 #define  TARGET_BS1     0020000
    105 #define TARGET_VTDLY    0040000
    106 #define  TARGET_VT0     0000000
    107 #define  TARGET_VT1     0040000
    108 #define TARGET_FFDLY    0100000
    109 #define  TARGET_FF0     0000000
    110 #define  TARGET_FF1     0100000
    111 
    112 /* c_cflag bit meaning */
    113 #define TARGET_CBAUD      0010017
    114 #define  TARGET_B0        0000000  /* hang up */
    115 #define  TARGET_B50       0000001
    116 #define  TARGET_B75       0000002
    117 #define  TARGET_B110      0000003
    118 #define  TARGET_B134      0000004
    119 #define  TARGET_B150      0000005
    120 #define  TARGET_B200      0000006
    121 #define  TARGET_B300      0000007
    122 #define  TARGET_B600      0000010
    123 #define  TARGET_B1200     0000011
    124 #define  TARGET_B1800     0000012
    125 #define  TARGET_B2400     0000013
    126 #define  TARGET_B4800     0000014
    127 #define  TARGET_B9600     0000015
    128 #define  TARGET_B19200    0000016
    129 #define  TARGET_B38400    0000017
    130 #define  TARGET_EXTA      TARGET_B19200
    131 #define  TARGET_EXTB      TARGET_B38400
    132 #define TARGET_CSIZE      0000060
    133 #define  TARGET_CS5       0000000
    134 #define  TARGET_CS6       0000020
    135 #define  TARGET_CS7       0000040
    136 #define  TARGET_CS8       0000060
    137 #define TARGET_CSTOPB     0000100
    138 #define TARGET_CREAD      0000200
    139 #define TARGET_PARENB     0000400
    140 #define TARGET_PARODD     0001000
    141 #define TARGET_HUPCL      0002000
    142 #define TARGET_CLOCAL     0004000
    143 #define TARGET_CBAUDEX    0010000
    144 #define  TARGET_BOTHER    0010000
    145 #define  TARGET_B57600    0010001
    146 #define  TARGET_B115200   0010002
    147 #define  TARGET_B230400   0010003
    148 #define  TARGET_B460800   0010004
    149 #define  TARGET_B500000   0010005
    150 #define  TARGET_B576000   0010006
    151 #define  TARGET_B921600   0010007
    152 #define  TARGET_B1000000  0010010
    153 #define  TARGET_B1152000  0010011
    154 #define  TARGET_B1500000  0010012
    155 #define  TARGET_B2000000  0010013
    156 #define  TARGET_B2500000  0010014
    157 #define  TARGET_B3000000  0010015
    158 #define  TARGET_B3500000  0010016
    159 #define  TARGET_B4000000  0010017
    160 #define TARGET_CIBAUD     002003600000  /* input baud rate (not used) */
    161 #define TARGET_CMSPAR     010000000000  /* mark or space (stick) parity */
    162 #define TARGET_CRTSCTS    020000000000  /* flow control */
    163 
    164 #define TARGET_IBSHIFT    16            /* Shift from CBAUD to CIBAUD */
    165 
    166 /* c_lflag bits */
    167 #define TARGET_ISIG       0000001
    168 #define TARGET_ICANON     0000002
    169 #define TARGET_XCASE      0000004
    170 #define TARGET_ECHO       0000010
    171 #define TARGET_ECHOE      0000020
    172 #define TARGET_ECHOK      0000040
    173 #define TARGET_ECHONL     0000100
    174 #define TARGET_NOFLSH     0000200
    175 #define TARGET_TOSTOP     0000400
    176 #define TARGET_ECHOCTL    0001000
    177 #define TARGET_ECHOPRT    0002000
    178 #define TARGET_ECHOKE     0004000
    179 #define TARGET_FLUSHO     0010000
    180 #define TARGET_PENDIN     0040000
    181 #define TARGET_IEXTEN     0100000
    182 #define TARGET_EXTPROC    0200000
    183 
    184 /* tcflow() and TCXONC use these */
    185 #define TARGET_TCOOFF          0
    186 #define TARGET_TCOON           1
    187 #define TARGET_TCIOFF          2
    188 #define TARGET_TCION           3
    189 
    190 /* tcflush() and TCFLSH use these */
    191 #define TARGET_TCIFLUSH        0
    192 #define TARGET_TCOFLUSH        1
    193 #define TARGET_TCIOFLUSH       2
    194 
    195 /* tcsetattr uses these */
    196 #define TARGET_TCSANOW         0
    197 #define TARGET_TCSADRAIN       1
    198 #define TARGET_TCSAFLUSH       2
    199 
    200 /* Derived from include/uapi/asm-generic/ioctls.h */
    201 
    202 #define TARGET_TCGETS           0x5401
    203 #define TARGET_TCSETS           0x5402
    204 #define TARGET_TCSETSW          0x5403
    205 #define TARGET_TCSETSF          0x5404
    206 #define TARGET_TCGETA           0x5405
    207 #define TARGET_TCSETA           0x5406
    208 #define TARGET_TCSETAW          0x5407
    209 #define TARGET_TCSETAF          0x5408
    210 #define TARGET_TCSBRK           0x5409
    211 #define TARGET_TCXONC           0x540A
    212 #define TARGET_TCFLSH           0x540B
    213 
    214 #define TARGET_TIOCEXCL         0x540C
    215 #define TARGET_TIOCNXCL         0x540D
    216 #define TARGET_TIOCSCTTY        0x540E
    217 #define TARGET_TIOCGPGRP        0x540F
    218 #define TARGET_TIOCSPGRP        0x5410
    219 #define TARGET_TIOCOUTQ         0x5411
    220 #define TARGET_TIOCSTI          0x5412
    221 #define TARGET_TIOCGWINSZ       0x5413
    222 #define TARGET_TIOCSWINSZ       0x5414
    223 #define TARGET_TIOCMGET         0x5415
    224 #define TARGET_TIOCMBIS         0x5416
    225 #define TARGET_TIOCMBIC         0x5417
    226 #define TARGET_TIOCMSET         0x5418
    227 #define TARGET_TIOCGSOFTCAR     0x5419
    228 #define TARGET_TIOCSSOFTCAR     0x541A
    229 #define TARGET_FIONREAD         0x541B
    230 #define TARGET_TIOCINQ          TARGET_FIONREAD
    231 #define TARGET_TIOCLINUX        0x541C
    232 #define TARGET_TIOCCONS         0x541D
    233 #define TARGET_TIOCGSERIAL      0x541E
    234 #define TARGET_TIOCSSERIAL      0x541F
    235 #define TARGET_TIOCPKT          0x5420
    236 #define TARGET_FIONBIO          0x5421
    237 #define TARGET_TIOCNOTTY        0x5422
    238 #define TARGET_TIOCSETD         0x5423
    239 #define TARGET_TIOCGETD         0x5424
    240 #define TARGET_TCSBRKP          0x5425 /* Needed for POSIX tcsendbreak() */
    241 #define TARGET_TIOCTTYGSTRUCT   0x5426 /* For debugging only */
    242 #define TARGET_TIOCSBRK         0x5427 /* BSD compatibility */
    243 #define TARGET_TIOCCBRK         0x5428 /* BSD compatibility */
    244 #define TARGET_TIOCGSID         0x5429 /* Return the session ID of FD */
    245 #define TARGET_TCGETS2          TARGET_IOR('T', 0x2A, struct target_termios2)
    246 #define TARGET_TCSETS2          TARGET_IOW('T', 0x2B, struct target_termios2)
    247 #define TARGET_TCSETSW2         TARGET_IOW('T', 0x2C, struct target_termios2)
    248 #define TARGET_TCSETSF2         TARGET_IOW('T', 0x2D, struct target_termios2)
    249 #define TARGET_TIOCGRS485       0x542E
    250 #ifndef TARGET_TIOCSRS485
    251 #define TARGET_TIOCSRS485       0x542F
    252 #endif
    253 /* Get Pty Number (of pty-mux device) */
    254 #define TARGET_TIOCGPTN         TARGET_IOR('T', 0x30, unsigned int)
    255 /* Lock/unlock Pty */
    256 #define TARGET_TIOCSPTLCK       TARGET_IOW('T', 0x31, int)
    257 
    258 /* Get primary device node of /dev/console */
    259 #define TARGET_TIOCGDEV        TARGET_IOR('T', 0x32, unsigned int)
    260 #define TARGET_TCGETX          0x5432 /* SYS5 TCGETX compatibility */
    261 #define TARGET_TCSETX          0x5433
    262 #define TARGET_TCSETXF         0x5434
    263 #define TARGET_TCSETXW         0x5435
    264 /* pty: generate signal */
    265 #define TARGET_TIOCSIG         TARGET_IOW('T', 0x36, int)
    266 #define TARGET_TIOCVHANGUP     0x5437
    267 /* Get packet mode state */
    268 #define TARGET_TIOCGPKT        TARGET_IOR('T', 0x38, int)
    269 /* Get Pty lock state */
    270 #define TARGET_TIOCGPTLCK      TARGET_IOR('T', 0x39, int)
    271 /* Get exclusive mode state */
    272 #define TARGET_TIOCGEXCL       TARGET_IOR('T', 0x40, int)
    273 /* Safely open the slave */
    274 #define TARGET_TIOCGPTPEER     TARGET_IO('T', 0x41)
    275 #define TARGET_TIOCGISO7816    TARGET_IOR('T', 0x42, struct serial_iso7816)
    276 #define TARGET_TIOCSISO7816    TARGET_IOWR('T', 0x43, struct serial_iso7816)
    277 
    278 #define TARGET_FIONCLEX         0x5450 /* these numbers need to be adjusted */
    279 #define TARGET_FIOCLEX          0x5451
    280 #define TARGET_FIOASYNC         0x5452
    281 #define TARGET_TIOCSERCONFIG    0x5453
    282 #define TARGET_TIOCSERGWILD     0x5454
    283 #define TARGET_TIOCSERSWILD     0x5455
    284 #define TARGET_TIOCGLCKTRMIOS   0x5456
    285 #define TARGET_TIOCSLCKTRMIOS   0x5457
    286 #define TARGET_TIOCSERGSTRUCT   0x5458 /* For debugging only */
    287 #define TARGET_TIOCSERGETLSR    0x5459 /* Get line status register */
    288 #define TARGET_TIOCSERGETMULTI  0x545A /* Get multiport config  */
    289 #define TARGET_TIOCSERSETMULTI  0x545B /* Set multiport config */
    290 
    291 /* wait for a change on serial input line(s) */
    292 #define TARGET_TIOCMIWAIT       0x545C
    293 /* read serial port inline interrupt counts */
    294 #define TARGET_TIOCGICOUNT      0x545D
    295 #define TARGET_TIOCGHAYESESP    0x545E  /* Get Hayes ESP configuration */
    296 #define TARGET_TIOCSHAYESESP    0x545F  /* Set Hayes ESP configuration */
    297 
    298 /*
    299  * Some arches already define TARGET_FIOQSIZE due to a historical
    300  * conflict with a Hayes modem-specific ioctl value.
    301  */
    302 #ifndef TARGET_FIOQSIZE
    303 # define TARGET_FIOQSIZE        0x5460
    304 #endif
    305 
    306 /* Used for packet mode */
    307 #define TARGET_TIOCPKT_DATA              0
    308 #define TARGET_TIOCPKT_FLUSHREAD         1
    309 #define TARGET_TIOCPKT_FLUSHWRITE        2
    310 #define TARGET_TIOCPKT_STOP              4
    311 #define TARGET_TIOCPKT_START             8
    312 #define TARGET_TIOCPKT_NOSTOP            16
    313 #define TARGET_TIOCPKT_DOSTOP            32
    314 #define TARGET_TIOCPKT_IOCTL             64
    315 
    316 #define TARGET_TIOCSER_TEMT     0x01 /* Transmitter physically empty */
    317 
    318 #endif