1181834Sroberto/*
2181834Sroberto *  EDIT THIS FILE WITH CAUTION  (ntpdsim-opts.c)
3181834Sroberto *
4200576Sroberto *  It has been AutoGen-ed  Tuesday December  8, 2009 at 08:13:13 AM EST
5181834Sroberto *  From the definitions    ntpdsim-opts.def
6181834Sroberto *  and the template file   options
7181834Sroberto *
8181834Sroberto * Generated from AutoOpts 29:0:4 templates.
9181834Sroberto */
10181834Sroberto
11181834Sroberto/*
12181834Sroberto *  This file was produced by an AutoOpts template.  AutoOpts is a
13181834Sroberto *  copyrighted work.  This source file is not encumbered by AutoOpts
14181834Sroberto *  licensing, but is provided under the licensing terms chosen by the
15181834Sroberto *  ntpdsim author or copyright holder.  AutoOpts is licensed under
16181834Sroberto *  the terms of the LGPL.  The redistributable library (``libopts'') is
17181834Sroberto *  licensed under the terms of either the LGPL or, at the users discretion,
18181834Sroberto *  the BSD license.  See the AutoOpts and/or libopts sources for details.
19181834Sroberto *
20181834Sroberto * This source file is copyrighted and licensed under the following terms:
21181834Sroberto *
22200576Sroberto * ntpdsim copyright 1970-2009 David L. Mills and/or others - all rights reserved
23181834Sroberto *
24181834Sroberto * see html/copyright.html
25181834Sroberto */
26181834Sroberto
27181834Sroberto
28181834Sroberto#include <limits.h>
29181834Sroberto
30181834Sroberto#define OPTION_CODE_COMPILE 1
31181834Sroberto#include "ntpdsim-opts.h"
32181834Sroberto
33181834Sroberto#ifdef  __cplusplus
34181834Srobertoextern "C" {
35181834Sroberto#endif
36181834SrobertotSCC zCopyright[] =
37200576Sroberto       "ntpdsim copyright (c) 1970-2009 David L. Mills and/or others, all rights reserved";
38181834SrobertotSCC zCopyrightNotice[] =
39181834Sroberto
40181834Sroberto/* extracted from ../include/copyright.def near line 8 */
41181834Sroberto"see html/copyright.html";
42181834Srobertoextern tUsageProc optionUsage;
43181834Sroberto
44181834Sroberto/*
45181834Sroberto *  global included definitions
46181834Sroberto */
47181834Sroberto#ifdef __windows
48181834Sroberto  extern int atoi(const char*);
49181834Sroberto#else
50181834Sroberto# include <stdlib.h>
51181834Sroberto#endif
52181834Sroberto
53181834Sroberto#ifndef NULL
54181834Sroberto#  define NULL 0
55181834Sroberto#endif
56181834Sroberto#ifndef EXIT_SUCCESS
57181834Sroberto#  define  EXIT_SUCCESS 0
58181834Sroberto#endif
59181834Sroberto#ifndef EXIT_FAILURE
60181834Sroberto#  define  EXIT_FAILURE 1
61181834Sroberto#endif
62181834Sroberto/*
63181834Sroberto *  Ipv4 option description:
64181834Sroberto */
65181834SrobertotSCC    zIpv4Text[] =
66181834Sroberto        "Force IPv4 DNS name resolution";
67181834SrobertotSCC    zIpv4_NAME[]               = "IPV4";
68181834SrobertotSCC    zIpv4_Name[]               = "ipv4";
69181834Sroberto#define IPV4_FLAGS       (OPTST_DISABLED)
70181834Sroberto
71181834Sroberto/*
72181834Sroberto *  Ipv6 option description:
73181834Sroberto */
74181834SrobertotSCC    zIpv6Text[] =
75181834Sroberto        "Force IPv6 DNS name resolution";
76181834SrobertotSCC    zIpv6_NAME[]               = "IPV6";
77181834SrobertotSCC    zIpv6_Name[]               = "ipv6";
78181834Sroberto#define IPV6_FLAGS       (OPTST_DISABLED)
79181834Sroberto
80181834Sroberto/*
81181834Sroberto *  Authreq option description with
82181834Sroberto *  "Must also have options" and "Incompatible options":
83181834Sroberto */
84181834SrobertotSCC    zAuthreqText[] =
85181834Sroberto        "Require crypto authentication";
86181834SrobertotSCC    zAuthreq_NAME[]            = "AUTHREQ";
87181834SrobertotSCC    zAuthreq_Name[]            = "authreq";
88181834Srobertostatic const int
89181834Sroberto    aAuthreqCantList[] = {
90181834Sroberto    INDEX_OPT_AUTHNOREQ, NO_EQUIVALENT };
91181834Sroberto#define AUTHREQ_FLAGS       (OPTST_DISABLED)
92181834Sroberto
93181834Sroberto/*
94181834Sroberto *  Authnoreq option description with
95181834Sroberto *  "Must also have options" and "Incompatible options":
96181834Sroberto */
97181834SrobertotSCC    zAuthnoreqText[] =
98181834Sroberto        "Do not require crypto authentication";
99181834SrobertotSCC    zAuthnoreq_NAME[]          = "AUTHNOREQ";
100181834SrobertotSCC    zAuthnoreq_Name[]          = "authnoreq";
101181834Srobertostatic const int
102181834Sroberto    aAuthnoreqCantList[] = {
103181834Sroberto    INDEX_OPT_AUTHREQ, NO_EQUIVALENT };
104181834Sroberto#define AUTHNOREQ_FLAGS       (OPTST_DISABLED)
105181834Sroberto
106181834Sroberto/*
107181834Sroberto *  Bcastsync option description:
108181834Sroberto */
109181834SrobertotSCC    zBcastsyncText[] =
110181834Sroberto        "Allow us to sync to broadcast servers";
111181834SrobertotSCC    zBcastsync_NAME[]          = "BCASTSYNC";
112181834SrobertotSCC    zBcastsync_Name[]          = "bcastsync";
113181834Sroberto#define BCASTSYNC_FLAGS       (OPTST_DISABLED)
114181834Sroberto
115181834Sroberto/*
116181834Sroberto *  Simbroadcastdelay option description:
117181834Sroberto */
118181834SrobertotSCC    zSimbroadcastdelayText[] =
119181834Sroberto        "Simulator broadcast delay";
120181834SrobertotSCC    zSimbroadcastdelay_NAME[]  = "SIMBROADCASTDELAY";
121181834SrobertotSCC    zSimbroadcastdelay_Name[]  = "simbroadcastdelay";
122181834Sroberto#define SIMBROADCASTDELAY_FLAGS       (OPTST_DISABLED \
123181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
124181834Sroberto
125181834Sroberto/*
126181834Sroberto *  Configfile option description:
127181834Sroberto */
128181834SrobertotSCC    zConfigfileText[] =
129181834Sroberto        "configuration file name";
130181834SrobertotSCC    zConfigfile_NAME[]         = "CONFIGFILE";
131181834SrobertotSCC    zConfigfile_Name[]         = "configfile";
132181834Sroberto#define CONFIGFILE_FLAGS       (OPTST_DISABLED \
133181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
134181834Sroberto
135181834Sroberto/*
136181834Sroberto *  Phasenoise option description:
137181834Sroberto */
138181834SrobertotSCC    zPhasenoiseText[] =
139181834Sroberto        "Phase noise level";
140181834SrobertotSCC    zPhasenoise_NAME[]         = "PHASENOISE";
141181834SrobertotSCC    zPhasenoise_Name[]         = "phasenoise";
142181834Sroberto#define PHASENOISE_FLAGS       (OPTST_DISABLED \
143181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
144181834Sroberto
145181834Sroberto/*
146181834Sroberto *  Debug_Level option description:
147181834Sroberto */
148181834Sroberto#ifdef DEBUG
149181834SrobertotSCC    zDebug_LevelText[] =
150181834Sroberto        "Increase output debug message level";
151181834SrobertotSCC    zDebug_Level_NAME[]        = "DEBUG_LEVEL";
152181834SrobertotSCC    zDebug_Level_Name[]        = "debug-level";
153181834Sroberto#define DEBUG_LEVEL_FLAGS       (OPTST_DISABLED)
154181834Sroberto
155181834Sroberto#else   /* disable Debug_Level */
156181834Sroberto#define VALUE_OPT_DEBUG_LEVEL NO_EQUIVALENT
157181834Sroberto#define DEBUG_LEVEL_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
158181834Sroberto#define zDebug_LevelText       NULL
159181834Sroberto#define zDebug_Level_NAME      NULL
160181834Sroberto#define zDebug_Level_Name      NULL
161181834Sroberto#endif  /* DEBUG */
162181834Sroberto
163181834Sroberto/*
164181834Sroberto *  Set_Debug_Level option description:
165181834Sroberto */
166181834Sroberto#ifdef DEBUG
167181834SrobertotSCC    zSet_Debug_LevelText[] =
168181834Sroberto        "Set the output debug message level";
169181834SrobertotSCC    zSet_Debug_Level_NAME[]    = "SET_DEBUG_LEVEL";
170181834SrobertotSCC    zSet_Debug_Level_Name[]    = "set-debug-level";
171181834Sroberto#define SET_DEBUG_LEVEL_FLAGS       (OPTST_DISABLED \
172181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
173181834Sroberto
174181834Sroberto#else   /* disable Set_Debug_Level */
175181834Sroberto#define VALUE_OPT_SET_DEBUG_LEVEL NO_EQUIVALENT
176181834Sroberto#define SET_DEBUG_LEVEL_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
177181834Sroberto#define zSet_Debug_LevelText       NULL
178181834Sroberto#define zSet_Debug_Level_NAME      NULL
179181834Sroberto#define zSet_Debug_Level_Name      NULL
180181834Sroberto#endif  /* DEBUG */
181181834Sroberto
182181834Sroberto/*
183181834Sroberto *  Driftfile option description:
184181834Sroberto */
185181834SrobertotSCC    zDriftfileText[] =
186181834Sroberto        "frequency drift file name";
187181834SrobertotSCC    zDriftfile_NAME[]          = "DRIFTFILE";
188181834SrobertotSCC    zDriftfile_Name[]          = "driftfile";
189181834Sroberto#define DRIFTFILE_FLAGS       (OPTST_DISABLED \
190181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
191181834Sroberto
192181834Sroberto/*
193181834Sroberto *  Panicgate option description:
194181834Sroberto */
195181834SrobertotSCC    zPanicgateText[] =
196181834Sroberto        "Allow the first adjustment to be Big";
197181834SrobertotSCC    zPanicgate_NAME[]          = "PANICGATE";
198181834SrobertotSCC    zPanicgate_Name[]          = "panicgate";
199181834Sroberto#define PANICGATE_FLAGS       (OPTST_DISABLED)
200181834Sroberto
201181834Sroberto/*
202181834Sroberto *  Simslew option description:
203181834Sroberto */
204181834SrobertotSCC    zSimslewText[] =
205181834Sroberto        "Simuator slew";
206181834SrobertotSCC    zSimslew_NAME[]            = "SIMSLEW";
207181834SrobertotSCC    zSimslew_Name[]            = "simslew";
208181834Sroberto#define SIMSLEW_FLAGS       (OPTST_DISABLED \
209181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
210181834Sroberto
211181834Sroberto/*
212181834Sroberto *  Jaildir option description:
213181834Sroberto */
214181834SrobertotSCC    zJaildirText[] =
215181834Sroberto        "Jail directory";
216181834SrobertotSCC    zJaildir_NAME[]            = "JAILDIR";
217181834SrobertotSCC    zJaildir_Name[]            = "jaildir";
218181834Sroberto#define JAILDIR_FLAGS       (OPTST_DISABLED \
219181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
220181834Sroberto
221181834Sroberto/*
222181834Sroberto *  Interface option description:
223181834Sroberto */
224181834SrobertotSCC    zInterfaceText[] =
225181834Sroberto        "Listen on interface";
226181834SrobertotSCC    zInterface_NAME[]          = "INTERFACE";
227181834SrobertotSCC    zInterface_Name[]          = "interface";
228181834Sroberto#define INTERFACE_FLAGS       (OPTST_DISABLED | OPTST_STACKED \
229181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
230181834Sroberto
231181834Sroberto/*
232181834Sroberto *  Keyfile option description:
233181834Sroberto */
234181834SrobertotSCC    zKeyfileText[] =
235181834Sroberto        "path to symmetric keys";
236181834SrobertotSCC    zKeyfile_NAME[]            = "KEYFILE";
237181834SrobertotSCC    zKeyfile_Name[]            = "keyfile";
238181834Sroberto#define KEYFILE_FLAGS       (OPTST_DISABLED \
239181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
240181834Sroberto
241181834Sroberto/*
242181834Sroberto *  Logfile option description:
243181834Sroberto */
244181834SrobertotSCC    zLogfileText[] =
245181834Sroberto        "path to the log file";
246181834SrobertotSCC    zLogfile_NAME[]            = "LOGFILE";
247181834SrobertotSCC    zLogfile_Name[]            = "logfile";
248181834Sroberto#define LOGFILE_FLAGS       (OPTST_DISABLED \
249181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
250181834Sroberto
251181834Sroberto/*
252181834Sroberto *  Novirtualips option description:
253181834Sroberto */
254181834SrobertotSCC    zNovirtualipsText[] =
255181834Sroberto        "Do not listen to virtual IPs";
256181834SrobertotSCC    zNovirtualips_NAME[]       = "NOVIRTUALIPS";
257181834SrobertotSCC    zNovirtualips_Name[]       = "novirtualips";
258181834Sroberto#define NOVIRTUALIPS_FLAGS       (OPTST_DISABLED)
259181834Sroberto
260181834Sroberto/*
261181834Sroberto *  Modifymmtimer option description:
262181834Sroberto */
263181834Sroberto#ifdef SYS_WINNT
264181834SrobertotSCC    zModifymmtimerText[] =
265181834Sroberto        "Modify Multimedia Timer (Windows only)";
266181834SrobertotSCC    zModifymmtimer_NAME[]      = "MODIFYMMTIMER";
267181834SrobertotSCC    zModifymmtimer_Name[]      = "modifymmtimer";
268181834Sroberto#define MODIFYMMTIMER_FLAGS       (OPTST_DISABLED)
269181834Sroberto
270181834Sroberto#else   /* disable Modifymmtimer */
271181834Sroberto#define VALUE_OPT_MODIFYMMTIMER NO_EQUIVALENT
272181834Sroberto#define MODIFYMMTIMER_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
273181834Sroberto#define zModifymmtimerText       NULL
274181834Sroberto#define zModifymmtimer_NAME      NULL
275181834Sroberto#define zModifymmtimer_Name      NULL
276181834Sroberto#endif  /* SYS_WINNT */
277181834Sroberto
278181834Sroberto/*
279181834Sroberto *  Nofork option description:
280181834Sroberto */
281181834SrobertotSCC    zNoforkText[] =
282181834Sroberto        "Do not fork";
283181834SrobertotSCC    zNofork_NAME[]             = "NOFORK";
284181834SrobertotSCC    zNofork_Name[]             = "nofork";
285181834Sroberto#define NOFORK_FLAGS       (OPTST_DISABLED)
286181834Sroberto
287181834Sroberto/*
288181834Sroberto *  Nice option description:
289181834Sroberto */
290181834SrobertotSCC    zNiceText[] =
291181834Sroberto        "Run at high priority";
292181834SrobertotSCC    zNice_NAME[]               = "NICE";
293181834SrobertotSCC    zNice_Name[]               = "nice";
294181834Sroberto#define NICE_FLAGS       (OPTST_DISABLED)
295181834Sroberto
296181834Sroberto/*
297181834Sroberto *  Servertime option description:
298181834Sroberto */
299181834SrobertotSCC    zServertimeText[] =
300181834Sroberto        "Server time";
301181834SrobertotSCC    zServertime_NAME[]         = "SERVERTIME";
302181834SrobertotSCC    zServertime_Name[]         = "servertime";
303181834Sroberto#define SERVERTIME_FLAGS       (OPTST_DISABLED \
304181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
305181834Sroberto
306181834Sroberto/*
307181834Sroberto *  Pidfile option description:
308181834Sroberto */
309181834SrobertotSCC    zPidfileText[] =
310181834Sroberto        "path to the PID file";
311181834SrobertotSCC    zPidfile_NAME[]            = "PIDFILE";
312181834SrobertotSCC    zPidfile_Name[]            = "pidfile";
313181834Sroberto#define PIDFILE_FLAGS       (OPTST_DISABLED \
314181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
315181834Sroberto
316181834Sroberto/*
317181834Sroberto *  Priority option description:
318181834Sroberto */
319181834SrobertotSCC    zPriorityText[] =
320181834Sroberto        "Process priority";
321181834SrobertotSCC    zPriority_NAME[]           = "PRIORITY";
322181834SrobertotSCC    zPriority_Name[]           = "priority";
323181834Sroberto#define PRIORITY_FLAGS       (OPTST_DISABLED \
324181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
325181834Sroberto
326181834Sroberto/*
327181834Sroberto *  Quit option description:
328181834Sroberto */
329181834SrobertotSCC    zQuitText[] =
330181834Sroberto        "Set the time and quit";
331181834SrobertotSCC    zQuit_NAME[]               = "QUIT";
332181834SrobertotSCC    zQuit_Name[]               = "quit";
333181834Sroberto#define QUIT_FLAGS       (OPTST_DISABLED)
334181834Sroberto
335181834Sroberto/*
336181834Sroberto *  Propagationdelay option description:
337181834Sroberto */
338181834SrobertotSCC    zPropagationdelayText[] =
339181834Sroberto        "Broadcast/propagation delay";
340181834SrobertotSCC    zPropagationdelay_NAME[]   = "PROPAGATIONDELAY";
341181834SrobertotSCC    zPropagationdelay_Name[]   = "propagationdelay";
342181834Sroberto#define PROPAGATIONDELAY_FLAGS       (OPTST_DISABLED \
343181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
344181834Sroberto
345181834Sroberto/*
346181834Sroberto *  Updateinterval option description:
347181834Sroberto */
348181834SrobertotSCC    zUpdateintervalText[] =
349181834Sroberto        "interval in seconds between scans for new or dropped interfaces";
350181834SrobertotSCC    zUpdateinterval_NAME[]     = "UPDATEINTERVAL";
351181834SrobertotSCC    zUpdateinterval_Name[]     = "updateinterval";
352181834Sroberto#define UPDATEINTERVAL_FLAGS       (OPTST_DISABLED \
353181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
354181834Sroberto
355181834Sroberto/*
356181834Sroberto *  Statsdir option description:
357181834Sroberto */
358181834SrobertotSCC    zStatsdirText[] =
359181834Sroberto        "Statistics file location";
360181834SrobertotSCC    zStatsdir_NAME[]           = "STATSDIR";
361181834SrobertotSCC    zStatsdir_Name[]           = "statsdir";
362181834Sroberto#define STATSDIR_FLAGS       (OPTST_DISABLED \
363181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
364181834Sroberto
365181834Sroberto/*
366181834Sroberto *  Endsimtime option description:
367181834Sroberto */
368181834SrobertotSCC    zEndsimtimeText[] =
369181834Sroberto        "Simulation end time";
370181834SrobertotSCC    zEndsimtime_NAME[]         = "ENDSIMTIME";
371181834SrobertotSCC    zEndsimtime_Name[]         = "endsimtime";
372181834Sroberto#define ENDSIMTIME_FLAGS       (OPTST_DISABLED \
373181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
374181834Sroberto
375181834Sroberto/*
376181834Sroberto *  Trustedkey option description:
377181834Sroberto */
378181834SrobertotSCC    zTrustedkeyText[] =
379181834Sroberto        "Trusted key number";
380181834SrobertotSCC    zTrustedkey_NAME[]         = "TRUSTEDKEY";
381181834SrobertotSCC    zTrustedkey_Name[]         = "trustedkey";
382181834Sroberto#define TRUSTEDKEY_FLAGS       (OPTST_DISABLED | OPTST_STACKED \
383181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
384181834Sroberto
385181834Sroberto/*
386181834Sroberto *  Freqerr option description:
387181834Sroberto */
388181834SrobertotSCC    zFreqerrText[] =
389181834Sroberto        "Simulation frequency error";
390181834SrobertotSCC    zFreqerr_NAME[]            = "FREQERR";
391181834SrobertotSCC    zFreqerr_Name[]            = "freqerr";
392181834Sroberto#define FREQERR_FLAGS       (OPTST_DISABLED \
393181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
394181834Sroberto
395181834Sroberto/*
396181834Sroberto *  Walknoise option description:
397181834Sroberto */
398181834SrobertotSCC    zWalknoiseText[] =
399181834Sroberto        "Simulation random walk noise";
400181834SrobertotSCC    zWalknoise_NAME[]          = "WALKNOISE";
401181834SrobertotSCC    zWalknoise_Name[]          = "walknoise";
402181834Sroberto#define WALKNOISE_FLAGS       (OPTST_DISABLED \
403181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
404181834Sroberto
405181834Sroberto/*
406181834Sroberto *  User option description:
407181834Sroberto */
408181834SrobertotSCC    zUserText[] =
409181834Sroberto        "Run as userid (or userid:groupid)";
410181834SrobertotSCC    zUser_NAME[]               = "USER";
411181834SrobertotSCC    zUser_Name[]               = "user";
412181834Sroberto#define USER_FLAGS       (OPTST_DISABLED \
413181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
414181834Sroberto
415181834Sroberto/*
416181834Sroberto *  Var option description:
417181834Sroberto */
418181834SrobertotSCC    zVarText[] =
419181834Sroberto        "make ARG an ntp variable (RW)";
420181834SrobertotSCC    zVar_NAME[]                = "VAR";
421181834SrobertotSCC    zVar_Name[]                = "var";
422181834Sroberto#define VAR_FLAGS       (OPTST_DISABLED | OPTST_STACKED \
423181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
424181834Sroberto
425181834Sroberto/*
426181834Sroberto *  Dvar option description:
427181834Sroberto */
428181834SrobertotSCC    zDvarText[] =
429181834Sroberto        "make ARG an ntp variable (RW|DEF)";
430181834SrobertotSCC    zDvar_NAME[]               = "DVAR";
431181834SrobertotSCC    zDvar_Name[]               = "dvar";
432181834Sroberto#define DVAR_FLAGS       (OPTST_DISABLED | OPTST_STACKED \
433181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
434181834Sroberto
435181834Sroberto/*
436181834Sroberto *  Slew option description:
437181834Sroberto */
438181834SrobertotSCC    zSlewText[] =
439181834Sroberto        "Slew up to 600 seconds";
440181834SrobertotSCC    zSlew_NAME[]               = "SLEW";
441181834SrobertotSCC    zSlew_Name[]               = "slew";
442181834Sroberto#define SLEW_FLAGS       (OPTST_DISABLED)
443181834Sroberto
444181834Sroberto/*
445181834Sroberto *  Ndelay option description:
446181834Sroberto */
447181834SrobertotSCC    zNdelayText[] =
448181834Sroberto        "Simulation network delay";
449181834SrobertotSCC    zNdelay_NAME[]             = "NDELAY";
450181834SrobertotSCC    zNdelay_Name[]             = "ndelay";
451181834Sroberto#define NDELAY_FLAGS       (OPTST_DISABLED \
452181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
453181834Sroberto
454181834Sroberto/*
455181834Sroberto *  Pdelay option description:
456181834Sroberto */
457181834SrobertotSCC    zPdelayText[] =
458181834Sroberto        "Simulation processing delay";
459181834SrobertotSCC    zPdelay_NAME[]             = "PDELAY";
460181834SrobertotSCC    zPdelay_Name[]             = "pdelay";
461181834Sroberto#define PDELAY_FLAGS       (OPTST_DISABLED \
462181834Sroberto        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
463181834Sroberto
464181834Sroberto/*
465181834Sroberto *  Help/More_Help/Version option descriptions:
466181834Sroberto */
467181834SrobertotSCC zHelpText[]       = "Display usage information and exit";
468181834SrobertotSCC zHelp_Name[]      = "help";
469181834Sroberto
470181834SrobertotSCC zMore_HelpText[]  = "Extended usage information passed thru pager";
471181834SrobertotSCC zMore_Help_Name[] = "more-help";
472181834Sroberto
473181834SrobertotSCC zVersionText[]    = "Output version information and exit";
474181834SrobertotSCC zVersion_Name[]   = "version";
475181834Sroberto
476181834Sroberto/*
477181834Sroberto *  Save/Load_Opts option description:
478181834Sroberto */
479181834SrobertotSCC zSave_OptsText[]     = "Save the option state to a config file";
480181834SrobertotSCC zSave_Opts_Name[]    = "save-opts";
481181834Sroberto
482181834SrobertotSCC zLoad_OptsText[]     = "Load options from a config file";
483181834SrobertotSCC zLoad_Opts_NAME[]    = "LOAD_OPTS";
484181834Sroberto
485181834SrobertotSCC zNotLoad_Opts_Name[] = "no-load-opts";
486181834SrobertotSCC zNotLoad_Opts_Pfx[]  = "no";
487181834Sroberto#define zLoad_Opts_Name   (zNotLoad_Opts_Name + 3)
488181834Sroberto/*
489181834Sroberto *  Declare option callback procedures
490181834Sroberto */
491181834Sroberto#ifdef DEBUG
492181834Sroberto  static tOptProc doOptSet_Debug_Level;
493181834Sroberto#else /* not DEBUG */
494181834Sroberto# define doOptSet_Debug_Level NULL
495181834Sroberto#endif /* def/not DEBUG */
496181834Sroberto#if defined(TEST_NTPDSIM_OPTS)
497181834Sroberto/*
498181834Sroberto *  Under test, omit argument processing, or call optionStackArg,
499181834Sroberto *  if multiple copies are allowed.
500181834Sroberto */
501181834Srobertoextern tOptProc
502181834Sroberto    optionNumericVal,    optionPagedUsage,    optionStackArg,
503181834Sroberto    optionVersionStderr;
504181834Srobertostatic tOptProc
505181834Sroberto    doUsageOpt;
506181834Sroberto
507181834Sroberto/*
508181834Sroberto *  #define map the "normal" callout procs to the test ones...
509181834Sroberto */
510181834Sroberto#define SET_DEBUG_LEVEL_OPT_PROC optionStackArg
511181834Sroberto
512181834Sroberto
513181834Sroberto#else /* NOT defined TEST_NTPDSIM_OPTS */
514181834Sroberto/*
515181834Sroberto *  When not under test, there are different procs to use
516181834Sroberto */
517181834Srobertoextern tOptProc
518181834Sroberto    optionNumericVal, optionPagedUsage, optionPrintVersion, optionStackArg;
519181834Srobertostatic tOptProc
520181834Sroberto    doUsageOpt;
521181834Sroberto
522181834Sroberto/*
523181834Sroberto *  #define map the "normal" callout procs
524181834Sroberto */
525181834Sroberto#define SET_DEBUG_LEVEL_OPT_PROC doOptSet_Debug_Level
526181834Sroberto
527181834Sroberto#define SET_DEBUG_LEVEL_OPT_PROC doOptSet_Debug_Level
528181834Sroberto#endif /* defined(TEST_NTPDSIM_OPTS) */
529181834Sroberto#ifdef TEST_NTPDSIM_OPTS
530181834Sroberto# define DOVERPROC optionVersionStderr
531181834Sroberto#else
532181834Sroberto# define DOVERPROC optionPrintVersion
533181834Sroberto#endif /* TEST_NTPDSIM_OPTS */
534181834Sroberto
535181834Sroberto/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
536181834Sroberto *
537181834Sroberto *  Define the Ntpdsim Option Descriptions.
538181834Sroberto */
539181834Srobertostatic tOptDesc optDesc[ OPTION_CT ] = {
540181834Sroberto  {  /* entry idx, value */ 0, VALUE_OPT_IPV4,
541181834Sroberto     /* equiv idx, value */ NO_EQUIVALENT, 0,
542181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
543181834Sroberto     /* min, max, act ct */ 0, 1, 0,
544181834Sroberto     /* opt state flags  */ IPV4_FLAGS, 0,
545181834Sroberto     /* last opt argumnt */ { NULL },
546181834Sroberto     /* arg list/cookie  */ NULL,
547181834Sroberto     /* must/cannot opts */ NULL, NULL,
548181834Sroberto     /* option proc      */ NULL,
549181834Sroberto     /* desc, NAME, name */ zIpv4Text, zIpv4_NAME, zIpv4_Name,
550181834Sroberto     /* disablement strs */ NULL, NULL },
551181834Sroberto
552181834Sroberto  {  /* entry idx, value */ 1, VALUE_OPT_IPV6,
553181834Sroberto     /* equiv idx, value */ NOLIMIT, NOLIMIT,
554181834Sroberto     /* equivalenced to  */ INDEX_OPT_IPV4,
555181834Sroberto     /* min, max, act ct */ 0, 1, 0,
556181834Sroberto     /* opt state flags  */ IPV6_FLAGS, 0,
557181834Sroberto     /* last opt argumnt */ { NULL },
558181834Sroberto     /* arg list/cookie  */ NULL,
559181834Sroberto     /* must/cannot opts */ NULL, NULL,
560181834Sroberto     /* option proc      */ NULL,
561181834Sroberto     /* desc, NAME, name */ zIpv6Text, zIpv6_NAME, zIpv6_Name,
562181834Sroberto     /* disablement strs */ NULL, NULL },
563181834Sroberto
564181834Sroberto  {  /* entry idx, value */ 2, VALUE_OPT_AUTHREQ,
565181834Sroberto     /* equiv idx, value */ 2, VALUE_OPT_AUTHREQ,
566181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
567181834Sroberto     /* min, max, act ct */ 0, 1, 0,
568181834Sroberto     /* opt state flags  */ AUTHREQ_FLAGS, 0,
569181834Sroberto     /* last opt argumnt */ { NULL },
570181834Sroberto     /* arg list/cookie  */ NULL,
571181834Sroberto     /* must/cannot opts */ NULL, aAuthreqCantList,
572181834Sroberto     /* option proc      */ NULL,
573181834Sroberto     /* desc, NAME, name */ zAuthreqText, zAuthreq_NAME, zAuthreq_Name,
574181834Sroberto     /* disablement strs */ NULL, NULL },
575181834Sroberto
576181834Sroberto  {  /* entry idx, value */ 3, VALUE_OPT_AUTHNOREQ,
577181834Sroberto     /* equiv idx, value */ 3, VALUE_OPT_AUTHNOREQ,
578181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
579181834Sroberto     /* min, max, act ct */ 0, 1, 0,
580181834Sroberto     /* opt state flags  */ AUTHNOREQ_FLAGS, 0,
581181834Sroberto     /* last opt argumnt */ { NULL },
582181834Sroberto     /* arg list/cookie  */ NULL,
583181834Sroberto     /* must/cannot opts */ NULL, aAuthnoreqCantList,
584181834Sroberto     /* option proc      */ NULL,
585181834Sroberto     /* desc, NAME, name */ zAuthnoreqText, zAuthnoreq_NAME, zAuthnoreq_Name,
586181834Sroberto     /* disablement strs */ NULL, NULL },
587181834Sroberto
588181834Sroberto  {  /* entry idx, value */ 4, VALUE_OPT_BCASTSYNC,
589181834Sroberto     /* equiv idx, value */ 4, VALUE_OPT_BCASTSYNC,
590181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
591181834Sroberto     /* min, max, act ct */ 0, 1, 0,
592181834Sroberto     /* opt state flags  */ BCASTSYNC_FLAGS, 0,
593181834Sroberto     /* last opt argumnt */ { NULL },
594181834Sroberto     /* arg list/cookie  */ NULL,
595181834Sroberto     /* must/cannot opts */ NULL, NULL,
596181834Sroberto     /* option proc      */ NULL,
597181834Sroberto     /* desc, NAME, name */ zBcastsyncText, zBcastsync_NAME, zBcastsync_Name,
598181834Sroberto     /* disablement strs */ NULL, NULL },
599181834Sroberto
600181834Sroberto  {  /* entry idx, value */ 5, VALUE_OPT_SIMBROADCASTDELAY,
601181834Sroberto     /* equiv idx, value */ 5, VALUE_OPT_SIMBROADCASTDELAY,
602181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
603181834Sroberto     /* min, max, act ct */ 0, 1, 0,
604181834Sroberto     /* opt state flags  */ SIMBROADCASTDELAY_FLAGS, 0,
605181834Sroberto     /* last opt argumnt */ { NULL },
606181834Sroberto     /* arg list/cookie  */ NULL,
607181834Sroberto     /* must/cannot opts */ NULL, NULL,
608181834Sroberto     /* option proc      */ NULL,
609181834Sroberto     /* desc, NAME, name */ zSimbroadcastdelayText, zSimbroadcastdelay_NAME, zSimbroadcastdelay_Name,
610181834Sroberto     /* disablement strs */ NULL, NULL },
611181834Sroberto
612181834Sroberto  {  /* entry idx, value */ 6, VALUE_OPT_CONFIGFILE,
613181834Sroberto     /* equiv idx, value */ 6, VALUE_OPT_CONFIGFILE,
614181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
615181834Sroberto     /* min, max, act ct */ 0, 1, 0,
616181834Sroberto     /* opt state flags  */ CONFIGFILE_FLAGS, 0,
617181834Sroberto     /* last opt argumnt */ { NULL },
618181834Sroberto     /* arg list/cookie  */ NULL,
619181834Sroberto     /* must/cannot opts */ NULL, NULL,
620181834Sroberto     /* option proc      */ NULL,
621181834Sroberto     /* desc, NAME, name */ zConfigfileText, zConfigfile_NAME, zConfigfile_Name,
622181834Sroberto     /* disablement strs */ NULL, NULL },
623181834Sroberto
624181834Sroberto  {  /* entry idx, value */ 7, VALUE_OPT_PHASENOISE,
625181834Sroberto     /* equiv idx, value */ 7, VALUE_OPT_PHASENOISE,
626181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
627181834Sroberto     /* min, max, act ct */ 0, 1, 0,
628181834Sroberto     /* opt state flags  */ PHASENOISE_FLAGS, 0,
629181834Sroberto     /* last opt argumnt */ { NULL },
630181834Sroberto     /* arg list/cookie  */ NULL,
631181834Sroberto     /* must/cannot opts */ NULL, NULL,
632181834Sroberto     /* option proc      */ NULL,
633181834Sroberto     /* desc, NAME, name */ zPhasenoiseText, zPhasenoise_NAME, zPhasenoise_Name,
634181834Sroberto     /* disablement strs */ NULL, NULL },
635181834Sroberto
636181834Sroberto  {  /* entry idx, value */ 8, VALUE_OPT_DEBUG_LEVEL,
637181834Sroberto     /* equiv idx, value */ 8, VALUE_OPT_DEBUG_LEVEL,
638181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
639181834Sroberto     /* min, max, act ct */ 0, NOLIMIT, 0,
640181834Sroberto     /* opt state flags  */ DEBUG_LEVEL_FLAGS, 0,
641181834Sroberto     /* last opt argumnt */ { NULL },
642181834Sroberto     /* arg list/cookie  */ NULL,
643181834Sroberto     /* must/cannot opts */ NULL, NULL,
644181834Sroberto     /* option proc      */ NULL,
645181834Sroberto     /* desc, NAME, name */ zDebug_LevelText, zDebug_Level_NAME, zDebug_Level_Name,
646181834Sroberto     /* disablement strs */ NULL, NULL },
647181834Sroberto
648181834Sroberto  {  /* entry idx, value */ 9, VALUE_OPT_SET_DEBUG_LEVEL,
649181834Sroberto     /* equiv idx, value */ 9, VALUE_OPT_SET_DEBUG_LEVEL,
650181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
651181834Sroberto     /* min, max, act ct */ 0, NOLIMIT, 0,
652181834Sroberto     /* opt state flags  */ SET_DEBUG_LEVEL_FLAGS, 0,
653181834Sroberto     /* last opt argumnt */ { NULL },
654181834Sroberto     /* arg list/cookie  */ NULL,
655181834Sroberto     /* must/cannot opts */ NULL, NULL,
656181834Sroberto     /* option proc      */ SET_DEBUG_LEVEL_OPT_PROC,
657181834Sroberto     /* desc, NAME, name */ zSet_Debug_LevelText, zSet_Debug_Level_NAME, zSet_Debug_Level_Name,
658181834Sroberto     /* disablement strs */ NULL, NULL },
659181834Sroberto
660181834Sroberto  {  /* entry idx, value */ 10, VALUE_OPT_DRIFTFILE,
661181834Sroberto     /* equiv idx, value */ 10, VALUE_OPT_DRIFTFILE,
662181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
663181834Sroberto     /* min, max, act ct */ 0, 1, 0,
664181834Sroberto     /* opt state flags  */ DRIFTFILE_FLAGS, 0,
665181834Sroberto     /* last opt argumnt */ { NULL },
666181834Sroberto     /* arg list/cookie  */ NULL,
667181834Sroberto     /* must/cannot opts */ NULL, NULL,
668181834Sroberto     /* option proc      */ NULL,
669181834Sroberto     /* desc, NAME, name */ zDriftfileText, zDriftfile_NAME, zDriftfile_Name,
670181834Sroberto     /* disablement strs */ NULL, NULL },
671181834Sroberto
672181834Sroberto  {  /* entry idx, value */ 11, VALUE_OPT_PANICGATE,
673181834Sroberto     /* equiv idx, value */ 11, VALUE_OPT_PANICGATE,
674181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
675181834Sroberto     /* min, max, act ct */ 0, 1, 0,
676181834Sroberto     /* opt state flags  */ PANICGATE_FLAGS, 0,
677181834Sroberto     /* last opt argumnt */ { NULL },
678181834Sroberto     /* arg list/cookie  */ NULL,
679181834Sroberto     /* must/cannot opts */ NULL, NULL,
680181834Sroberto     /* option proc      */ NULL,
681181834Sroberto     /* desc, NAME, name */ zPanicgateText, zPanicgate_NAME, zPanicgate_Name,
682181834Sroberto     /* disablement strs */ NULL, NULL },
683181834Sroberto
684181834Sroberto  {  /* entry idx, value */ 12, VALUE_OPT_SIMSLEW,
685181834Sroberto     /* equiv idx, value */ 12, VALUE_OPT_SIMSLEW,
686181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
687181834Sroberto     /* min, max, act ct */ 0, 1, 0,
688181834Sroberto     /* opt state flags  */ SIMSLEW_FLAGS, 0,
689181834Sroberto     /* last opt argumnt */ { NULL },
690181834Sroberto     /* arg list/cookie  */ NULL,
691181834Sroberto     /* must/cannot opts */ NULL, NULL,
692181834Sroberto     /* option proc      */ NULL,
693181834Sroberto     /* desc, NAME, name */ zSimslewText, zSimslew_NAME, zSimslew_Name,
694181834Sroberto     /* disablement strs */ NULL, NULL },
695181834Sroberto
696181834Sroberto  {  /* entry idx, value */ 13, VALUE_OPT_JAILDIR,
697181834Sroberto     /* equiv idx, value */ 13, VALUE_OPT_JAILDIR,
698181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
699181834Sroberto     /* min, max, act ct */ 0, 1, 0,
700181834Sroberto     /* opt state flags  */ JAILDIR_FLAGS, 0,
701181834Sroberto     /* last opt argumnt */ { NULL },
702181834Sroberto     /* arg list/cookie  */ NULL,
703181834Sroberto     /* must/cannot opts */ NULL, NULL,
704181834Sroberto     /* option proc      */ NULL,
705181834Sroberto     /* desc, NAME, name */ zJaildirText, zJaildir_NAME, zJaildir_Name,
706181834Sroberto     /* disablement strs */ NULL, NULL },
707181834Sroberto
708181834Sroberto  {  /* entry idx, value */ 14, VALUE_OPT_INTERFACE,
709181834Sroberto     /* equiv idx, value */ 14, VALUE_OPT_INTERFACE,
710181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
711181834Sroberto     /* min, max, act ct */ 0, NOLIMIT, 0,
712181834Sroberto     /* opt state flags  */ INTERFACE_FLAGS, 0,
713181834Sroberto     /* last opt argumnt */ { NULL },
714181834Sroberto     /* arg list/cookie  */ NULL,
715181834Sroberto     /* must/cannot opts */ NULL, NULL,
716181834Sroberto     /* option proc      */ optionStackArg,
717181834Sroberto     /* desc, NAME, name */ zInterfaceText, zInterface_NAME, zInterface_Name,
718181834Sroberto     /* disablement strs */ NULL, NULL },
719181834Sroberto
720181834Sroberto  {  /* entry idx, value */ 15, VALUE_OPT_KEYFILE,
721181834Sroberto     /* equiv idx, value */ 15, VALUE_OPT_KEYFILE,
722181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
723181834Sroberto     /* min, max, act ct */ 0, 1, 0,
724181834Sroberto     /* opt state flags  */ KEYFILE_FLAGS, 0,
725181834Sroberto     /* last opt argumnt */ { NULL },
726181834Sroberto     /* arg list/cookie  */ NULL,
727181834Sroberto     /* must/cannot opts */ NULL, NULL,
728181834Sroberto     /* option proc      */ NULL,
729181834Sroberto     /* desc, NAME, name */ zKeyfileText, zKeyfile_NAME, zKeyfile_Name,
730181834Sroberto     /* disablement strs */ NULL, NULL },
731181834Sroberto
732181834Sroberto  {  /* entry idx, value */ 16, VALUE_OPT_LOGFILE,
733181834Sroberto     /* equiv idx, value */ 16, VALUE_OPT_LOGFILE,
734181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
735181834Sroberto     /* min, max, act ct */ 0, 1, 0,
736181834Sroberto     /* opt state flags  */ LOGFILE_FLAGS, 0,
737181834Sroberto     /* last opt argumnt */ { NULL },
738181834Sroberto     /* arg list/cookie  */ NULL,
739181834Sroberto     /* must/cannot opts */ NULL, NULL,
740181834Sroberto     /* option proc      */ NULL,
741181834Sroberto     /* desc, NAME, name */ zLogfileText, zLogfile_NAME, zLogfile_Name,
742181834Sroberto     /* disablement strs */ NULL, NULL },
743181834Sroberto
744181834Sroberto  {  /* entry idx, value */ 17, VALUE_OPT_NOVIRTUALIPS,
745181834Sroberto     /* equiv idx, value */ 17, VALUE_OPT_NOVIRTUALIPS,
746181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
747181834Sroberto     /* min, max, act ct */ 0, 1, 0,
748181834Sroberto     /* opt state flags  */ NOVIRTUALIPS_FLAGS, 0,
749181834Sroberto     /* last opt argumnt */ { NULL },
750181834Sroberto     /* arg list/cookie  */ NULL,
751181834Sroberto     /* must/cannot opts */ NULL, NULL,
752181834Sroberto     /* option proc      */ NULL,
753181834Sroberto     /* desc, NAME, name */ zNovirtualipsText, zNovirtualips_NAME, zNovirtualips_Name,
754181834Sroberto     /* disablement strs */ NULL, NULL },
755181834Sroberto
756181834Sroberto  {  /* entry idx, value */ 18, VALUE_OPT_MODIFYMMTIMER,
757181834Sroberto     /* equiv idx, value */ 18, VALUE_OPT_MODIFYMMTIMER,
758181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
759181834Sroberto     /* min, max, act ct */ 0, 1, 0,
760181834Sroberto     /* opt state flags  */ MODIFYMMTIMER_FLAGS, 0,
761181834Sroberto     /* last opt argumnt */ { NULL },
762181834Sroberto     /* arg list/cookie  */ NULL,
763181834Sroberto     /* must/cannot opts */ NULL, NULL,
764181834Sroberto     /* option proc      */ NULL,
765181834Sroberto     /* desc, NAME, name */ zModifymmtimerText, zModifymmtimer_NAME, zModifymmtimer_Name,
766181834Sroberto     /* disablement strs */ NULL, NULL },
767181834Sroberto
768181834Sroberto  {  /* entry idx, value */ 19, VALUE_OPT_NOFORK,
769181834Sroberto     /* equiv idx, value */ 19, VALUE_OPT_NOFORK,
770181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
771181834Sroberto     /* min, max, act ct */ 0, 1, 0,
772181834Sroberto     /* opt state flags  */ NOFORK_FLAGS, 0,
773181834Sroberto     /* last opt argumnt */ { NULL },
774181834Sroberto     /* arg list/cookie  */ NULL,
775181834Sroberto     /* must/cannot opts */ NULL, NULL,
776181834Sroberto     /* option proc      */ NULL,
777181834Sroberto     /* desc, NAME, name */ zNoforkText, zNofork_NAME, zNofork_Name,
778181834Sroberto     /* disablement strs */ NULL, NULL },
779181834Sroberto
780181834Sroberto  {  /* entry idx, value */ 20, VALUE_OPT_NICE,
781181834Sroberto     /* equiv idx, value */ 20, VALUE_OPT_NICE,
782181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
783181834Sroberto     /* min, max, act ct */ 0, 1, 0,
784181834Sroberto     /* opt state flags  */ NICE_FLAGS, 0,
785181834Sroberto     /* last opt argumnt */ { NULL },
786181834Sroberto     /* arg list/cookie  */ NULL,
787181834Sroberto     /* must/cannot opts */ NULL, NULL,
788181834Sroberto     /* option proc      */ NULL,
789181834Sroberto     /* desc, NAME, name */ zNiceText, zNice_NAME, zNice_Name,
790181834Sroberto     /* disablement strs */ NULL, NULL },
791181834Sroberto
792181834Sroberto  {  /* entry idx, value */ 21, VALUE_OPT_SERVERTIME,
793181834Sroberto     /* equiv idx, value */ 21, VALUE_OPT_SERVERTIME,
794181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
795181834Sroberto     /* min, max, act ct */ 0, 1, 0,
796181834Sroberto     /* opt state flags  */ SERVERTIME_FLAGS, 0,
797181834Sroberto     /* last opt argumnt */ { NULL },
798181834Sroberto     /* arg list/cookie  */ NULL,
799181834Sroberto     /* must/cannot opts */ NULL, NULL,
800181834Sroberto     /* option proc      */ NULL,
801181834Sroberto     /* desc, NAME, name */ zServertimeText, zServertime_NAME, zServertime_Name,
802181834Sroberto     /* disablement strs */ NULL, NULL },
803181834Sroberto
804181834Sroberto  {  /* entry idx, value */ 22, VALUE_OPT_PIDFILE,
805181834Sroberto     /* equiv idx, value */ 22, VALUE_OPT_PIDFILE,
806181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
807181834Sroberto     /* min, max, act ct */ 0, 1, 0,
808181834Sroberto     /* opt state flags  */ PIDFILE_FLAGS, 0,
809181834Sroberto     /* last opt argumnt */ { NULL },
810181834Sroberto     /* arg list/cookie  */ NULL,
811181834Sroberto     /* must/cannot opts */ NULL, NULL,
812181834Sroberto     /* option proc      */ NULL,
813181834Sroberto     /* desc, NAME, name */ zPidfileText, zPidfile_NAME, zPidfile_Name,
814181834Sroberto     /* disablement strs */ NULL, NULL },
815181834Sroberto
816181834Sroberto  {  /* entry idx, value */ 23, VALUE_OPT_PRIORITY,
817181834Sroberto     /* equiv idx, value */ 23, VALUE_OPT_PRIORITY,
818181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
819181834Sroberto     /* min, max, act ct */ 0, 1, 0,
820181834Sroberto     /* opt state flags  */ PRIORITY_FLAGS, 0,
821181834Sroberto     /* last opt argumnt */ { NULL },
822181834Sroberto     /* arg list/cookie  */ NULL,
823181834Sroberto     /* must/cannot opts */ NULL, NULL,
824181834Sroberto     /* option proc      */ optionNumericVal,
825181834Sroberto     /* desc, NAME, name */ zPriorityText, zPriority_NAME, zPriority_Name,
826181834Sroberto     /* disablement strs */ NULL, NULL },
827181834Sroberto
828181834Sroberto  {  /* entry idx, value */ 24, VALUE_OPT_QUIT,
829181834Sroberto     /* equiv idx, value */ 24, VALUE_OPT_QUIT,
830181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
831181834Sroberto     /* min, max, act ct */ 0, 1, 0,
832181834Sroberto     /* opt state flags  */ QUIT_FLAGS, 0,
833181834Sroberto     /* last opt argumnt */ { NULL },
834181834Sroberto     /* arg list/cookie  */ NULL,
835181834Sroberto     /* must/cannot opts */ NULL, NULL,
836181834Sroberto     /* option proc      */ NULL,
837181834Sroberto     /* desc, NAME, name */ zQuitText, zQuit_NAME, zQuit_Name,
838181834Sroberto     /* disablement strs */ NULL, NULL },
839181834Sroberto
840181834Sroberto  {  /* entry idx, value */ 25, VALUE_OPT_PROPAGATIONDELAY,
841181834Sroberto     /* equiv idx, value */ 25, VALUE_OPT_PROPAGATIONDELAY,
842181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
843181834Sroberto     /* min, max, act ct */ 0, 1, 0,
844181834Sroberto     /* opt state flags  */ PROPAGATIONDELAY_FLAGS, 0,
845181834Sroberto     /* last opt argumnt */ { NULL },
846181834Sroberto     /* arg list/cookie  */ NULL,
847181834Sroberto     /* must/cannot opts */ NULL, NULL,
848181834Sroberto     /* option proc      */ NULL,
849181834Sroberto     /* desc, NAME, name */ zPropagationdelayText, zPropagationdelay_NAME, zPropagationdelay_Name,
850181834Sroberto     /* disablement strs */ NULL, NULL },
851181834Sroberto
852181834Sroberto  {  /* entry idx, value */ 26, VALUE_OPT_UPDATEINTERVAL,
853181834Sroberto     /* equiv idx, value */ 26, VALUE_OPT_UPDATEINTERVAL,
854181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
855181834Sroberto     /* min, max, act ct */ 0, 1, 0,
856181834Sroberto     /* opt state flags  */ UPDATEINTERVAL_FLAGS, 0,
857181834Sroberto     /* last opt argumnt */ { NULL },
858181834Sroberto     /* arg list/cookie  */ NULL,
859181834Sroberto     /* must/cannot opts */ NULL, NULL,
860181834Sroberto     /* option proc      */ optionNumericVal,
861181834Sroberto     /* desc, NAME, name */ zUpdateintervalText, zUpdateinterval_NAME, zUpdateinterval_Name,
862181834Sroberto     /* disablement strs */ NULL, NULL },
863181834Sroberto
864181834Sroberto  {  /* entry idx, value */ 27, VALUE_OPT_STATSDIR,
865181834Sroberto     /* equiv idx, value */ 27, VALUE_OPT_STATSDIR,
866181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
867181834Sroberto     /* min, max, act ct */ 0, 1, 0,
868181834Sroberto     /* opt state flags  */ STATSDIR_FLAGS, 0,
869181834Sroberto     /* last opt argumnt */ { NULL },
870181834Sroberto     /* arg list/cookie  */ NULL,
871181834Sroberto     /* must/cannot opts */ NULL, NULL,
872181834Sroberto     /* option proc      */ NULL,
873181834Sroberto     /* desc, NAME, name */ zStatsdirText, zStatsdir_NAME, zStatsdir_Name,
874181834Sroberto     /* disablement strs */ NULL, NULL },
875181834Sroberto
876181834Sroberto  {  /* entry idx, value */ 28, VALUE_OPT_ENDSIMTIME,
877181834Sroberto     /* equiv idx, value */ 28, VALUE_OPT_ENDSIMTIME,
878181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
879181834Sroberto     /* min, max, act ct */ 0, 1, 0,
880181834Sroberto     /* opt state flags  */ ENDSIMTIME_FLAGS, 0,
881181834Sroberto     /* last opt argumnt */ { NULL },
882181834Sroberto     /* arg list/cookie  */ NULL,
883181834Sroberto     /* must/cannot opts */ NULL, NULL,
884181834Sroberto     /* option proc      */ NULL,
885181834Sroberto     /* desc, NAME, name */ zEndsimtimeText, zEndsimtime_NAME, zEndsimtime_Name,
886181834Sroberto     /* disablement strs */ NULL, NULL },
887181834Sroberto
888181834Sroberto  {  /* entry idx, value */ 29, VALUE_OPT_TRUSTEDKEY,
889181834Sroberto     /* equiv idx, value */ 29, VALUE_OPT_TRUSTEDKEY,
890181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
891181834Sroberto     /* min, max, act ct */ 0, NOLIMIT, 0,
892181834Sroberto     /* opt state flags  */ TRUSTEDKEY_FLAGS, 0,
893181834Sroberto     /* last opt argumnt */ { NULL },
894181834Sroberto     /* arg list/cookie  */ NULL,
895181834Sroberto     /* must/cannot opts */ NULL, NULL,
896181834Sroberto     /* option proc      */ optionStackArg,
897181834Sroberto     /* desc, NAME, name */ zTrustedkeyText, zTrustedkey_NAME, zTrustedkey_Name,
898181834Sroberto     /* disablement strs */ NULL, NULL },
899181834Sroberto
900181834Sroberto  {  /* entry idx, value */ 30, VALUE_OPT_FREQERR,
901181834Sroberto     /* equiv idx, value */ 30, VALUE_OPT_FREQERR,
902181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
903181834Sroberto     /* min, max, act ct */ 0, 1, 0,
904181834Sroberto     /* opt state flags  */ FREQERR_FLAGS, 0,
905181834Sroberto     /* last opt argumnt */ { NULL },
906181834Sroberto     /* arg list/cookie  */ NULL,
907181834Sroberto     /* must/cannot opts */ NULL, NULL,
908181834Sroberto     /* option proc      */ NULL,
909181834Sroberto     /* desc, NAME, name */ zFreqerrText, zFreqerr_NAME, zFreqerr_Name,
910181834Sroberto     /* disablement strs */ NULL, NULL },
911181834Sroberto
912181834Sroberto  {  /* entry idx, value */ 31, VALUE_OPT_WALKNOISE,
913181834Sroberto     /* equiv idx, value */ 31, VALUE_OPT_WALKNOISE,
914181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
915181834Sroberto     /* min, max, act ct */ 0, 1, 0,
916181834Sroberto     /* opt state flags  */ WALKNOISE_FLAGS, 0,
917181834Sroberto     /* last opt argumnt */ { NULL },
918181834Sroberto     /* arg list/cookie  */ NULL,
919181834Sroberto     /* must/cannot opts */ NULL, NULL,
920181834Sroberto     /* option proc      */ NULL,
921181834Sroberto     /* desc, NAME, name */ zWalknoiseText, zWalknoise_NAME, zWalknoise_Name,
922181834Sroberto     /* disablement strs */ NULL, NULL },
923181834Sroberto
924181834Sroberto  {  /* entry idx, value */ 32, VALUE_OPT_USER,
925181834Sroberto     /* equiv idx, value */ 32, VALUE_OPT_USER,
926181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
927181834Sroberto     /* min, max, act ct */ 0, 1, 0,
928181834Sroberto     /* opt state flags  */ USER_FLAGS, 0,
929181834Sroberto     /* last opt argumnt */ { NULL },
930181834Sroberto     /* arg list/cookie  */ NULL,
931181834Sroberto     /* must/cannot opts */ NULL, NULL,
932181834Sroberto     /* option proc      */ NULL,
933181834Sroberto     /* desc, NAME, name */ zUserText, zUser_NAME, zUser_Name,
934181834Sroberto     /* disablement strs */ NULL, NULL },
935181834Sroberto
936181834Sroberto  {  /* entry idx, value */ 33, VALUE_OPT_VAR,
937181834Sroberto     /* equiv idx, value */ 33, VALUE_OPT_VAR,
938181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
939181834Sroberto     /* min, max, act ct */ 0, NOLIMIT, 0,
940181834Sroberto     /* opt state flags  */ VAR_FLAGS, 0,
941181834Sroberto     /* last opt argumnt */ { NULL },
942181834Sroberto     /* arg list/cookie  */ NULL,
943181834Sroberto     /* must/cannot opts */ NULL, NULL,
944181834Sroberto     /* option proc      */ optionStackArg,
945181834Sroberto     /* desc, NAME, name */ zVarText, zVar_NAME, zVar_Name,
946181834Sroberto     /* disablement strs */ NULL, NULL },
947181834Sroberto
948181834Sroberto  {  /* entry idx, value */ 34, VALUE_OPT_DVAR,
949181834Sroberto     /* equiv idx, value */ 34, VALUE_OPT_DVAR,
950181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
951181834Sroberto     /* min, max, act ct */ 0, NOLIMIT, 0,
952181834Sroberto     /* opt state flags  */ DVAR_FLAGS, 0,
953181834Sroberto     /* last opt argumnt */ { NULL },
954181834Sroberto     /* arg list/cookie  */ NULL,
955181834Sroberto     /* must/cannot opts */ NULL, NULL,
956181834Sroberto     /* option proc      */ optionStackArg,
957181834Sroberto     /* desc, NAME, name */ zDvarText, zDvar_NAME, zDvar_Name,
958181834Sroberto     /* disablement strs */ NULL, NULL },
959181834Sroberto
960181834Sroberto  {  /* entry idx, value */ 35, VALUE_OPT_SLEW,
961181834Sroberto     /* equiv idx, value */ 35, VALUE_OPT_SLEW,
962181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
963181834Sroberto     /* min, max, act ct */ 0, 1, 0,
964181834Sroberto     /* opt state flags  */ SLEW_FLAGS, 0,
965181834Sroberto     /* last opt argumnt */ { NULL },
966181834Sroberto     /* arg list/cookie  */ NULL,
967181834Sroberto     /* must/cannot opts */ NULL, NULL,
968181834Sroberto     /* option proc      */ NULL,
969181834Sroberto     /* desc, NAME, name */ zSlewText, zSlew_NAME, zSlew_Name,
970181834Sroberto     /* disablement strs */ NULL, NULL },
971181834Sroberto
972181834Sroberto  {  /* entry idx, value */ 36, VALUE_OPT_NDELAY,
973181834Sroberto     /* equiv idx, value */ 36, VALUE_OPT_NDELAY,
974181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
975181834Sroberto     /* min, max, act ct */ 0, 1, 0,
976181834Sroberto     /* opt state flags  */ NDELAY_FLAGS, 0,
977181834Sroberto     /* last opt argumnt */ { NULL },
978181834Sroberto     /* arg list/cookie  */ NULL,
979181834Sroberto     /* must/cannot opts */ NULL, NULL,
980181834Sroberto     /* option proc      */ NULL,
981181834Sroberto     /* desc, NAME, name */ zNdelayText, zNdelay_NAME, zNdelay_Name,
982181834Sroberto     /* disablement strs */ NULL, NULL },
983181834Sroberto
984181834Sroberto  {  /* entry idx, value */ 37, VALUE_OPT_PDELAY,
985181834Sroberto     /* equiv idx, value */ 37, VALUE_OPT_PDELAY,
986181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
987181834Sroberto     /* min, max, act ct */ 0, 1, 0,
988181834Sroberto     /* opt state flags  */ PDELAY_FLAGS, 0,
989181834Sroberto     /* last opt argumnt */ { NULL },
990181834Sroberto     /* arg list/cookie  */ NULL,
991181834Sroberto     /* must/cannot opts */ NULL, NULL,
992181834Sroberto     /* option proc      */ NULL,
993181834Sroberto     /* desc, NAME, name */ zPdelayText, zPdelay_NAME, zPdelay_Name,
994181834Sroberto     /* disablement strs */ NULL, NULL },
995181834Sroberto
996181834Sroberto#ifdef NO_OPTIONAL_OPT_ARGS
997181834Sroberto#  define VERSION_OPT_FLAGS     OPTST_IMM | OPTST_NO_INIT
998181834Sroberto#else
999181834Sroberto#  define VERSION_OPT_FLAGS     OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
1000181834Sroberto                                OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT
1001181834Sroberto#endif
1002181834Sroberto
1003181834Sroberto  {  /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
1004181834Sroberto     /* equiv idx value  */ NO_EQUIVALENT, 0,
1005181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
1006181834Sroberto     /* min, max, act ct */ 0, 1, 0,
1007181834Sroberto     /* opt state flags  */ VERSION_OPT_FLAGS, 0,
1008181834Sroberto     /* last opt argumnt */ { NULL },
1009181834Sroberto     /* arg list/cookie  */ NULL,
1010181834Sroberto     /* must/cannot opts */ NULL, NULL,
1011181834Sroberto     /* option proc      */ DOVERPROC,
1012181834Sroberto     /* desc, NAME, name */ zVersionText, NULL, zVersion_Name,
1013181834Sroberto     /* disablement strs */ NULL, NULL },
1014181834Sroberto
1015181834Sroberto#undef VERSION_OPT_FLAGS
1016181834Sroberto
1017181834Sroberto
1018181834Sroberto  {  /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
1019181834Sroberto     /* equiv idx value  */ NO_EQUIVALENT, 0,
1020181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
1021181834Sroberto     /* min, max, act ct */ 0, 1, 0,
1022181834Sroberto     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
1023181834Sroberto     /* last opt argumnt */ { NULL },
1024181834Sroberto     /* arg list/cookie  */ NULL,
1025181834Sroberto     /* must/cannot opts */ NULL, NULL,
1026181834Sroberto     /* option proc      */ doUsageOpt,
1027181834Sroberto     /* desc, NAME, name */ zHelpText, NULL, zHelp_Name,
1028181834Sroberto     /* disablement strs */ NULL, NULL },
1029181834Sroberto
1030181834Sroberto  {  /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
1031181834Sroberto     /* equiv idx value  */ NO_EQUIVALENT, 0,
1032181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
1033181834Sroberto     /* min, max, act ct */ 0, 1, 0,
1034181834Sroberto     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
1035181834Sroberto     /* last opt argumnt */ { NULL },
1036181834Sroberto     /* arg list/cookie  */ NULL,
1037181834Sroberto     /* must/cannot opts */ NULL,  NULL,
1038181834Sroberto     /* option proc      */ optionPagedUsage,
1039181834Sroberto     /* desc, NAME, name */ zMore_HelpText, NULL, zMore_Help_Name,
1040181834Sroberto     /* disablement strs */ NULL, NULL },
1041181834Sroberto
1042181834Sroberto  {  /* entry idx, value */ INDEX_OPT_SAVE_OPTS, VALUE_OPT_SAVE_OPTS,
1043181834Sroberto     /* equiv idx value  */ NO_EQUIVALENT, 0,
1044181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
1045181834Sroberto     /* min, max, act ct */ 0, 1, 0,
1046181834Sroberto     /* opt state flags  */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
1047181834Sroberto                          | OPTST_ARG_OPTIONAL | OPTST_NO_INIT, 0,
1048181834Sroberto     /* last opt argumnt */ { NULL },
1049181834Sroberto     /* arg list/cookie  */ NULL,
1050181834Sroberto     /* must/cannot opts */ NULL,  NULL,
1051181834Sroberto     /* option proc      */ NULL,
1052181834Sroberto     /* desc, NAME, name */ zSave_OptsText, NULL, zSave_Opts_Name,
1053181834Sroberto     /* disablement strs */ NULL, NULL },
1054181834Sroberto
1055181834Sroberto  {  /* entry idx, value */ INDEX_OPT_LOAD_OPTS, VALUE_OPT_LOAD_OPTS,
1056181834Sroberto     /* equiv idx value  */ NO_EQUIVALENT, 0,
1057181834Sroberto     /* equivalenced to  */ NO_EQUIVALENT,
1058181834Sroberto     /* min, max, act ct */ 0, NOLIMIT, 0,
1059181834Sroberto     /* opt state flags  */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) \
1060181834Sroberto			  | OPTST_DISABLE_IMM, 0,
1061181834Sroberto     /* last opt argumnt */ { NULL },
1062181834Sroberto     /* arg list/cookie  */ NULL,
1063181834Sroberto     /* must/cannot opts */ NULL, NULL,
1064181834Sroberto     /* option proc      */ optionLoadOpt,
1065181834Sroberto     /* desc, NAME, name */ zLoad_OptsText, zLoad_Opts_NAME, zLoad_Opts_Name,
1066181834Sroberto     /* disablement strs */ zNotLoad_Opts_Name, zNotLoad_Opts_Pfx }
1067181834Sroberto};
1068181834Sroberto
1069181834Sroberto/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
1070181834Sroberto *
1071181834Sroberto *  Define the Ntpdsim Option Environment
1072181834Sroberto */
1073181834SrobertotSCC   zPROGNAME[]   = "NTPDSIM";
1074181834SrobertotSCC   zUsageTitle[] =
1075200576Sroberto"ntpdsim - NTP daemon simulation program - Ver. 4.2.4p8\n\
1076181834SrobertoUSAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n";
1077181834SrobertotSCC   zRcName[]     = ".ntprc";
1078181834SrobertotSCC*  apzHomeList[] = {
1079181834Sroberto       "$HOME",
1080181834Sroberto       ".",
1081181834Sroberto       NULL };
1082181834Sroberto
1083200576SrobertotSCC   zBugsAddr[]    = "http://bugs.ntp.org, bugs@ntp.org";
1084181834Sroberto#define zExplain NULL
1085181834SrobertotSCC    zDetail[]     = "\n\n";
1086181834SrobertotSCC    zFullVersion[] = NTPDSIM_FULL_VERSION;
1087200576Sroberto/* extracted from /usr/local/gnu/autogen-5.9.1/share/autogen/optcode.tpl near line 408 */
1088181834Sroberto
1089181834Sroberto#if defined(ENABLE_NLS)
1090181834Sroberto# define OPTPROC_BASE OPTPROC_TRANSLATE
1091181834Sroberto  static tOptionXlateProc translate_option_strings;
1092181834Sroberto#else
1093181834Sroberto# define OPTPROC_BASE OPTPROC_NONE
1094181834Sroberto# define translate_option_strings NULL
1095181834Sroberto#endif /* ENABLE_NLS */
1096181834Sroberto
1097181834SrobertotOptions ntpdsimOptions = {
1098181834Sroberto    OPTIONS_STRUCT_VERSION,
1099181834Sroberto    0, NULL,                    /* original argc + argv    */
1100181834Sroberto    ( OPTPROC_BASE
1101181834Sroberto    + OPTPROC_ERRSTOP
1102181834Sroberto    + OPTPROC_SHORTOPT
1103181834Sroberto    + OPTPROC_LONGOPT
1104181834Sroberto    + OPTPROC_NO_REQ_OPT
1105181834Sroberto    + OPTPROC_ENVIRON
1106181834Sroberto    + OPTPROC_NO_ARGS
1107181834Sroberto    + OPTPROC_HAS_IMMED ),
1108181834Sroberto    0, NULL,                    /* current option index, current option */
1109181834Sroberto    NULL,         NULL,         zPROGNAME,
1110181834Sroberto    zRcName,      zCopyright,   zCopyrightNotice,
1111181834Sroberto    zFullVersion, apzHomeList,  zUsageTitle,
1112181834Sroberto    zExplain,     zDetail,      optDesc,
1113181834Sroberto    zBugsAddr,                  /* address to send bugs to */
1114181834Sroberto    NULL, NULL,                 /* extensions/saved state  */
1115181834Sroberto    optionUsage,       /* usage procedure */
1116181834Sroberto    translate_option_strings,   /* translation procedure */
1117181834Sroberto    /*
1118181834Sroberto     *  Indexes to special options
1119181834Sroberto     */
1120181834Sroberto    { INDEX_OPT_MORE_HELP,
1121181834Sroberto      INDEX_OPT_SAVE_OPTS,
1122181834Sroberto      NO_EQUIVALENT /* index of '-#' option */,
1123181834Sroberto      NO_EQUIVALENT /* index of default opt */
1124181834Sroberto    },
1125181834Sroberto    43 /* full option count */, 38 /* user option count */
1126181834Sroberto};
1127181834Sroberto
1128181834Sroberto/*
1129181834Sroberto *  Create the static procedure(s) declared above.
1130181834Sroberto */
1131181834Srobertostatic void
1132181834SrobertodoUsageOpt(
1133181834Sroberto    tOptions*   pOptions,
1134181834Sroberto    tOptDesc*   pOptDesc )
1135181834Sroberto{
1136181834Sroberto    USAGE( EXIT_SUCCESS );
1137181834Sroberto}
1138181834Sroberto
1139181834Sroberto#if ! defined(TEST_NTPDSIM_OPTS)
1140181834Sroberto
1141181834Sroberto/* * * * * * *
1142181834Sroberto *
1143181834Sroberto *   For the set-debug-level option, when DEBUG is #define-d.
1144181834Sroberto */
1145181834Sroberto#ifdef DEBUG
1146181834Srobertostatic void
1147181834SrobertodoOptSet_Debug_Level(
1148181834Sroberto    tOptions*   pOptions,
1149181834Sroberto    tOptDesc*   pOptDesc )
1150181834Sroberto{
1151181834Sroberto    /* extracted from ../include/debug-opt.def, line 29 */
1152181834SrobertoDESC(DEBUG_LEVEL).optOccCt = atoi( pOptDesc->pzLastArg );
1153181834Sroberto}
1154181834Sroberto#endif /* defined DEBUG */
1155181834Sroberto
1156181834Sroberto#endif /* defined(TEST_NTPDSIM_OPTS) */
1157181834Sroberto
1158200576Sroberto/* extracted from /usr/local/gnu/autogen-5.9.1/share/autogen/optmain.tpl near line 92 */
1159181834Sroberto
1160181834Sroberto#if defined(TEST_NTPDSIM_OPTS) /* TEST MAIN PROCEDURE: */
1161181834Sroberto
1162181834Srobertoint
1163181834Srobertomain( int argc, char** argv )
1164181834Sroberto{
1165181834Sroberto    int res = EXIT_SUCCESS;
1166181834Sroberto    (void)optionProcess( &ntpdsimOptions, argc, argv );
1167181834Sroberto    {
1168181834Sroberto        void optionPutShell( tOptions* );
1169181834Sroberto        optionPutShell( &ntpdsimOptions );
1170181834Sroberto    }
1171181834Sroberto    return res;
1172181834Sroberto}
1173181834Sroberto#endif  /* defined TEST_NTPDSIM_OPTS */
1174200576Sroberto/* extracted from /usr/local/gnu/autogen-5.9.1/share/autogen/optcode.tpl near line 514 */
1175181834Sroberto
1176181834Sroberto#if ENABLE_NLS
1177181834Sroberto#include <stdio.h>
1178181834Sroberto#include <stdlib.h>
1179181834Sroberto#include <string.h>
1180181834Sroberto#include <unistd.h>
1181181834Sroberto#include <autoopts/usage-txt.h>
1182181834Sroberto
1183181834Srobertostatic char* AO_gettext( char const* pz );
1184181834Srobertostatic void  coerce_it(void** s);
1185181834Sroberto
1186181834Srobertostatic char*
1187181834SrobertoAO_gettext( char const* pz )
1188181834Sroberto{
1189181834Sroberto    char* pzRes;
1190181834Sroberto    if (pz == NULL)
1191181834Sroberto        return NULL;
1192181834Sroberto    pzRes = _(pz);
1193181834Sroberto    if (pzRes == pz)
1194181834Sroberto        return pzRes;
1195181834Sroberto    pzRes = strdup( pzRes );
1196181834Sroberto    if (pzRes == NULL) {
1197181834Sroberto        fputs( _("No memory for duping translated strings\n"), stderr );
1198181834Sroberto        exit( EXIT_FAILURE );
1199181834Sroberto    }
1200181834Sroberto    return pzRes;
1201181834Sroberto}
1202181834Sroberto
1203181834Srobertostatic void coerce_it(void** s) { *s = AO_gettext(*s); }
1204181834Sroberto#define COERSION(_f) \
1205181834Sroberto  coerce_it((void*)&(ntpdsimOptions._f))
1206181834Sroberto
1207181834Sroberto/*
1208181834Sroberto *  This invokes the translation code (e.g. gettext(3)).
1209181834Sroberto */
1210181834Srobertostatic void
1211181834Srobertotranslate_option_strings( void )
1212181834Sroberto{
1213181834Sroberto    /*
1214181834Sroberto     *  Guard against re-translation.  It won't work.  The strings will have
1215181834Sroberto     *  been changed by the first pass through this code.  One shot only.
1216181834Sroberto     */
1217181834Sroberto    if (option_usage_text.field_ct == 0)
1218181834Sroberto        return;
1219181834Sroberto    /*
1220181834Sroberto     *  Do the translations.  The first pointer follows the field count field.
1221181834Sroberto     *  The field count field is the size of a pointer.
1222181834Sroberto     */
1223181834Sroberto    {
1224181834Sroberto        char** ppz = (char**)(void*)&(option_usage_text);
1225181834Sroberto        int    ix  = option_usage_text.field_ct;
1226181834Sroberto
1227181834Sroberto        do {
1228181834Sroberto            ppz++;
1229181834Sroberto            *ppz = AO_gettext(*ppz);
1230181834Sroberto        } while (--ix > 0);
1231181834Sroberto    }
1232181834Sroberto    option_usage_text.field_ct = 0;
1233181834Sroberto
1234181834Sroberto    {
1235181834Sroberto        tOptDesc* pOD = ntpdsimOptions.pOptDesc;
1236181834Sroberto        int       ix  = ntpdsimOptions.optCt;
1237181834Sroberto
1238181834Sroberto        for (;;) {
1239181834Sroberto            pOD->pzText           = AO_gettext(pOD->pzText);
1240181834Sroberto            pOD->pz_NAME          = AO_gettext(pOD->pz_NAME);
1241181834Sroberto            pOD->pz_Name          = AO_gettext(pOD->pz_Name);
1242181834Sroberto            pOD->pz_DisableName   = AO_gettext(pOD->pz_DisableName);
1243181834Sroberto            pOD->pz_DisablePfx    = AO_gettext(pOD->pz_DisablePfx);
1244181834Sroberto            if (--ix <= 0)
1245181834Sroberto                break;
1246181834Sroberto            pOD++;
1247181834Sroberto        }
1248181834Sroberto    }
1249181834Sroberto    COERSION(pzCopyright);
1250181834Sroberto    COERSION(pzCopyNotice);
1251181834Sroberto    COERSION(pzFullVersion);
1252181834Sroberto    COERSION(pzUsageTitle);
1253181834Sroberto    COERSION(pzExplain);
1254181834Sroberto    COERSION(pzDetail);
1255181834Sroberto}
1256181834Sroberto
1257181834Sroberto#endif /* ENABLE_NLS */
1258181834Sroberto
1259181834Sroberto#ifdef  __cplusplus
1260181834Sroberto}
1261181834Sroberto#endif
1262181834Sroberto/* ntpdsim-opts.c ends here */
1263