xref: /freebsd/contrib/ntp/ntpd/ntpdbase-opts.def (revision a25439b6)
1ea906c41SOllivier Robert#include autogen-version.def
2ea906c41SOllivier Robert
32b15cb3dSCy Schubertinclude = <<- _EOF_
42b15cb3dSCy Schubert	#ifdef __windows
52b15cb3dSCy Schubert	  extern int atoi(const char *);
62b15cb3dSCy Schubert	#else
72b15cb3dSCy Schubert	# include <stdlib.h>
82b15cb3dSCy Schubert	#endif
92b15cb3dSCy Schubert	_EOF_;
10ea906c41SOllivier Robert
11ea906c41SOllivier Robertflag = {
12ea906c41SOllivier Robert    name      = ipv4;
13ea906c41SOllivier Robert    value     = 4;
142b15cb3dSCy Schubert    flags-cant = ipv6;
15ea906c41SOllivier Robert    descrip   = "Force IPv4 DNS name resolution";
16ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
17ea906c41SOllivier Robert	Force DNS resolution of following host names on the command line
18ea906c41SOllivier Robert	to the IPv4 namespace.
19ea906c41SOllivier Robert	_EndOfDoc_;
20ea906c41SOllivier Robert};
21ea906c41SOllivier Robert
22ea906c41SOllivier Robertflag = {
23ea906c41SOllivier Robert    name      = ipv6;
24ea906c41SOllivier Robert    value     = 6;
252b15cb3dSCy Schubert    flags-cant = ipv4;
26ea906c41SOllivier Robert    descrip   = "Force IPv6 DNS name resolution";
27ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
28ea906c41SOllivier Robert	Force DNS resolution of following host names on the command line
29ea906c41SOllivier Robert	to the IPv6 namespace.
30ea906c41SOllivier Robert	_EndOfDoc_;
31ea906c41SOllivier Robert};
32ea906c41SOllivier Robert
33ea906c41SOllivier Robertflag = {
34ea906c41SOllivier Robert    name      = authreq;
35ea906c41SOllivier Robert    value     = a;
36ea906c41SOllivier Robert    descrip   = "Require crypto authentication";
37ea906c41SOllivier Robert    flags-cant = authnoreq;
38ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
39ea906c41SOllivier Robert	Require cryptographic authentication for broadcast client,
40ea906c41SOllivier Robert	multicast client and symmetric passive associations.
41ea906c41SOllivier Robert	This is the default.
42ea906c41SOllivier Robert	_EndOfDoc_;
43ea906c41SOllivier Robert};
44ea906c41SOllivier Robert
45ea906c41SOllivier Robertflag = {
46ea906c41SOllivier Robert    name      = authnoreq;
47ea906c41SOllivier Robert    value     = A;
48ea906c41SOllivier Robert    descrip   = "Do not require crypto authentication";
49ea906c41SOllivier Robert    flags-cant = authreq;
50ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
51ea906c41SOllivier Robert	Do not require cryptographic authentication for broadcast client,
52ea906c41SOllivier Robert	multicast client and symmetric passive associations.
53ea906c41SOllivier Robert	This is almost never a good idea.
54ea906c41SOllivier Robert	_EndOfDoc_;
55ea906c41SOllivier Robert};
56ea906c41SOllivier Robert
57ea906c41SOllivier Robertflag = {
58ea906c41SOllivier Robert    name      = bcastsync;
59ea906c41SOllivier Robert    value     = b;
60ea906c41SOllivier Robert    descrip   = "Allow us to sync to broadcast servers";
61ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
62ea906c41SOllivier Robert	_EndOfDoc_;
63ea906c41SOllivier Robert};
64ea906c41SOllivier Robert
65ea906c41SOllivier Robertflag = {
66ea906c41SOllivier Robert    name      = configfile;
67ea906c41SOllivier Robert    value     = c;
68ea906c41SOllivier Robert    arg-type  = string;
69ea906c41SOllivier Robert    descrip   = "configuration file name";
70ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
71ea906c41SOllivier Robert	The name and path of the configuration file,
722b15cb3dSCy Schubert	@file{/etc/ntp.conf}
73ea906c41SOllivier Robert	by default.
74ea906c41SOllivier Robert	_EndOfDoc_;
75ea906c41SOllivier Robert};
76ea906c41SOllivier Robert
77ea906c41SOllivier Robert#include debug-opt.def
78ea906c41SOllivier Robert
79ea906c41SOllivier Robertflag = {
80ea906c41SOllivier Robert    name      = driftfile;
81ea906c41SOllivier Robert    value     = f;
82ea906c41SOllivier Robert    arg-type  = string;
83ea906c41SOllivier Robert    descrip   = "frequency drift file name";
84ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
85ea906c41SOllivier Robert	The name and path of the frequency file,
862b15cb3dSCy Schubert	@file{/etc/ntp.drift}
87ea906c41SOllivier Robert	by default.
88ea906c41SOllivier Robert	This is the same operation as the
892b15cb3dSCy Schubert	@code{driftfile} @kbd{driftfile}
90ea906c41SOllivier Robert	configuration specification in the
912b15cb3dSCy Schubert	@file{/etc/ntp.conf}
92ea906c41SOllivier Robert	file.
93ea906c41SOllivier Robert	_EndOfDoc_;
94ea906c41SOllivier Robert};
95ea906c41SOllivier Robert
96ea906c41SOllivier Robertflag = {
97ea906c41SOllivier Robert    name      = panicgate;
98ea906c41SOllivier Robert    value     = g;
992b15cb3dSCy Schubert    max       = NOLIMIT;
100ea906c41SOllivier Robert    descrip   = "Allow the first adjustment to be Big";
101ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
102ea906c41SOllivier Robert	Normally,
1032b15cb3dSCy Schubert	@code{ntpd}
104ea906c41SOllivier Robert	exits with a message to the system log if the offset exceeds the panic threshold, which is 1000 s by default. This option allows the time to be set to any value without restriction; however, this can happen only once. If the threshold is exceeded after that,
1052b15cb3dSCy Schubert	@code{ntpd}
106ea906c41SOllivier Robert	will exit with a message to the system log. This option can be used with the
1072b15cb3dSCy Schubert	@code{-q}
108ea906c41SOllivier Robert	and
1092b15cb3dSCy Schubert	@code{-x}
110ea906c41SOllivier Robert	options.
111ea906c41SOllivier Robert	See the
1122b15cb3dSCy Schubert	@code{tinker}
113ea906c41SOllivier Robert	configuration file directive for other options.
114ea906c41SOllivier Robert	_EndOfDoc_;
115ea906c41SOllivier Robert};
116ea906c41SOllivier Robert
117ea906c41SOllivier Robertflag = {
118*a25439b6SCy Schubert    name      = force_step_once;
119*a25439b6SCy Schubert    value     = G;
120*a25439b6SCy Schubert    descrip   = "Step any initial offset correction.";
121*a25439b6SCy Schubert    doc = <<-  _EndOfDoc_
122*a25439b6SCy Schubert	Normally,
123*a25439b6SCy Schubert	@code{ntpd}
124*a25439b6SCy Schubert	steps the time if the time offset exceeds the step threshold,
125*a25439b6SCy Schubert	which is 128 ms by default, and otherwise slews the time.
126*a25439b6SCy Schubert	This option forces the initial offset correction to be stepped,
127*a25439b6SCy Schubert	so the highest time accuracy can be achieved quickly.
128*a25439b6SCy Schubert	However, this may also cause the time to be stepped back
129*a25439b6SCy Schubert	so this option must not be used if
130*a25439b6SCy Schubert	applications requiring monotonic time are running.
131*a25439b6SCy Schubert	See the @code{tinker} configuration file directive for other options.
132*a25439b6SCy Schubert	_EndOfDoc_;
133*a25439b6SCy Schubert};
134*a25439b6SCy Schubert
135*a25439b6SCy Schubertflag = {
1362b15cb3dSCy Schubert    ifdef     = HAVE_DROPROOT;
137ea906c41SOllivier Robert    name      = jaildir;
138ea906c41SOllivier Robert    value     = i;
139ea906c41SOllivier Robert    arg-type  = string;
140ea906c41SOllivier Robert    descrip   = "Jail directory";
1412b15cb3dSCy Schubert    omitted-usage = "built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs";
142ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
143ea906c41SOllivier Robert	Chroot the server to the directory
1442b15cb3dSCy Schubert	@kbd{jaildir}
145ea906c41SOllivier Robert	.
1462b15cb3dSCy Schubert	This option also implies that the server attempts to drop root privileges at startup.
147ea906c41SOllivier Robert	You may need to also specify a
1482b15cb3dSCy Schubert	@code{-u}
149ea906c41SOllivier Robert	option.
1502b15cb3dSCy Schubert	This option is only available if the OS supports adjusting the clock
1512b15cb3dSCy Schubert	without full root privileges.
1522b15cb3dSCy Schubert	This option is supported under NetBSD (configure with
1532b15cb3dSCy Schubert	@code{--enable-clockctl}) or Linux (configure with
1542b15cb3dSCy Schubert	@code{--enable-linuxcaps}) or Solaris (configure with @code{--enable-solarisprivs}).
155ea906c41SOllivier Robert	_EndOfDoc_;
156ea906c41SOllivier Robert};
157ea906c41SOllivier Robert
158ea906c41SOllivier Robertflag = {
159ea906c41SOllivier Robert    name      = interface;
160ea906c41SOllivier Robert    value     = I;
161ea906c41SOllivier Robert    arg-type  = string;
1622b15cb3dSCy Schubert    descrip   = "Listen on an interface name or address";
163ea906c41SOllivier Robert    max       = NOLIMIT;
164ea906c41SOllivier Robert    arg-name  = iface;
165ea906c41SOllivier Robert    stack-arg;
166ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
1672b15cb3dSCy Schubert	Open the network address given, or all the addresses associated with the
1682b15cb3dSCy Schubert	given interface name.  This option may appear multiple times.  This option
1692b15cb3dSCy Schubert	also implies not opening other addresses, except wildcard and localhost.
1702b15cb3dSCy Schubert	This option is deprecated. Please consider using the configuration file
1712b15cb3dSCy Schubert	@code{interface} command, which is more versatile.
172ea906c41SOllivier Robert	_EndOfDoc_;
173ea906c41SOllivier Robert};
174ea906c41SOllivier Robert
175ea906c41SOllivier Robertflag = {
176ea906c41SOllivier Robert    name      = keyfile;
177ea906c41SOllivier Robert    value     = k;
178ea906c41SOllivier Robert    arg-type  = string;
179ea906c41SOllivier Robert    descrip   = "path to symmetric keys";
180ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
181ea906c41SOllivier Robert	Specify the name and path of the symmetric key file.
1822b15cb3dSCy Schubert	@file{/etc/ntp.keys}
183ea906c41SOllivier Robert	is the default.
184ea906c41SOllivier Robert	This is the same operation as the
1852b15cb3dSCy Schubert	@code{keys} @kbd{keyfile}
186ea906c41SOllivier Robert	configuration file directive.
187ea906c41SOllivier Robert	_EndOfDoc_;
188ea906c41SOllivier Robert};
189ea906c41SOllivier Robert
190ea906c41SOllivier Robertflag = {
191ea906c41SOllivier Robert    name      = logfile;
192ea906c41SOllivier Robert    value     = l;
193ea906c41SOllivier Robert    arg-type  = string;
194ea906c41SOllivier Robert    descrip   = "path to the log file";
195ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
196ea906c41SOllivier Robert	Specify the name and path of the log file.
197ea906c41SOllivier Robert	The default is the system log file.
198ea906c41SOllivier Robert	This is the same operation as the
1992b15cb3dSCy Schubert	@code{logfile} @kbd{logfile}
200ea906c41SOllivier Robert	configuration file directive.
201ea906c41SOllivier Robert	_EndOfDoc_;
202ea906c41SOllivier Robert};
203ea906c41SOllivier Robert
204ea906c41SOllivier Robertflag = {
205ea906c41SOllivier Robert    name      = novirtualips;
206ea906c41SOllivier Robert    value     = L;
2072b15cb3dSCy Schubert    descrip   = "Do not listen to virtual interfaces";
208ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
2092b15cb3dSCy Schubert	Do not listen to virtual interfaces, defined as those with
2102b15cb3dSCy Schubert	names containing a colon.  This option is deprecated.  Please
2112b15cb3dSCy Schubert	consider using the configuration file @code{interface} command, which
2122b15cb3dSCy Schubert	is more versatile.
213ea906c41SOllivier Robert	_EndOfDoc_;
214ea906c41SOllivier Robert};
215ea906c41SOllivier Robert
216ea906c41SOllivier Robertflag = {
217ea906c41SOllivier Robert    ifdef     = SYS_WINNT;
218ea906c41SOllivier Robert    name      = modifymmtimer;
219ea906c41SOllivier Robert    value     = M;
220ea906c41SOllivier Robert    descrip   = "Modify Multimedia Timer (Windows only)";
221ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
2222b15cb3dSCy Schubert	Set the Windows Multimedia Timer to highest resolution.  This
2232b15cb3dSCy Schubert	ensures the resolution does not change while ntpd is running,
2242b15cb3dSCy Schubert	avoiding timekeeping glitches associated with changes.
225ea906c41SOllivier Robert	_EndOfDoc_;
226ea906c41SOllivier Robert};
227ea906c41SOllivier Robert
228ea906c41SOllivier Robertflag = {
229ea906c41SOllivier Robert    name      = nofork;
230ea906c41SOllivier Robert    value     = n;
2312b15cb3dSCy Schubert    flags-cant = wait-sync;
232ea906c41SOllivier Robert    descrip   = "Do not fork";
233ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
234ea906c41SOllivier Robert	_EndOfDoc_;
235ea906c41SOllivier Robert};
236ea906c41SOllivier Robert
237ea906c41SOllivier Robertflag = {
238ea906c41SOllivier Robert    name      = nice;
239ea906c41SOllivier Robert    value     = N;
240ea906c41SOllivier Robert    descrip   = "Run at high priority";
241ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
242ea906c41SOllivier Robert	To the extent permitted by the operating system, run
2432b15cb3dSCy Schubert	@code{ntpd}
244ea906c41SOllivier Robert	at the highest priority.
245ea906c41SOllivier Robert	_EndOfDoc_;
246ea906c41SOllivier Robert};
247ea906c41SOllivier Robert
248ea906c41SOllivier Robertflag = {
249ea906c41SOllivier Robert    name      = pidfile;
250ea906c41SOllivier Robert    value     = p;
251ea906c41SOllivier Robert    arg-type  = string;
252ea906c41SOllivier Robert    descrip   = "path to the PID file";
253ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
254ea906c41SOllivier Robert	Specify the name and path of the file used to record
2552b15cb3dSCy Schubert	@code{ntpd}'s
256ea906c41SOllivier Robert	process ID.
257ea906c41SOllivier Robert	This is the same operation as the
2582b15cb3dSCy Schubert	@code{pidfile} @kbd{pidfile}
259ea906c41SOllivier Robert	configuration file directive.
260ea906c41SOllivier Robert	_EndOfDoc_;
261ea906c41SOllivier Robert};
262ea906c41SOllivier Robert
263ea906c41SOllivier Robertflag = {
264ea906c41SOllivier Robert    name      = priority;
265ea906c41SOllivier Robert    value     = P;
266ea906c41SOllivier Robert    arg-type  = number;
267ea906c41SOllivier Robert    descrip   = "Process priority";
268ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
269ea906c41SOllivier Robert	To the extent permitted by the operating system, run
2702b15cb3dSCy Schubert	@code{ntpd}
271ea906c41SOllivier Robert	at the specified
2722b15cb3dSCy Schubert	@code{sched_setscheduler(SCHED_FIFO)}
273ea906c41SOllivier Robert	priority.
274ea906c41SOllivier Robert	_EndOfDoc_;
275ea906c41SOllivier Robert};
276ea906c41SOllivier Robert
277ea906c41SOllivier Robertflag = {
278ea906c41SOllivier Robert    name      = quit;
279ea906c41SOllivier Robert    value     = q;
2802b15cb3dSCy Schubert    flags-cant = saveconfigquit;
2812b15cb3dSCy Schubert    flags-cant = wait-sync;
282ea906c41SOllivier Robert    descrip   = "Set the time and quit";
283ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
2842b15cb3dSCy Schubert	@code{ntpd}
2852b15cb3dSCy Schubert	will not daemonize and will exit after the clock is first
2862b15cb3dSCy Schubert	synchronized.  This behavior mimics that of the
2872b15cb3dSCy Schubert	@code{ntpdate}
2882b15cb3dSCy Schubert	program, which will soon be replaced with a shell script.
289ea906c41SOllivier Robert	The
2902b15cb3dSCy Schubert	@code{-g}
291ea906c41SOllivier Robert	and
2922b15cb3dSCy Schubert	@code{-x}
293ea906c41SOllivier Robert	options can be used with this option.
294ea906c41SOllivier Robert	Note: The kernel time discipline is disabled with this option.
295ea906c41SOllivier Robert	_EndOfDoc_;
296ea906c41SOllivier Robert};
297ea906c41SOllivier Robert
298ea906c41SOllivier Robertflag = {
299ea906c41SOllivier Robert    name      = propagationdelay;
300ea906c41SOllivier Robert    value     = r;
301ea906c41SOllivier Robert    arg-type  = string;
302ea906c41SOllivier Robert    descrip   = "Broadcast/propagation delay";
303ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
304ea906c41SOllivier Robert	Specify the default propagation delay from the broadcast/multicast server to this client. This is necessary only if the delay cannot be computed automatically by the protocol.
305ea906c41SOllivier Robert	_EndOfDoc_;
306ea906c41SOllivier Robert};
307ea906c41SOllivier Robert
308ea906c41SOllivier Robertflag = {
3092b15cb3dSCy Schubert    ifdef     = SAVECONFIG;
3102b15cb3dSCy Schubert    name      = saveconfigquit;
3112b15cb3dSCy Schubert    arg-type  = string;
3122b15cb3dSCy Schubert    flags-cant = quit;
3132b15cb3dSCy Schubert    flags-cant = wait-sync;
3142b15cb3dSCy Schubert    descrip   = "Save parsed configuration and quit";
315ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
3162b15cb3dSCy Schubert	Cause @code{ntpd} to parse its startup configuration file and save an
3172b15cb3dSCy Schubert	equivalent to the given filename and exit.  This option was
3182b15cb3dSCy Schubert	designed for automated testing.
319ea906c41SOllivier Robert	_EndOfDoc_;
320ea906c41SOllivier Robert};
321ea906c41SOllivier Robert
322ea906c41SOllivier Robertflag = {
323ea906c41SOllivier Robert    name      = statsdir;
324ea906c41SOllivier Robert    value     = s;
325ea906c41SOllivier Robert    arg-type  = string;
326ea906c41SOllivier Robert    descrip   = "Statistics file location";
327ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
328ea906c41SOllivier Robert	Specify the directory path for files created by the statistics facility.
329ea906c41SOllivier Robert	This is the same operation as the
3302b15cb3dSCy Schubert	@code{statsdir} @kbd{statsdir}
331ea906c41SOllivier Robert	configuration file directive.
332ea906c41SOllivier Robert	_EndOfDoc_;
333ea906c41SOllivier Robert};
334ea906c41SOllivier Robert
335ea906c41SOllivier Robertflag = {
336ea906c41SOllivier Robert    name      = trustedkey;
337ea906c41SOllivier Robert    value     = t;
338ea906c41SOllivier Robert    arg-type  = string;
339ea906c41SOllivier Robert    descrip   = "Trusted key number";
340ea906c41SOllivier Robert    max       = NOLIMIT;
341ea906c41SOllivier Robert    arg-name  = tkey;
342ea906c41SOllivier Robert    stack-arg;
343ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
3442b15cb3dSCy Schubert	Add the specified key number to the trusted key list.
345ea906c41SOllivier Robert	_EndOfDoc_;
346ea906c41SOllivier Robert};
347ea906c41SOllivier Robert
348ea906c41SOllivier Robertflag = {
3492b15cb3dSCy Schubert    ifdef     = HAVE_DROPROOT;
350ea906c41SOllivier Robert    name      = user;
351ea906c41SOllivier Robert    value     = u;
352ea906c41SOllivier Robert    arg-type  = string;
353ea906c41SOllivier Robert    descrip   = "Run as userid (or userid:groupid)";
3542b15cb3dSCy Schubert    omitted-usage = "built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs";
355ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
356ea906c41SOllivier Robert	Specify a user, and optionally a group, to switch to.
3572b15cb3dSCy Schubert	This option is only available if the OS supports adjusting the clock
3582b15cb3dSCy Schubert	without full root privileges.
3592b15cb3dSCy Schubert	This option is supported under NetBSD (configure with
3602b15cb3dSCy Schubert	@code{--enable-clockctl}) or Linux (configure with
3612b15cb3dSCy Schubert	@code{--enable-linuxcaps}) or Solaris (configure with @code{--enable-solarisprivs}).
3622b15cb3dSCy Schubert	_EndOfDoc_;
3632b15cb3dSCy Schubert};
3642b15cb3dSCy Schubert
3652b15cb3dSCy Schubertflag = {
3662b15cb3dSCy Schubert    name      = updateinterval;
3672b15cb3dSCy Schubert    value     = U;
3682b15cb3dSCy Schubert    arg-type  = number;
3692b15cb3dSCy Schubert    descrip   = "interval in seconds between scans for new or dropped interfaces";
3702b15cb3dSCy Schubert    doc = <<-  _EndOfDoc_
3712b15cb3dSCy Schubert	Give the time in seconds between two scans for new or dropped interfaces.
3722b15cb3dSCy Schubert	For systems with routing socket support the scans will be performed shortly after the interface change
3732b15cb3dSCy Schubert	has been detected by the system.
3742b15cb3dSCy Schubert	Use 0 to disable scanning. 60 seconds is the minimum time between scans.
375ea906c41SOllivier Robert	_EndOfDoc_;
376ea906c41SOllivier Robert};
377ea906c41SOllivier Robert
378ea906c41SOllivier Robertflag = {
379ea906c41SOllivier Robert    name      = var;
3802b15cb3dSCy Schubert/*    value     = v;	Bug 817 */
381ea906c41SOllivier Robert    arg-type  = string;
382ea906c41SOllivier Robert    descrip   = "make ARG an ntp variable (RW)";
383ea906c41SOllivier Robert    max       = NOLIMIT;
384ea906c41SOllivier Robert    arg-name  = nvar;
385ea906c41SOllivier Robert    stack-arg;
386ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
387ea906c41SOllivier Robert	_EndOfDoc_;
388ea906c41SOllivier Robert};
389ea906c41SOllivier Robert
390ea906c41SOllivier Robertflag = {
391ea906c41SOllivier Robert    name      = dvar;
3922b15cb3dSCy Schubert/*    value     = V;	Bug 817 */
393ea906c41SOllivier Robert    arg-type  = string;
394ea906c41SOllivier Robert    descrip   = "make ARG an ntp variable (RW|DEF)";
395ea906c41SOllivier Robert    max       = NOLIMIT;
396ea906c41SOllivier Robert    arg-name  = ndvar;
397ea906c41SOllivier Robert    stack-arg;
398ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
399ea906c41SOllivier Robert	_EndOfDoc_;
400ea906c41SOllivier Robert};
401ea906c41SOllivier Robert
402ea906c41SOllivier Robertflag = {
4032b15cb3dSCy Schubert    ifdef     = HAVE_WORKING_FORK;
4042b15cb3dSCy Schubert    name      = wait-sync;
4052b15cb3dSCy Schubert    value     = w;
4062b15cb3dSCy Schubert    arg-type  = number;
4072b15cb3dSCy Schubert    flags-cant = nofork;
4082b15cb3dSCy Schubert    flags-cant = quit;
4092b15cb3dSCy Schubert    flags-cant = saveconfigquit;
4102b15cb3dSCy Schubert    descrip   = "Seconds to wait for first clock sync";
4112b15cb3dSCy Schubert    doc = <<-  _EndOfDoc_
4122b15cb3dSCy Schubert	If greater than zero, alters @code{ntpd}'s behavior when forking to
4132b15cb3dSCy Schubert	daemonize.  Instead of exiting with status 0 immediately after
4142b15cb3dSCy Schubert	the fork, the parent waits up to the specified number of
4152b15cb3dSCy Schubert	seconds for the child to first synchronize the clock.  The exit
4162b15cb3dSCy Schubert	status is zero (success) if the clock was synchronized,
4172b15cb3dSCy Schubert	otherwise it is @code{ETIMEDOUT}.
4182b15cb3dSCy Schubert	This provides the option for a script starting @code{ntpd} to easily
4192b15cb3dSCy Schubert	wait for the first set of the clock before proceeding.
4202b15cb3dSCy Schubert	_EndOfDoc_;
4212b15cb3dSCy Schubert/*
4222b15cb3dSCy Schubert** XXX: is it "first set" or is it more?  If it's only "first set" then
4232b15cb3dSCy Schubert** that's not the same as SYNC.
4242b15cb3dSCy Schubert*/
4252b15cb3dSCy Schubert};
4262b15cb3dSCy Schubert
4272b15cb3dSCy Schubertflag = {
428ea906c41SOllivier Robert    name      = slew;
429ea906c41SOllivier Robert    value     = x;
430ea906c41SOllivier Robert    descrip   = "Slew up to 600 seconds";
431ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
432ea906c41SOllivier Robert	Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped if above the threshold.
433ea906c41SOllivier Robert	This option sets the threshold to 600 s, which is well within the accuracy window to set the clock manually.
434ea906c41SOllivier Robert	Note: Since the slew rate of typical Unix kernels is limited to 0.5 ms/s, each second of adjustment requires an amortization interval of 2000 s.
435ea906c41SOllivier Robert	Thus, an adjustment as much as 600 s will take almost 14 days to complete.
436ea906c41SOllivier Robert	This option can be used with the
4372b15cb3dSCy Schubert	@code{-g}
438ea906c41SOllivier Robert	and
4392b15cb3dSCy Schubert	@code{-q}
440ea906c41SOllivier Robert	options.
441ea906c41SOllivier Robert	See the
4422b15cb3dSCy Schubert	@code{tinker}
443ea906c41SOllivier Robert	configuration file directive for other options.
444ea906c41SOllivier Robert	Note: The kernel time discipline is disabled with this option.
445ea906c41SOllivier Robert	_EndOfDoc_;
446ea906c41SOllivier Robert};
447ea906c41SOllivier Robert
448ea906c41SOllivier Robertflag = {
4492b15cb3dSCy Schubert    ifdef     = SYS_WINNT;
4502b15cb3dSCy Schubert    name      = usepcc;
4512b15cb3dSCy Schubert    descrip   = "Use CPU cycle counter (Windows only)";
452ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
4532b15cb3dSCy Schubert	Attempt to substitute the CPU counter for @code{QueryPerformanceCounter}.
4542b15cb3dSCy Schubert	The CPU counter and @code{QueryPerformanceCounter} are compared, and if
4552b15cb3dSCy Schubert	they have the same frequency, the CPU counter (RDTSC on x86) is
4562b15cb3dSCy Schubert	used directly, saving the overhead of a system call.
457ea906c41SOllivier Robert	_EndOfDoc_;
458ea906c41SOllivier Robert};
459ea906c41SOllivier Robert
460ea906c41SOllivier Robertflag = {
4612b15cb3dSCy Schubert    ifdef     = SYS_WINNT;
4622b15cb3dSCy Schubert    name      = pccfreq;
463ea906c41SOllivier Robert    arg-type  = string;
4642b15cb3dSCy Schubert    descrip   = "Force CPU cycle counter use (Windows only)";
465ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
4662b15cb3dSCy Schubert	Force substitution the CPU counter for @code{QueryPerformanceCounter}.
4672b15cb3dSCy Schubert	The CPU counter (RDTSC on x86) is used unconditionally with the
4682b15cb3dSCy Schubert	given frequency (in Hz).
469ea906c41SOllivier Robert	_EndOfDoc_;
470ea906c41SOllivier Robert};
4712b15cb3dSCy Schubert
4722b15cb3dSCy Schubertflag = {
4732b15cb3dSCy Schubert    ifdef     = HAVE_DNSREGISTRATION;
4742b15cb3dSCy Schubert    name      = mdns;
4752b15cb3dSCy Schubert    value     = m;
4762b15cb3dSCy Schubert    descrip   = "Register with mDNS as a NTP server";
4772b15cb3dSCy Schubert    doc = <<-  _EndOfDoc_
4782b15cb3dSCy Schubert	Registers as an NTP server with the local mDNS server which allows
4792b15cb3dSCy Schubert	the server to be discovered via mDNS client lookup.
4802b15cb3dSCy Schubert	_EndOfDoc_;
4812b15cb3dSCy Schubert};
482