Annotation of embedaddon/ntp/ntpq/libntpq.h, revision 1.1.1.1

1.1       misho       1: /*****************************************************************************
                      2:  *
                      3:  *  libntpq.h
                      4:  *
                      5:  *  This is the wrapper library for ntpq, the NTP query utility. 
                      6:  *  This library reuses the sourcecode from ntpq and exports a number
                      7:  *  of useful functions in a library that can be linked against applications
                      8:  *  that need to query the status of a running ntpd. The whole 
                      9:  *  communcation is based on mode 6 packets.
                     10:  *
                     11:  * This header file can be used in applications that want to link against 
                     12:  * libntpq.
                     13:  *
                     14:  ****************************************************************************/
                     15: 
                     16: #include "ntp_net.h"
                     17: 
                     18: /* general purpose buffer size */
                     19: #define NTPQ_BUFLEN 2048
                     20: 
                     21: /* max. number of associations */
                     22: #ifndef MAXASSOC
                     23: #define MAXASSOC    1024
                     24: #endif
                     25: 
                     26: /* general purpose max array size definition */
                     27: #ifndef MAXLIST
                     28: #define MAXLIST 64
                     29: #endif
                     30: 
                     31: #ifndef LENHOSTNAME
                     32: #define LENHOSTNAME 256     /* host name is max. 256 characters long */
                     33: #endif
                     34: 
                     35: /* NTP Status codes */
                     36: #define NTP_STATUS_INVALID      0
                     37: #define NTP_STATUS_FALSETICKER  1
                     38: #define NTP_STATUS_EXCESS       2
                     39: #define NTP_STATUS_OUTLYER      3
                     40: #define NTP_STATUS_CANDIDATE    4
                     41: #define NTP_STATUS_SELECTED     5
                     42: #define NTP_STATUS_SYSPEER      6
                     43: #define NTP_STATUS_PPSPEER      7
                     44: 
                     45: /* NTP association type identifier */
                     46: #define NTP_CLOCKTYPE_UNKNOWN   '-'
                     47: #define NTP_CLOCKTYPE_BROADCAST 'b'
                     48: #define NTP_CLOCKTYPE_LOCAL     'l'
                     49: #define NTP_CLOCKTYPE_UNICAST   'u'
                     50: #define NTP_CLOCKTYPE_MULTICAST 'm'
                     51: 
                     52: /* Variable Sets */
                     53: #define PEERVARS CTL_OP_READVAR
                     54: #define CLOCKVARS CTL_OP_CLOCKVAR
                     55: 
                     56: /* Variable list struct */
                     57: struct ntpq_varlist {
                     58:        char *name;
                     59:        char *value;
                     60: };
                     61: 
                     62: /* global variables used for holding snapshots of data */
                     63: #ifndef LIBNTPQ_C
                     64: extern char peervars[];
                     65: extern int peervarlen;
                     66: extern int peervar_assoc;
                     67: extern char clockvars[];
                     68: extern int clockvarlen;
                     69: extern int clockvar_assoc;
                     70: extern char sysvars[];
                     71: extern int sysvarlen;
                     72: extern char *ntpq_resultbuffer[];
                     73: extern struct ntpq_varlist ntpq_varlist[MAXLIST];
                     74: #endif
                     75: 
                     76: 
                     77: 
                     78: /* 
                     79:  * Prototypes of exported libary functions
                     80:  */
                     81: 
                     82: /* from libntpq.c */
                     83: extern int ntpq_openhost(char *);
                     84: extern int ntpq_closehost(void);
                     85: extern int ntpq_queryhost(unsigned short VARSET, associd_t association, char *resultbuf, int maxlen);
                     86: extern size_t ntpq_getvar(const char *resultbuf, size_t datalen,
                     87:                          const char *varname, char *varvalue,
                     88:                          size_t maxlen);
                     89: extern int ntpq_stripquotes ( char *resultbuf, char *srcbuf, int datalen, int maxlen );
                     90: extern int ntpq_queryhost_peervars(associd_t association, char *resultbuf, int maxlen);
                     91: extern int ntpq_get_peervar( const char *varname, char *varvalue, int maxlen);
                     92: extern size_t ntpq_read_sysvars(char *resultbuf, size_t maxsize);
                     93: extern int ntpq_get_sysvars( void );
                     94: extern int ntpq_read_associations ( unsigned short resultbuf[], int max_entries );
                     95: extern int ntpq_get_assocs ( void );
                     96: extern int ntpq_get_assoc_number ( associd_t associd );
                     97: extern int ntpq_get_assoc_peervars( associd_t associd );
                     98: extern int ntpq_get_assoc_clockvars( associd_t associd );
                     99: extern int ntpq_get_assoc_allvars( associd_t associd  );
                    100: extern int ntpq_get_assoc_clocktype(int assoc_index);
                    101: extern int ntpq_read_assoc_peervars( associd_t associd, char *resultbuf, int maxsize );
                    102: extern int ntpq_read_assoc_clockvars( associd_t associd, char *resultbuf, int maxsize );
                    103: 
                    104: /* in libntpq_subs.c */
                    105: extern int ntpq_dogetassoc(void);
                    106: extern char ntpq_decodeaddrtype(sockaddr_u *sock);
                    107: extern int ntpq_doquerylist(struct ntpq_varlist *, int , associd_t , int , u_short *, int *, const char **datap );
                    108: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>