]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/ntp/ntpq/ntpq.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / ntp / ntpq / ntpq.h
1 /*
2  * ntpq.h - definitions of interest to ntpq
3  */
4 #include "ntp_fp.h"
5 #include "ntp.h"
6 #include "ntp_control.h"
7 #include "ntp_string.h"
8 #include "ntp_malloc.h"
9
10 /*
11  * Maximum number of arguments
12  */
13 #define MAXARGS 4
14
15 /*
16  * Flags for forming descriptors.
17  */
18 /*
19  * Flags for forming descriptors.
20  */
21 #define OPT             0x80    /* this argument is optional, or'd with type */
22
23 #define NO              0x0
24 #define NTP_STR         0x1     /* string argument */
25 #define NTP_UINT        0x2     /* unsigned integer */
26 #define NTP_INT         0x3     /* signed integer */
27 #define NTP_ADD         0x4     /* IP network address */
28 #define IP_VERSION      0x5     /* IP version */
29
30 /*
31  * Arguments are returned in a union
32  */
33 typedef union {
34         char *string;
35         long ival;
36         u_long uval;
37         struct sockaddr_storage netnum;
38 } arg_v;
39
40 /*
41  * Structure for passing parsed command line
42  */
43 struct parse {
44         const char *keyword;
45         arg_v argval[MAXARGS];
46         int nargs;
47 };
48
49 /*
50  * ntpdc includes a command parser which could charitably be called
51  * crude.  The following structure is used to define the command
52  * syntax.
53  */
54 struct xcmd {
55   const char *keyword;          /* command key word */
56         void (*handler) P((struct parse *, FILE *));    /* command handler */
57         u_char arg[MAXARGS];    /* descriptors for arguments */
58   const char *desc[MAXARGS];    /* descriptions for arguments */
59   const char *comment;
60 };
61
62 /*
63  * Structure to hold association data
64  */
65 struct association {
66         u_short assid;
67         u_short status;
68 };
69
70 #define MAXASSOC        1024
71
72 /*
73  * Structure for translation tables between text format
74  * variable indices and text format.
75  */
76 struct ctl_var {
77         u_short code;
78         u_short fmt;
79         const char *text;
80 };
81
82 extern  void    asciize         P((int, char *, FILE *));
83 extern  int     getnetnum       P((const char *, struct sockaddr_storage *, char *, int));
84 extern  void    sortassoc       P((void));
85 extern  int     doquery         P((int, int, int, int, char *, u_short *, int *, char **));
86 extern  char *  nntohost        P((struct sockaddr_storage *));
87 extern  int     decodets        P((char *, l_fp *));
88 extern  int     decodeuint      P((char *, u_long *));
89 extern  int     nextvar         P((int *, char **, char **, char **));
90 extern  int     decodetime      P((char *, l_fp *));
91 extern  void    printvars       P((int, char *, int, int, FILE *));
92 extern  int     decodeint       P((char *, long *));
93 extern  int     findvar         P((char *, struct ctl_var *, int code));