summaryrefslogtreecommitdiffstats
path: root/bsd/freebsd/contrib/ntp/ntpq/libntpq.h
diff options
context:
space:
mode:
Diffstat (limited to 'bsd/freebsd/contrib/ntp/ntpq/libntpq.h')
-rw-r--r--bsd/freebsd/contrib/ntp/ntpq/libntpq.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/bsd/freebsd/contrib/ntp/ntpq/libntpq.h b/bsd/freebsd/contrib/ntp/ntpq/libntpq.h
new file mode 100644
index 0000000..74caf27
--- /dev/null
+++ b/bsd/freebsd/contrib/ntp/ntpq/libntpq.h
@@ -0,0 +1,109 @@
+/*****************************************************************************
+ *
+ * libntpq.h
+ *
+ * This is the wrapper library for ntpq, the NTP query utility.
+ * This library reuses the sourcecode from ntpq and exports a number
+ * of useful functions in a library that can be linked against applications
+ * that need to query the status of a running ntpd. The whole
+ * communcation is based on mode 6 packets.
+ *
+ * This header file can be used in applications that want to link against
+ * libntpq.
+ *
+ ****************************************************************************/
+
+#include "ntp_net.h"
+
+/* general purpose buffer size */
+#define NTPQ_BUFLEN 2048
+
+/* max. number of associations */
+#ifndef MAXASSOC
+#define MAXASSOC 1024
+#endif
+
+/* general purpose max array size definition */
+#ifndef MAXLIST
+#define MAXLIST 64
+#endif
+
+#ifndef LENHOSTNAME
+#define LENHOSTNAME 256 /* host name is max. 256 characters long */
+#endif
+
+/* NTP Status codes */
+#define NTP_STATUS_INVALID 0
+#define NTP_STATUS_FALSETICKER 1
+#define NTP_STATUS_EXCESS 2
+#define NTP_STATUS_OUTLIER 3
+#define NTP_STATUS_CANDIDATE 4
+#define NTP_STATUS_SELECTED 5
+#define NTP_STATUS_SYSPEER 6
+#define NTP_STATUS_PPSPEER 7
+
+/* NTP association type identifier */
+#define NTP_CLOCKTYPE_UNKNOWN '-'
+#define NTP_CLOCKTYPE_BROADCAST 'b'
+#define NTP_CLOCKTYPE_LOCAL 'l'
+#define NTP_CLOCKTYPE_UNICAST 'u'
+#define NTP_CLOCKTYPE_MULTICAST 'm'
+
+/* Variable Sets */
+#define PEERVARS CTL_OP_READVAR
+#define CLOCKVARS CTL_OP_CLOCKVAR
+
+/* Variable list struct */
+struct ntpq_varlist {
+ char *name;
+ char *value;
+};
+
+/* global variables used for holding snapshots of data */
+#ifndef LIBNTPQ_C
+extern char peervars[];
+extern int peervarlen;
+extern int peervar_assoc;
+extern char clockvars[];
+extern int clockvarlen;
+extern int clockvar_assoc;
+extern char sysvars[];
+extern int sysvarlen;
+extern char *ntpq_resultbuffer[];
+extern struct ntpq_varlist ntpq_varlist[MAXLIST];
+#endif
+
+
+
+/*
+ * Prototypes of exported libary functions
+ */
+
+/* from libntpq.c */
+extern int ntpq_openhost(char *, int);
+extern int ntpq_closehost(void);
+extern int ntpq_queryhost(unsigned short VARSET, associd_t association,
+ char *resultbuf, int maxlen);
+extern size_t ntpq_getvar(const char *resultbuf, size_t datalen,
+ const char *varname, char *varvalue,
+ size_t maxlen);
+extern int ntpq_stripquotes ( char *resultbuf, char *srcbuf, int datalen, int maxlen );
+extern int ntpq_queryhost_peervars(associd_t association, char *resultbuf, int maxlen);
+extern int ntpq_get_peervar( const char *varname, char *varvalue, int maxlen);
+extern size_t ntpq_read_sysvars(char *resultbuf, size_t maxsize);
+extern int ntpq_get_sysvars( void );
+extern int ntpq_read_associations ( unsigned short resultbuf[], int max_entries );
+extern int ntpq_get_assocs ( void );
+extern int ntpq_get_assoc_number ( associd_t associd );
+extern int ntpq_get_assoc_peervars( associd_t associd );
+extern int ntpq_get_assoc_clockvars( associd_t associd );
+extern int ntpq_get_assoc_allvars( associd_t associd );
+extern int ntpq_get_assoc_clocktype(int assoc_index);
+extern int ntpq_read_assoc_peervars( associd_t associd, char *resultbuf, int maxsize );
+extern int ntpq_read_assoc_clockvars( associd_t associd, char *resultbuf, int maxsize );
+
+/* in libntpq_subs.c */
+extern int ntpq_dogetassoc(void);
+extern char ntpq_decodeaddrtype(sockaddr_u *sock);
+extern int ntpq_doquerylist(struct ntpq_varlist *, int, associd_t, int,
+ u_short *, size_t *, const char **datap);