"Fossies" - the Fresh Open Source Software Archive

Member "ntp-4.2.8p15/ntpq/ntpq-opts.h" (23 Jun 2020, 10479 Bytes) of package /linux/misc/ntp-4.2.8p15.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "ntpq-opts.h" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 4.2.8p14_vs_4.2.8p15.

    1 /*
    2  *  EDIT THIS FILE WITH CAUTION  (ntpq-opts.h)
    3  *
    4  *  It has been AutoGen-ed  June 23, 2020 at 02:20:48 AM by AutoGen 5.18.5
    5  *  From the definitions    ntpq-opts.def
    6  *  and the template file   options
    7  *
    8  * Generated from AutoOpts 41:1: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-2020 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 167937
   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_REFID            =  9,
   77     INDEX_OPT_WIDE             = 10,
   78     INDEX_OPT_VERSION          = 11,
   79     INDEX_OPT_HELP             = 12,
   80     INDEX_OPT_MORE_HELP        = 13,
   81     INDEX_OPT_SAVE_OPTS        = 14,
   82     INDEX_OPT_LOAD_OPTS        = 15
   83 } teOptIndex;
   84 /** count of all options for ntpq */
   85 #define OPTION_CT    16
   86 /** ntpq version */
   87 #define NTPQ_VERSION       "4.2.8p15"
   88 /** Full ntpq version text */
   89 #define NTPQ_FULL_VERSION  "ntpq 4.2.8p15"
   90 
   91 /**
   92  *  Interface defines for all options.  Replace "n" with the UPPER_CASED
   93  *  option name (as in the teOptIndex enumeration above).
   94  *  e.g. HAVE_OPT(IPV4)
   95  */
   96 #define         DESC(n) (ntpqOptions.pOptDesc[INDEX_OPT_## n])
   97 /** 'true' if an option has been specified in any way */
   98 #define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
   99 /** The string argument to an option. The argument type must be \"string\". */
  100 #define      OPT_ARG(n) (DESC(n).optArg.argString)
  101 /** Mask the option state revealing how an option was specified.
  102  *  It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
  103  * \a OPTST_DEFINED, \a OPTST_RESET or zero.
  104  */
  105 #define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
  106 /** Count of option's occurrances *on the command line*. */
  107 #define    COUNT_OPT(n) (DESC(n).optOccCt)
  108 /** mask of \a OPTST_SET and \a OPTST_DEFINED. */
  109 #define    ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
  110 /** 'true' if \a HAVE_OPT would yield 'false'. */
  111 #define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
  112 /** 'true' if OPTST_DISABLED bit not set. */
  113 #define  ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
  114 /** number of stacked option arguments.
  115  *  Valid only for stacked option arguments. */
  116 #define  STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
  117 /** stacked argument vector.
  118  *  Valid only for stacked option arguments. */
  119 #define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
  120 /** Reset an option. */
  121 #define    CLEAR_OPT(n) STMTS( \
  122                 DESC(n).fOptState &= OPTST_PERSISTENT_MASK;   \
  123                 if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
  124                     DESC(n).fOptState |= OPTST_DISABLED; \
  125                 DESC(n).optCookie = NULL )
  126 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  127 /**
  128  *  Enumeration of ntpq exit codes
  129  */
  130 typedef enum {
  131     NTPQ_EXIT_SUCCESS         = 0,
  132     NTPQ_EXIT_FAILURE         = 1,
  133     NTPQ_EXIT_USAGE_ERROR     = 64,
  134     NTPQ_EXIT_NO_CONFIG_INPUT = 66,
  135     NTPQ_EXIT_LIBOPTS_FAILURE = 70
  136 }   ntpq_exit_code_t;
  137 /** @} */
  138 /**
  139  *  Make sure there are no #define name conflicts with the option names
  140  */
  141 #ifndef     NO_OPTION_NAME_WARNINGS
  142 # ifdef    IPV4
  143 #  warning undefining IPV4 due to option name conflict
  144 #  undef   IPV4
  145 # endif
  146 # ifdef    IPV6
  147 #  warning undefining IPV6 due to option name conflict
  148 #  undef   IPV6
  149 # endif
  150 # ifdef    COMMAND
  151 #  warning undefining COMMAND due to option name conflict
  152 #  undef   COMMAND
  153 # endif
  154 # ifdef    DEBUG_LEVEL
  155 #  warning undefining DEBUG_LEVEL due to option name conflict
  156 #  undef   DEBUG_LEVEL
  157 # endif
  158 # ifdef    SET_DEBUG_LEVEL
  159 #  warning undefining SET_DEBUG_LEVEL due to option name conflict
  160 #  undef   SET_DEBUG_LEVEL
  161 # endif
  162 # ifdef    INTERACTIVE
  163 #  warning undefining INTERACTIVE due to option name conflict
  164 #  undef   INTERACTIVE
  165 # endif
  166 # ifdef    NUMERIC
  167 #  warning undefining NUMERIC due to option name conflict
  168 #  undef   NUMERIC
  169 # endif
  170 # ifdef    OLD_RV
  171 #  warning undefining OLD_RV due to option name conflict
  172 #  undef   OLD_RV
  173 # endif
  174 # ifdef    PEERS
  175 #  warning undefining PEERS due to option name conflict
  176 #  undef   PEERS
  177 # endif
  178 # ifdef    REFID
  179 #  warning undefining REFID due to option name conflict
  180 #  undef   REFID
  181 # endif
  182 # ifdef    WIDE
  183 #  warning undefining WIDE due to option name conflict
  184 #  undef   WIDE
  185 # endif
  186 #else  /* NO_OPTION_NAME_WARNINGS */
  187 # undef IPV4
  188 # undef IPV6
  189 # undef COMMAND
  190 # undef DEBUG_LEVEL
  191 # undef SET_DEBUG_LEVEL
  192 # undef INTERACTIVE
  193 # undef NUMERIC
  194 # undef OLD_RV
  195 # undef PEERS
  196 # undef REFID
  197 # undef WIDE
  198 #endif  /*  NO_OPTION_NAME_WARNINGS */
  199 
  200 /**
  201  *  Interface defines for specific options.
  202  * @{
  203  */
  204 #define VALUE_OPT_IPV4           '4'
  205 #define VALUE_OPT_IPV6           '6'
  206 #define VALUE_OPT_COMMAND        'c'
  207 #define VALUE_OPT_DEBUG_LEVEL    'd'
  208 #define VALUE_OPT_SET_DEBUG_LEVEL 'D'
  209 
  210 #define OPT_VALUE_SET_DEBUG_LEVEL (DESC(SET_DEBUG_LEVEL).optArg.argInt)
  211 #define VALUE_OPT_INTERACTIVE    'i'
  212 #define VALUE_OPT_NUMERIC        'n'
  213 #define VALUE_OPT_OLD_RV         0x1001
  214 #define VALUE_OPT_PEERS          'p'
  215 #define VALUE_OPT_REFID          'r'
  216 
  217 typedef enum {
  218     REFID_HASH, REFID_IPV4
  219 } te_Refid;
  220 #define OPT_REFID_VAL2STR(_v)    optionKeywordName(&DESC(REFID), (_v))
  221 #define OPT_VALUE_REFID          (DESC(REFID).optArg.argEnum)
  222 #define VALUE_OPT_WIDE           'w'
  223 /** option flag (value) for help-value option */
  224 #define VALUE_OPT_HELP          '?'
  225 /** option flag (value) for more-help-value option */
  226 #define VALUE_OPT_MORE_HELP     '!'
  227 /** option flag (value) for version-value option */
  228 #define VALUE_OPT_VERSION       0x1002
  229 /** option flag (value) for save-opts-value option */
  230 #define VALUE_OPT_SAVE_OPTS     '>'
  231 /** option flag (value) for load-opts-value option */
  232 #define VALUE_OPT_LOAD_OPTS     '<'
  233 #define SET_OPT_SAVE_OPTS(a)   STMTS( \
  234         DESC(SAVE_OPTS).fOptState &= OPTST_PERSISTENT_MASK; \
  235         DESC(SAVE_OPTS).fOptState |= OPTST_SET; \
  236         DESC(SAVE_OPTS).optArg.argString = (char const*)(a))
  237 /*
  238  *  Interface defines not associated with particular options
  239  */
  240 #define ERRSKIP_OPTERR  STMTS(ntpqOptions.fOptSet &= ~OPTPROC_ERRSTOP)
  241 #define ERRSTOP_OPTERR  STMTS(ntpqOptions.fOptSet |= OPTPROC_ERRSTOP)
  242 #define RESTART_OPT(n)  STMTS( \
  243                 ntpqOptions.curOptIdx = (n); \
  244                 ntpqOptions.pzCurOpt  = NULL )
  245 #define START_OPT       RESTART_OPT(1)
  246 #define USAGE(c)        (*ntpqOptions.pUsageProc)(&ntpqOptions, c)
  247 
  248 #ifdef  __cplusplus
  249 extern "C" {
  250 #endif
  251 
  252 
  253 /* * * * * *
  254  *
  255  *  Declare the ntpq option descriptor.
  256  */
  257 extern tOptions ntpqOptions;
  258 
  259 #if defined(ENABLE_NLS)
  260 # ifndef _
  261 #   include <stdio.h>
  262 #   ifndef HAVE_GETTEXT
  263       extern char * gettext(char const *);
  264 #   else
  265 #     include <libintl.h>
  266 #   endif
  267 
  268 # ifndef ATTRIBUTE_FORMAT_ARG
  269 #   define ATTRIBUTE_FORMAT_ARG(_a)
  270 # endif
  271 
  272 static inline char* aoGetsText(char const* pz) ATTRIBUTE_FORMAT_ARG(1);
  273 static inline char* aoGetsText(char const* pz) {
  274     if (pz == NULL) return NULL;
  275     return (char*)gettext(pz);
  276 }
  277 #   define _(s)  aoGetsText(s)
  278 # endif /* _() */
  279 
  280 # define OPT_NO_XLAT_CFG_NAMES  STMTS(ntpqOptions.fOptSet |= \
  281                                     OPTPROC_NXLAT_OPT_CFG;)
  282 # define OPT_NO_XLAT_OPT_NAMES  STMTS(ntpqOptions.fOptSet |= \
  283                                     OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
  284 
  285 # define OPT_XLAT_CFG_NAMES     STMTS(ntpqOptions.fOptSet &= \
  286                                   ~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
  287 # define OPT_XLAT_OPT_NAMES     STMTS(ntpqOptions.fOptSet &= \
  288                                   ~OPTPROC_NXLAT_OPT;)
  289 
  290 #else   /* ENABLE_NLS */
  291 # define OPT_NO_XLAT_CFG_NAMES
  292 # define OPT_NO_XLAT_OPT_NAMES
  293 
  294 # define OPT_XLAT_CFG_NAMES
  295 # define OPT_XLAT_OPT_NAMES
  296 
  297 # ifndef _
  298 #   define _(_s)  _s
  299 # endif
  300 #endif  /* ENABLE_NLS */
  301 
  302 #ifdef  __cplusplus
  303 }
  304 #endif
  305 #endif /* AUTOOPTS_NTPQ_OPTS_H_GUARD */
  306 
  307 /* ntpq-opts.h ends here */