forked from KolibriOS/kolibrios
147 lines
3.4 KiB
C
147 lines
3.4 KiB
C
/* Copyright (C) 1996 DJ Delorie, see COPYING.DJ for details */
|
|
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
|
#ifndef __dj_include_sys_termios_h_
|
|
#define __dj_include_sys_termios_h_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef __dj_ENFORCE_ANSI_FREESTANDING
|
|
|
|
#ifndef __STRICT_ANSI__
|
|
|
|
#define B0 0x00000000
|
|
#define B50 0x00000001
|
|
#define B75 0x00000002
|
|
#define B110 0x00000003
|
|
#define B134 0x00000004
|
|
#define B150 0x00000005
|
|
#define B200 0x00000006
|
|
#define B300 0x00000007
|
|
#define B600 0x00000008
|
|
#define B1200 0x00000009
|
|
#define B1800 0x0000000a
|
|
#define B2400 0x0000000b
|
|
#define B4800 0x0000000c
|
|
#define B9600 0x0000000d
|
|
#define B19200 0x0000000e
|
|
#define B38400 0x0000000f
|
|
|
|
#define BRKINT 0x00000100
|
|
#define ICRNL 0x00000200
|
|
#define IGNBRK 0x00000400
|
|
#define IGNCR 0x00000800
|
|
#define IGNPAR 0x00001000
|
|
#define INLCR 0x00002000
|
|
#define INPCK 0x00004000
|
|
#define ISTRIP 0x00008000
|
|
#define IXOFF 0x00010000
|
|
#define IXON 0x00020000
|
|
#define PARMRK 0x00040000
|
|
|
|
#define OPOST 0x00000100
|
|
|
|
#define CLOCAL 0x00000100
|
|
#define CREAD 0x00000200
|
|
#define CS5 0x00000000
|
|
#define CS6 0x00000400
|
|
#define CS7 0x00000800
|
|
#define CS8 0x00000c00
|
|
#define CSIZE 0x00000c00
|
|
#define CSTOPB 0x00001000
|
|
#define HUPCL 0x00002000
|
|
#define PARENB 0x00004000
|
|
#define PARODD 0x00008000
|
|
|
|
#define ECHO 0x00000100
|
|
#define ECHOE 0x00000200
|
|
#define ECHOK 0x00000400
|
|
#define ECHONL 0x00000800
|
|
#define ICANON 0x00001000
|
|
#define IEXTEN 0x00002000
|
|
#define ISIG 0x00004000
|
|
#define NOFLSH 0x00008000
|
|
#define TOSTOP 0x00010000
|
|
|
|
#define TCIFLUSH 1
|
|
#define TCOFLUSH 2
|
|
#define TCIOFLUSH 3
|
|
#define TCOOFF 1
|
|
#define TCOON 2
|
|
#define TCIOFF 3
|
|
#define TCION 4
|
|
|
|
#define TCSADRAIN 1
|
|
#define TCSAFLUSH 2
|
|
#define TCSANOW 3
|
|
|
|
#define VEOF 1
|
|
#define VEOL 2
|
|
#define VERASE 3
|
|
#define VINTR 4
|
|
#define VKILL 5
|
|
#define VMIN 6
|
|
#define VQUIT 7
|
|
#define VSTART 8
|
|
#define VSTOP 9
|
|
#define VSUSP 10
|
|
#define VTIME 11
|
|
#define NCCS 12
|
|
|
|
typedef unsigned cc_t;
|
|
typedef unsigned speed_t;
|
|
typedef unsigned tcflag_t;
|
|
|
|
struct termios {
|
|
cc_t c_cc[NCCS];
|
|
tcflag_t c_cflag;
|
|
tcflag_t c_iflag;
|
|
tcflag_t c_lflag;
|
|
tcflag_t c_oflag;
|
|
speed_t c_ispeed;
|
|
speed_t c_ospeed;
|
|
};
|
|
|
|
speed_t cfgetispeed(const struct termios *_termios_p);
|
|
speed_t cfgetospeed(const struct termios *_termios_p);
|
|
int cfsetispeed(struct termios *_termios_p, speed_t _speed);
|
|
int cfsetospeed(struct termios *_termios_p, speed_t _speed);
|
|
int tcdrain(int _fildes);
|
|
int tcflow(int _fildes, int _action);
|
|
int tcflush(int _fildes, int _queue_selector);
|
|
int tcgetattr(int _fildes, struct termios *_termios_p);
|
|
int tcsendbreak(int _fildes, int _duration);
|
|
int tcsetattr(int _fildes, int _optional_actions, const struct termios *_termios_p);
|
|
|
|
#ifndef _POSIX_SOURCE
|
|
|
|
/* Input flags */
|
|
#define IMAXBEL 0x01000000 /* ring bell on input queue full */
|
|
|
|
/* Local flags */
|
|
#define ECHOKE 0x01000000 /* visual erase for line kill */
|
|
#define ECHOCTL 0x02000000 /* echo control chars as ^x */
|
|
|
|
/* Output flags */
|
|
#define ONLCR 0x00000200 /* map NL to CRNL */
|
|
#define OCRNL 0x00000400 /* map CR to NL */
|
|
#define ONOEOT 0x00000800 /* discard EOT's (^D) on output */
|
|
|
|
/* for compatibility */
|
|
void cfmakeraw(struct termios *_termios_p);
|
|
int cfsetspeed(struct termios *_termios_p, speed_t _speed);
|
|
|
|
#endif /* !_POSIX_SOURCE */
|
|
#endif /* !__STRICT_ANSI__ */
|
|
#endif /* !__dj_ENFORCE_ANSI_FREESTANDING */
|
|
|
|
#ifndef __dj_ENFORCE_FUNCTION_CALLS
|
|
#endif /* !__dj_ENFORCE_FUNCTION_CALLS */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* !__dj_include_sys_termios_h_ */
|