1/*
2 *  EDIT THIS FILE WITH CAUTION  (ntp-keygen-opts.h)
3 *
4 *  It has been AutoGen-ed  December 10, 2009 at 05:08:20 AM by AutoGen 5.10
5 *  From the definitions    ntp-keygen-opts.def
6 *  and the template file   options
7 *
8 * Generated from AutoOpts 33:0:8 templates.
9 */
10
11/*
12 *  This file was produced by an AutoOpts template.  AutoOpts is a
13 *  copyrighted work.  This header file is not encumbered by AutoOpts
14 *  licensing, but is provided under the licensing terms chosen by the
15 *  ntp-keygen author or copyright holder.  AutoOpts is licensed under
16 *  the terms of the LGPL.  The redistributable library (``libopts'') is
17 *  licensed under the terms of either the LGPL or, at the users discretion,
18 *  the BSD license.  See the AutoOpts and/or libopts sources for details.
19 *
20 * This source file is copyrighted and licensed under the following terms:
21 *
22 * ntp-keygen copyright (c) 1970-2009 David L. Mills and/or others - all rights reserved
23 *
24 * see html/copyright.html
25 */
26/*
27 *  This file contains the programmatic interface to the Automated
28 *  Options generated for the ntp-keygen program.
29 *  These macros are documented in the AutoGen info file in the
30 *  "AutoOpts" chapter.  Please refer to that doc for usage help.
31 */
32#ifndef AUTOOPTS_NTP_KEYGEN_OPTS_H_GUARD
33#define AUTOOPTS_NTP_KEYGEN_OPTS_H_GUARD 1
34#include "config.h"
35#include <autoopts/options.h>
36
37/*
38 *  Ensure that the library used for compiling this generated header is at
39 *  least as new as the version current when the header template was released
40 *  (not counting patch version increments).  Also ensure that the oldest
41 *  tolerable version is at least as old as what was current when the header
42 *  template was released.
43 */
44#define AO_TEMPLATE_VERSION 135168
45#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
46 || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
47# error option template version mismatches autoopts/options.h header
48  Choke Me.
49#endif
50
51/*
52 *  Enumeration of each option:
53 */
54typedef enum {
55    INDEX_OPT_CERTIFICATE      =  0,
56    INDEX_OPT_DEBUG_LEVEL      =  1,
57    INDEX_OPT_SET_DEBUG_LEVEL  =  2,
58    INDEX_OPT_ID_KEY           =  3,
59    INDEX_OPT_GQ_PARAMS        =  4,
60    INDEX_OPT_HOST_KEY         =  5,
61    INDEX_OPT_IFFKEY           =  6,
62    INDEX_OPT_ISSUER_NAME      =  7,
63    INDEX_OPT_MD5KEY           =  8,
64    INDEX_OPT_MODULUS          =  9,
65    INDEX_OPT_PVT_CERT         = 10,
66    INDEX_OPT_PVT_PASSWD       = 11,
67    INDEX_OPT_GET_PVT_PASSWD   = 12,
68    INDEX_OPT_SIGN_KEY         = 13,
69    INDEX_OPT_SUBJECT_NAME     = 14,
70    INDEX_OPT_TRUSTED_CERT     = 15,
71    INDEX_OPT_MV_PARAMS        = 16,
72    INDEX_OPT_MV_KEYS          = 17,
73    INDEX_OPT_VERSION          = 18,
74    INDEX_OPT_HELP             = 19,
75    INDEX_OPT_MORE_HELP        = 20,
76    INDEX_OPT_SAVE_OPTS        = 21,
77    INDEX_OPT_LOAD_OPTS        = 22
78} teOptIndex;
79
80#define OPTION_CT    23
81#define NTP_KEYGEN_VERSION       "4.2.6"
82#define NTP_KEYGEN_FULL_VERSION  "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.6"
83
84/*
85 *  Interface defines for all options.  Replace "n" with the UPPER_CASED
86 *  option name (as in the teOptIndex enumeration above).
87 *  e.g. HAVE_OPT( CERTIFICATE )
88 */
89#define         DESC(n) (ntp_keygenOptions.pOptDesc[INDEX_OPT_## n])
90#define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
91#define      OPT_ARG(n) (DESC(n).optArg.argString)
92#define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
93#define    COUNT_OPT(n) (DESC(n).optOccCt)
94#define    ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
95#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
96#define  ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
97#define  STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
98#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
99#define    CLEAR_OPT(n) STMTS( \
100                DESC(n).fOptState &= OPTST_PERSISTENT_MASK;   \
101                if ( (DESC(n).fOptState & OPTST_INITENABLED) == 0) \
102                    DESC(n).fOptState |= OPTST_DISABLED; \
103                DESC(n).optCookie = NULL )
104
105/*
106 *  Make sure there are no #define name conflicts with the option names
107 */
108#ifndef     NO_OPTION_NAME_WARNINGS
109# ifdef    CERTIFICATE
110#  warning undefining CERTIFICATE due to option name conflict
111#  undef   CERTIFICATE
112# endif
113# ifdef    DEBUG_LEVEL
114#  warning undefining DEBUG_LEVEL due to option name conflict
115#  undef   DEBUG_LEVEL
116# endif
117# ifdef    SET_DEBUG_LEVEL
118#  warning undefining SET_DEBUG_LEVEL due to option name conflict
119#  undef   SET_DEBUG_LEVEL
120# endif
121# ifdef    ID_KEY
122#  warning undefining ID_KEY due to option name conflict
123#  undef   ID_KEY
124# endif
125# ifdef    GQ_PARAMS
126#  warning undefining GQ_PARAMS due to option name conflict
127#  undef   GQ_PARAMS
128# endif
129# ifdef    HOST_KEY
130#  warning undefining HOST_KEY due to option name conflict
131#  undef   HOST_KEY
132# endif
133# ifdef    IFFKEY
134#  warning undefining IFFKEY due to option name conflict
135#  undef   IFFKEY
136# endif
137# ifdef    ISSUER_NAME
138#  warning undefining ISSUER_NAME due to option name conflict
139#  undef   ISSUER_NAME
140# endif
141# ifdef    MD5KEY
142#  warning undefining MD5KEY due to option name conflict
143#  undef   MD5KEY
144# endif
145# ifdef    MODULUS
146#  warning undefining MODULUS due to option name conflict
147#  undef   MODULUS
148# endif
149# ifdef    PVT_CERT
150#  warning undefining PVT_CERT due to option name conflict
151#  undef   PVT_CERT
152# endif
153# ifdef    PVT_PASSWD
154#  warning undefining PVT_PASSWD due to option name conflict
155#  undef   PVT_PASSWD
156# endif
157# ifdef    GET_PVT_PASSWD
158#  warning undefining GET_PVT_PASSWD due to option name conflict
159#  undef   GET_PVT_PASSWD
160# endif
161# ifdef    SIGN_KEY
162#  warning undefining SIGN_KEY due to option name conflict
163#  undef   SIGN_KEY
164# endif
165# ifdef    SUBJECT_NAME
166#  warning undefining SUBJECT_NAME due to option name conflict
167#  undef   SUBJECT_NAME
168# endif
169# ifdef    TRUSTED_CERT
170#  warning undefining TRUSTED_CERT due to option name conflict
171#  undef   TRUSTED_CERT
172# endif
173# ifdef    MV_PARAMS
174#  warning undefining MV_PARAMS due to option name conflict
175#  undef   MV_PARAMS
176# endif
177# ifdef    MV_KEYS
178#  warning undefining MV_KEYS due to option name conflict
179#  undef   MV_KEYS
180# endif
181#else  /* NO_OPTION_NAME_WARNINGS */
182# undef CERTIFICATE
183# undef DEBUG_LEVEL
184# undef SET_DEBUG_LEVEL
185# undef ID_KEY
186# undef GQ_PARAMS
187# undef HOST_KEY
188# undef IFFKEY
189# undef ISSUER_NAME
190# undef MD5KEY
191# undef MODULUS
192# undef PVT_CERT
193# undef PVT_PASSWD
194# undef GET_PVT_PASSWD
195# undef SIGN_KEY
196# undef SUBJECT_NAME
197# undef TRUSTED_CERT
198# undef MV_PARAMS
199# undef MV_KEYS
200#endif  /*  NO_OPTION_NAME_WARNINGS */
201
202/* * * * * *
203 *
204 *  Interface defines for specific options.
205 */
206#define VALUE_OPT_CERTIFICATE    'c'
207#define VALUE_OPT_DEBUG_LEVEL    'd'
208#define VALUE_OPT_SET_DEBUG_LEVEL 'D'
209#define VALUE_OPT_ID_KEY         'e'
210#define VALUE_OPT_GQ_PARAMS      'G'
211#define VALUE_OPT_HOST_KEY       'H'
212#define VALUE_OPT_IFFKEY         'I'
213#define VALUE_OPT_ISSUER_NAME    'i'
214#define VALUE_OPT_MD5KEY         'M'
215#define VALUE_OPT_MODULUS        'm'
216#ifdef OPENSSL
217
218#define OPT_VALUE_MODULUS        (DESC(MODULUS).optArg.argInt)
219#endif /* OPENSSL */
220#define VALUE_OPT_PVT_CERT       'P'
221#define VALUE_OPT_PVT_PASSWD     'p'
222#define VALUE_OPT_GET_PVT_PASSWD 'q'
223#define VALUE_OPT_SIGN_KEY       'S'
224#define VALUE_OPT_SUBJECT_NAME   's'
225#define VALUE_OPT_TRUSTED_CERT   'T'
226#define VALUE_OPT_MV_PARAMS      'V'
227#ifdef OPENSSL
228
229#define OPT_VALUE_MV_PARAMS      (DESC(MV_PARAMS).optArg.argInt)
230#endif /* OPENSSL */
231#define VALUE_OPT_MV_KEYS        'v'
232#ifdef OPENSSL
233
234#define OPT_VALUE_MV_KEYS        (DESC(MV_KEYS).optArg.argInt)
235#endif /* OPENSSL */
236#define VALUE_OPT_HELP          '?'
237#define VALUE_OPT_MORE_HELP     '!'
238#define VALUE_OPT_VERSION       INDEX_OPT_VERSION
239#define VALUE_OPT_SAVE_OPTS     '>'
240#define VALUE_OPT_LOAD_OPTS     '<'
241#define SET_OPT_SAVE_OPTS(a)   STMTS( \
242        DESC(SAVE_OPTS).fOptState &= OPTST_PERSISTENT_MASK; \
243        DESC(SAVE_OPTS).fOptState |= OPTST_SET; \
244        DESC(SAVE_OPTS).optArg.argString = (char const*)(a) )
245/*
246 *  Interface defines not associated with particular options
247 */
248#define ERRSKIP_OPTERR  STMTS( ntp_keygenOptions.fOptSet &= ~OPTPROC_ERRSTOP )
249#define ERRSTOP_OPTERR  STMTS( ntp_keygenOptions.fOptSet |= OPTPROC_ERRSTOP )
250#define RESTART_OPT(n)  STMTS( \
251                ntp_keygenOptions.curOptIdx = (n); \
252                ntp_keygenOptions.pzCurOpt  = NULL )
253#define START_OPT       RESTART_OPT(1)
254#define USAGE(c)        (*ntp_keygenOptions.pUsageProc)( &ntp_keygenOptions, c )
255/* extracted from /usr/local/gnu/share/autogen/opthead.tpl near line 409 */
256
257/* * * * * *
258 *
259 *  Declare the ntp-keygen option descriptor.
260 */
261#ifdef  __cplusplus
262extern "C" {
263#endif
264
265extern tOptions   ntp_keygenOptions;
266
267#if defined(ENABLE_NLS)
268# ifndef _
269#   include <stdio.h>
270    static inline char* aoGetsText( char const* pz ) {
271        if (pz == NULL) return NULL;
272        return (char*)gettext( pz );
273    }
274#   define _(s)  aoGetsText(s)
275# endif /* _() */
276
277# define OPT_NO_XLAT_CFG_NAMES  STMTS(ntp_keygenOptions.fOptSet |= \
278                                    OPTPROC_NXLAT_OPT_CFG;)
279# define OPT_NO_XLAT_OPT_NAMES  STMTS(ntp_keygenOptions.fOptSet |= \
280                                    OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
281
282# define OPT_XLAT_CFG_NAMES     STMTS(ntp_keygenOptions.fOptSet &= \
283                                  ~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
284# define OPT_XLAT_OPT_NAMES     STMTS(ntp_keygenOptions.fOptSet &= \
285                                  ~OPTPROC_NXLAT_OPT;)
286
287#else   /* ENABLE_NLS */
288# define OPT_NO_XLAT_CFG_NAMES
289# define OPT_NO_XLAT_OPT_NAMES
290
291# define OPT_XLAT_CFG_NAMES
292# define OPT_XLAT_OPT_NAMES
293
294# ifndef _
295#   define _(_s)  _s
296# endif
297#endif  /* ENABLE_NLS */
298
299#ifdef  __cplusplus
300}
301#endif
302#endif /* AUTOOPTS_NTP_KEYGEN_OPTS_H_GUARD */
303/* ntp-keygen-opts.h ends here */
304