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 */ 33typedef union { 34 char *string; 35 long ival; 36 u_long uval; 37 sockaddr_u netnum; 38} arg_v; 39 40/* 41 * Structure for passing parsed command line 42 */ 43struct 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 */ 54struct xcmd { 55 const char *keyword; /* command key word */ 56 void (*handler) (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 */ 65struct 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 */ 76struct ctl_var { 77 u_short code; 78 u_short fmt; 79 const char *text; 80}; 81 82extern int interactive; /* are we prompting? */ 83extern int old_rv; /* use old rv behavior? --old-rv */ 84 85extern void asciize (int, char *, FILE *); 86extern int getnetnum (const char *, sockaddr_u *, char *, int); 87extern void sortassoc (void); 88extern int doquery (int, int, int, int, char *, u_short *, int *, char **); 89extern char * nntohost (sockaddr_u *); 90extern int decodets (char *, l_fp *); 91extern int decodeuint (char *, u_long *); 92extern int nextvar (int *, char **, char **, char **); 93extern int decodetime (char *, l_fp *); 94extern void printvars (int, char *, int, int, int, FILE *); 95extern int decodeint (char *, long *); 96extern int findvar (char *, struct ctl_var *, int code); 97