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