]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/ntp/include/ntp_tty.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / ntp / include / ntp_tty.h
1 /*
2  * ntp_tty.h - header file for serial lines handling
3  */
4 #ifndef NTP_TTY_H
5 #define NTP_TTY_H
6
7 /*
8  * use only one tty model - no use in initialising
9  * a tty in three ways
10  * HAVE_TERMIOS is preferred over HAVE_SYSV_TTYS over HAVE_BSD_TTYS
11  */
12
13 #if defined(HAVE_TERMIOS_H) || defined(HAVE_SYS_TERMIOS_H)
14 # define HAVE_TERMIOS
15 #elif defined(HAVE_TERMIO_H)
16 # define HAVE_SYSV_TTYS
17 #elif defined(HAVE_SGTTY_H)
18 # define HAVE_BSD_TTYS
19 #endif
20
21 #if !defined(VMS) && !defined(SYS_VXWORKS)
22 # if    !defined(HAVE_SYSV_TTYS) \
23         && !defined(HAVE_BSD_TTYS) \
24         && !defined(HAVE_TERMIOS)
25 #include "ERROR: no tty type defined!"
26 # endif
27 #endif /* !VMS && !SYS_VXWORKS*/
28
29 #if defined(HAVE_BSD_TTYS)
30 #include <sgtty.h>
31 #define TTY     struct sgttyb
32 #endif /* HAVE_BSD_TTYS */
33
34 #if defined(HAVE_SYSV_TTYS)
35 #include <termio.h>
36 #define TTY     struct termio
37 #ifndef tcsetattr
38 #define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg)
39 #endif
40 #ifndef TCSANOW
41 #define TCSANOW TCSETA
42 #endif
43 #ifndef TCIFLUSH
44 #define TCIFLUSH 0
45 #endif
46 #ifndef TCOFLUSH
47 #define TCOFLUSH 1
48 #endif
49 #ifndef TCIOFLUSH
50 #define TCIOFLUSH 2
51 #endif
52 #ifndef tcflush
53 #define tcflush(fd, arg) ioctl(fd, TCFLSH, arg)
54 #endif
55 #endif /* HAVE_SYSV_TTYS */
56
57 #if defined(HAVE_TERMIOS)
58 # if defined(HAVE_TERMIOS_H)
59 #  ifdef TERMIOS_NEEDS__SVID3
60 #   define _SVID3
61 #  endif
62 #  include <termios.h>
63 #  ifdef TERMIOS_NEEDS__SVID3
64 #   undef _SVID3
65 #  endif
66 # elif defined(HAVE_SYS_TERMIOS_H)
67 #  include <sys/termios.h>
68 # endif
69 # define TTY    struct termios
70 #endif
71
72 #if defined(HAVE_SYS_MODEM_H)
73 #include <sys/modem.h>
74 #endif
75
76 /*
77  * Line discipline flags.  The depredated ones required line discipline
78  * or streams modules to be installed/loaded in the kernel and are now
79  * ignored.  Leave the LDISC_CLK and other deprecated symbols defined
80  * until 2013 or 2014 to avoid complicating the use of newer drivers on
81  * older ntpd, which is often as easy as dropping in the refclock *.c.
82  */
83 #define LDISC_STD       0x000   /* standard */
84 #define LDISC_CLK       0x001   /* depredated tty_clk \n */
85 #define LDISC_CLKPPS    0x002   /* depredated tty_clk \377 */
86 #define LDISC_ACTS      0x004   /* depredated tty_clk #* */
87 #define LDISC_CHU       0x008   /* depredated */
88 #define LDISC_PPS       0x010   /* depredated */
89 #define LDISC_RAW       0x020   /* raw binary */
90 #define LDISC_ECHO      0x040   /* enable echo */
91 #define LDISC_REMOTE    0x080   /* remote mode */
92 #define LDISC_7O1       0x100   /* 7-bit, odd parity for Z3801A */
93
94 /* function prototypes for ntp_tty.c */
95 #if !defined(SYS_VXWORKS) && !defined(SYS_WINNT)
96 # if defined(HAVE_TERMIOS) || defined(HAVE_SYSV_TTYS) || \
97      defined(HAVE_BSD_TTYS)
98 extern  int     ntp_tty_setup(int, u_int, u_int);
99 extern  int     ntp_tty_ioctl(int, u_int);
100 # endif
101 #endif
102
103 #endif /* NTP_TTY_H */