xref: /csrg-svn/usr.sbin/timed/timed/globals.h (revision 42829)
123666Sgusella /*
223666Sgusella  * Copyright (c) 1983 Regents of the University of California.
333123Sbostic  * All rights reserved.
433123Sbostic  *
5*42829Sbostic  * %sccs.include.redist.c%
633123Sbostic  *
7*42829Sbostic  *	@(#)globals.h	2.7 (Berkeley) 06/01/90
823666Sgusella  */
923666Sgusella 
1024920Sbloom #include <sys/param.h>
1123666Sgusella #include <stdio.h>
1223666Sgusella #include <sys/time.h>
1323666Sgusella #include <errno.h>
1423666Sgusella #include <syslog.h>
1523666Sgusella #include <sys/socket.h>
1623666Sgusella #include <netinet/in.h>
1723666Sgusella #include <netdb.h>
1823666Sgusella #include <arpa/inet.h>
1923666Sgusella 
2023666Sgusella extern int errno;
2125579Sbloom extern int sock;
2223666Sgusella 
2328830Skarels #define SAMPLEINTVL	240		/* synch() freq for master, sec */
2428830Skarels #define	MAXADJ		20		/* max correction (sec) for adjtime */
2528830Skarels /*
2628830Skarels  * Parameters for network time measurement
2728830Skarels  * of each host using ICMP timestamp requests.
2828830Skarels  */
2928830Skarels #define RANGE		20		/* best expected round-trip time, ms */
3028830Skarels #define MSGS 		5		/* # of timestamp replies to average */
3128830Skarels #define TRIALS		10		/* max # of timestamp echos sent */
3228830Skarels 
3323666Sgusella #define MINTOUT		360
3423666Sgusella #define MAXTOUT		900
3523666Sgusella 
3623666Sgusella #define GOOD		1
3723666Sgusella #define UNREACHABLE	2
3823666Sgusella #define NONSTDTIME	3
3923666Sgusella #define HOSTDOWN 	0x7fffffff
4024920Sbloom 
4124920Sbloom #define OFF	0
4224920Sbloom #define ON	1
4324920Sbloom 
4428830Skarels /*
4528830Skarels  * Global and per-network states.
4628830Skarels  */
4728830Skarels #define NOMASTER 	0		/* no master on any network */
4828830Skarels #define SLAVE 		1
4928830Skarels #define MASTER		2
5028830Skarels #define IGNORE		4
5128830Skarels #define ALL		(SLAVE|MASTER|IGNORE)
5225579Sbloom #define SUBMASTER	(SLAVE|MASTER)
5324920Sbloom 
5428830Skarels #define NHOSTS		100	/* max number of hosts controlled by timed */
5524920Sbloom 
5624920Sbloom struct host {
5724920Sbloom 	char *name;
5825579Sbloom 	struct sockaddr_in addr;
5924920Sbloom 	long delta;
6024920Sbloom 	u_short seq;
6124920Sbloom };
6224920Sbloom 
6325579Sbloom struct netinfo {
6425579Sbloom 	struct netinfo *next;
6525579Sbloom 	u_long net;
6625579Sbloom 	u_long mask;
6725579Sbloom 	struct in_addr my_addr;
6825579Sbloom 	struct sockaddr_in dest_addr;	/* broadcast addr or point-point */
6925579Sbloom 	long status;
7025579Sbloom };
7125579Sbloom 
7225579Sbloom extern struct netinfo *nettab;
7325579Sbloom extern int status;
7425579Sbloom extern int trace;
7525579Sbloom extern int sock;
7625579Sbloom extern struct sockaddr_in from;
7727042Sbloom extern struct netinfo *fromnet, *slavenet;
7825579Sbloom extern FILE *fd;
7925579Sbloom extern char hostname[];
8025579Sbloom extern char tracefile[];
8125579Sbloom extern struct host hp[];
8225579Sbloom extern int backoff;
8325579Sbloom extern long delay1, delay2;
8425579Sbloom extern int slvcount;
8527042Sbloom extern int nslavenets;		/* Number of nets were I could be a slave */
8627042Sbloom extern int nmasternets;		/* Number of nets were I could be a master */
8727042Sbloom extern int nignorednets;	/* Number of ignored nets */
8827042Sbloom extern int nnets;		/* Number of nets I am connected to */
8925579Sbloom 
9025579Sbloom char *strcpy(), *malloc();
91