Home | History | Annotate | Line # | Download | only in ntpq
ntpq-opts.h revision 1.1.1.6
      1 /*
      2  *  EDIT THIS FILE WITH CAUTION  (ntpq-opts.h)
      3  *
      4  *  It has been AutoGen-ed  June 29, 2015 at 04:31:10 PM by AutoGen 5.18.5
      5  *  From the definitions    ntpq-opts.def
      6  *  and the template file   options
      7  *
      8  * Generated from AutoOpts 41:0:16 templates.
      9  *
     10  *  AutoOpts is a copyrighted work.  This header file is not encumbered
     11  *  by AutoOpts licensing, but is provided under the licensing terms chosen
     12  *  by the ntpq author or copyright holder.  AutoOpts is
     13  *  licensed under the terms of the LGPL.  The redistributable library
     14  *  (``libopts'') is licensed under the terms of either the LGPL or, at the
     15  *  users discretion, the BSD license.  See the AutoOpts and/or libopts sources
     16  *  for details.
     17  *
     18  * The ntpq program is copyrighted and licensed
     19  * under the following terms:
     20  *
     21  *  Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved.
     22  *  This is free software. It is licensed for use, modification and
     23  *  redistribution under the terms of the NTP License, copies of which
     24  *  can be seen at:
     25  *    <http://ntp.org/license>
     26  *    <http://opensource.org/licenses/ntp-license.php>
     27  *
     28  *  Permission to use, copy, modify, and distribute this software and its
     29  *  documentation for any purpose with or without fee is hereby granted,
     30  *  provided that the above copyright notice appears in all copies and that
     31  *  both the copyright notice and this permission notice appear in
     32  *  supporting documentation, and that the name The University of Delaware not be used in
     33  *  advertising or publicity pertaining to distribution of the software
     34  *  without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
     35  *  representations about the suitability this software for any purpose. It
     36  *  is provided "as is" without express or implied warranty.
     37  */
     38 /**
     39  *  This file contains the programmatic interface to the Automated
     40  *  Options generated for the ntpq program.
     41  *  These macros are documented in the AutoGen info file in the
     42  *  "AutoOpts" chapter.  Please refer to that doc for usage help.
     43  */
     44 #ifndef AUTOOPTS_NTPQ_OPTS_H_GUARD
     45 #define AUTOOPTS_NTPQ_OPTS_H_GUARD 1
     46 #include "config.h"
     47 #include <autoopts/options.h>
     48 
     49 /**
     50  *  Ensure that the library used for compiling this generated header is at
     51  *  least as new as the version current when the header template was released
     52  *  (not counting patch version increments).  Also ensure that the oldest
     53  *  tolerable version is at least as old as what was current when the header
     54  *  template was released.
     55  */
     56 #define AO_TEMPLATE_VERSION 167936
     57 #if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
     58  || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
     59 # error option template version mismatches autoopts/options.h header
     60   Choke Me.
     61 #endif
     62 
     63 /**
     64  *  Enumeration of each option type for ntpq
     65  */
     66 typedef enum {
     67     INDEX_OPT_IPV4             =  0,
     68     INDEX_OPT_IPV6             =  1,
     69     INDEX_OPT_COMMAND          =  2,
     70     INDEX_OPT_DEBUG_LEVEL      =  3,
     71     INDEX_OPT_SET_DEBUG_LEVEL  =  4,
     72     INDEX_OPT_INTERACTIVE      =  5,
     73     INDEX_OPT_NUMERIC          =  6,
     74     INDEX_OPT_OLD_RV           =  7,
     75     INDEX_OPT_PEERS            =  8,
     76     INDEX_OPT_WIDE             =  9,
     77     INDEX_OPT_VERSION          = 10,
     78     INDEX_OPT_HELP             = 11,
     79     INDEX_OPT_MORE_HELP        = 12,
     80     INDEX_OPT_SAVE_OPTS        = 13,
     81     INDEX_OPT_LOAD_OPTS        = 14
     82 } teOptIndex;
     83 /** count of all options for ntpq */
     84 #define OPTION_CT    15
     85 /** ntpq version */
     86 #define NTPQ_VERSION       "4.2.8p3"
     87 /** Full ntpq version text */
     88 #define NTPQ_FULL_VERSION  "ntpq 4.2.8p3"
     89 
     90 /**
     91  *  Interface defines for all options.  Replace "n" with the UPPER_CASED
     92  *  option name (as in the teOptIndex enumeration above).
     93  *  e.g. HAVE_OPT(IPV4)
     94  */
     95 #define         DESC(n) (ntpqOptions.pOptDesc[INDEX_OPT_## n])
     96 /** 'true' if an option has been specified in any way */
     97 #define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
     98 /** The string argument to an option. The argument type must be \"string\". */
     99 #define      OPT_ARG(n) (DESC(n).optArg.argString)
    100 /** Mask the option state revealing how an option was specified.
    101  *  It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
    102  * \a OPTST_DEFINED, \a OPTST_RESET or zero.
    103  */
    104 #define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
    105 /** Count of option's occurrances *on the command line*. */
    106 #define    COUNT_OPT(n) (DESC(n).optOccCt)
    107 /** mask of \a OPTST_SET and \a OPTST_DEFINED. */
    108 #define    ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
    109 /** 'true' if \a HAVE_OPT would yield 'false'. */
    110 #define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
    111 /** 'true' if OPTST_DISABLED bit not set. */
    112 #define  ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
    113 /** number of stacked option arguments.
    114  *  Valid only for stacked option arguments. */
    115 #define  STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
    116 /** stacked argument vector.
    117  *  Valid only for stacked option arguments. */
    118 #define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
    119 /** Reset an option. */
    120 #define    CLEAR_OPT(n) STMTS( \
    121                 DESC(n).fOptState &= OPTST_PERSISTENT_MASK;   \
    122                 if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
    123                     DESC(n).fOptState |= OPTST_DISABLED; \
    124                 DESC(n).optCookie = NULL )
    125 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
    126 /**
    127  *  Enumeration of ntpq exit codes
    128  */
    129 typedef enum {
    130     NTPQ_EXIT_SUCCESS         = 0,
    131     NTPQ_EXIT_FAILURE         = 1,
    132     NTPQ_EXIT_USAGE_ERROR     = 64,
    133     NTPQ_EXIT_NO_CONFIG_INPUT = 66,
    134     NTPQ_EXIT_LIBOPTS_FAILURE = 70
    135 }   ntpq_exit_code_t;
    136 /** @} */
    137 /**
    138  *  Make sure there are no #define name conflicts with the option names
    139  */
    140 #ifndef     NO_OPTION_NAME_WARNINGS
    141 # ifdef    IPV4
    142 #  warning undefining IPV4 due to option name conflict
    143 #  undef   IPV4
    144 # endif
    145 # ifdef    IPV6
    146 #  warning undefining IPV6 due to option name conflict
    147 #  undef   IPV6
    148 # endif
    149 # ifdef    COMMAND
    150 #  warning undefining COMMAND due to option name conflict
    151 #  undef   COMMAND
    152 # endif
    153 # ifdef    DEBUG_LEVEL
    154 #  warning undefining DEBUG_LEVEL due to option name conflict
    155 #  undef   DEBUG_LEVEL
    156 # endif
    157 # ifdef    SET_DEBUG_LEVEL
    158 #  warning undefining SET_DEBUG_LEVEL due to option name conflict
    159 #  undef   SET_DEBUG_LEVEL
    160 # endif
    161 # ifdef    INTERACTIVE
    162 #  warning undefining INTERACTIVE due to option name conflict
    163 #  undef   INTERACTIVE
    164 # endif
    165 # ifdef    NUMERIC
    166 #  warning undefining NUMERIC due to option name conflict
    167 #  undef   NUMERIC
    168 # endif
    169 # ifdef    OLD_RV
    170 #  warning undefining OLD_RV due to option name conflict
    171 #  undef   OLD_RV
    172 # endif
    173 # ifdef    PEERS
    174 #  warning undefining PEERS due to option name conflict
    175 #  undef   PEERS
    176 # endif
    177 # ifdef    WIDE
    178 #  warning undefining WIDE due to option name conflict
    179 #  undef   WIDE
    180 # endif
    181 #else  /* NO_OPTION_NAME_WARNINGS */
    182 # undef IPV4
    183 # undef IPV6
    184 # undef COMMAND
    185 # undef DEBUG_LEVEL
    186 # undef SET_DEBUG_LEVEL
    187 # undef INTERACTIVE
    188 # undef NUMERIC
    189 # undef OLD_RV
    190 # undef PEERS
    191 # undef WIDE
    192 #endif  /*  NO_OPTION_NAME_WARNINGS */
    193 
    194 /**
    195  *  Interface defines for specific options.
    196  * @{
    197  */
    198 #define VALUE_OPT_IPV4           '4'
    199 #define VALUE_OPT_IPV6           '6'
    200 #define VALUE_OPT_COMMAND        'c'
    201 #define VALUE_OPT_DEBUG_LEVEL    'd'
    202 #define VALUE_OPT_SET_DEBUG_LEVEL 'D'
    203 
    204 #define OPT_VALUE_SET_DEBUG_LEVEL (DESC(SET_DEBUG_LEVEL).optArg.argInt)
    205 #define VALUE_OPT_INTERACTIVE    'i'
    206 #define VALUE_OPT_NUMERIC        'n'
    207 #define VALUE_OPT_OLD_RV         0x1001
    208 #define VALUE_OPT_PEERS          'p'
    209 #define VALUE_OPT_WIDE           'w'
    210 /** option flag (value) for help-value option */
    211 #define VALUE_OPT_HELP          '?'
    212 /** option flag (value) for more-help-value option */
    213 #define VALUE_OPT_MORE_HELP     '!'
    214 /** option flag (value) for version-value option */
    215 #define VALUE_OPT_VERSION       0x1002
    216 /** option flag (value) for save-opts-value option */
    217 #define VALUE_OPT_SAVE_OPTS     '>'
    218 /** option flag (value) for load-opts-value option */
    219 #define VALUE_OPT_LOAD_OPTS     '<'
    220 #define SET_OPT_SAVE_OPTS(a)   STMTS( \
    221         DESC(SAVE_OPTS).fOptState &= OPTST_PERSISTENT_MASK; \
    222         DESC(SAVE_OPTS).fOptState |= OPTST_SET; \
    223         DESC(SAVE_OPTS).optArg.argString = (char const*)(a))
    224 /*
    225  *  Interface defines not associated with particular options
    226  */
    227 #define ERRSKIP_OPTERR  STMTS(ntpqOptions.fOptSet &= ~OPTPROC_ERRSTOP)
    228 #define ERRSTOP_OPTERR  STMTS(ntpqOptions.fOptSet |= OPTPROC_ERRSTOP)
    229 #define RESTART_OPT(n)  STMTS( \
    230                 ntpqOptions.curOptIdx = (n); \
    231                 ntpqOptions.pzCurOpt  = NULL )
    232 #define START_OPT       RESTART_OPT(1)
    233 #define USAGE(c)        (*ntpqOptions.pUsageProc)(&ntpqOptions, c)
    234 
    235 #ifdef  __cplusplus
    236 extern "C" {
    237 #endif
    238 
    239 
    240 /* * * * * *
    241  *
    242  *  Declare the ntpq option descriptor.
    243  */
    244 extern tOptions ntpqOptions;
    245 
    246 #if defined(ENABLE_NLS)
    247 # ifndef _
    248 #   include <stdio.h>
    249 #   ifndef HAVE_GETTEXT
    250       extern char * gettext(char const *);
    251 #   else
    252 #     include <libintl.h>
    253 #   endif
    254 
    255 # ifndef ATTRIBUTE_FORMAT_ARG
    256 #   define ATTRIBUTE_FORMAT_ARG(_a)
    257 # endif
    258 
    259 static inline char* aoGetsText(char const* pz) ATTRIBUTE_FORMAT_ARG(1);
    260 static inline char* aoGetsText(char const* pz) {
    261     if (pz == NULL) return NULL;
    262     return (char*)gettext(pz);
    263 }
    264 #   define _(s)  aoGetsText(s)
    265 # endif /* _() */
    266 
    267 # define OPT_NO_XLAT_CFG_NAMES  STMTS(ntpqOptions.fOptSet |= \
    268                                     OPTPROC_NXLAT_OPT_CFG;)
    269 # define OPT_NO_XLAT_OPT_NAMES  STMTS(ntpqOptions.fOptSet |= \
    270                                     OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
    271 
    272 # define OPT_XLAT_CFG_NAMES     STMTS(ntpqOptions.fOptSet &= \
    273                                   ~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
    274 # define OPT_XLAT_OPT_NAMES     STMTS(ntpqOptions.fOptSet &= \
    275                                   ~OPTPROC_NXLAT_OPT;)
    276 
    277 #else   /* ENABLE_NLS */
    278 # define OPT_NO_XLAT_CFG_NAMES
    279 # define OPT_NO_XLAT_OPT_NAMES
    280 
    281 # define OPT_XLAT_CFG_NAMES
    282 # define OPT_XLAT_OPT_NAMES
    283 
    284 # ifndef _
    285 #   define _(_s)  _s
    286 # endif
    287 #endif  /* ENABLE_NLS */
    288 
    289 #ifdef  __cplusplus
    290 }
    291 #endif
    292 #endif /* AUTOOPTS_NTPQ_OPTS_H_GUARD */
    293 
    294 /* ntpq-opts.h ends here */
    295