xref: /freebsd-src/contrib/ntp/include/ntp_filegen.h (revision 416ba5c74546f32a993436a99516d35008e9f384)
1c0b746e5SOllivier Robert /*
2c0b746e5SOllivier Robert  * ntp_filegen.h,v 3.9 1996/12/01 16:02:45 kardel Exp
3c0b746e5SOllivier Robert  *
4c0b746e5SOllivier Robert  * definitions for NTP file generations support
5c0b746e5SOllivier Robert  *
6c0b746e5SOllivier Robert  *
7c0b746e5SOllivier Robert  * Copyright (C) 1992, 1996 by Rainer Pruy
8*2b15cb3dSCy Schubert  * Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany
9c0b746e5SOllivier Robert  *
10c0b746e5SOllivier Robert  * This code may be modified and used freely
11c0b746e5SOllivier Robert  * provided the credits remain intact.
12c0b746e5SOllivier Robert  */
13c0b746e5SOllivier Robert 
14c0b746e5SOllivier Robert #include "ntp_types.h"
15c0b746e5SOllivier Robert 
16c0b746e5SOllivier Robert /*
17c0b746e5SOllivier Robert  * supported file generation types
18c0b746e5SOllivier Robert  */
19c0b746e5SOllivier Robert 
20c0b746e5SOllivier Robert #define FILEGEN_NONE	255	/* no generations - use plain file name */
21c0b746e5SOllivier Robert #define FILEGEN_PID	1	/* one filegen per process incarnation */
22c0b746e5SOllivier Robert #define FILEGEN_DAY	2	/* one filegen per day */
23c0b746e5SOllivier Robert #define FILEGEN_WEEK	3	/* one filegen per week */
24c0b746e5SOllivier Robert #define FILEGEN_MONTH	4	/* one filegen per month */
25c0b746e5SOllivier Robert #define FILEGEN_YEAR	5	/* one filegen per year */
26c0b746e5SOllivier Robert #define FILEGEN_AGE	6	/* change filegen each FG_AGE_SECS */
27c0b746e5SOllivier Robert 
28c0b746e5SOllivier Robert /*
29c0b746e5SOllivier Robert  * supported file generation flags
30c0b746e5SOllivier Robert  */
31c0b746e5SOllivier Robert 
32c0b746e5SOllivier Robert #define FGEN_FLAG_LINK		0x01 /* make a link to base name */
33c0b746e5SOllivier Robert 
34c0b746e5SOllivier Robert #define FGEN_FLAG_ENABLED	0x80 /* set this to really create files	  */
35c0b746e5SOllivier Robert 				     /* without this, open is suppressed */
36c0b746e5SOllivier Robert 
37*2b15cb3dSCy Schubert typedef struct filegen_tag {
38c0b746e5SOllivier Robert 	FILE *	fp;	/* file referring to current generation */
39*2b15cb3dSCy Schubert 	char *	dir;	/* currently always statsdir */
40*2b15cb3dSCy Schubert 	char *	fname;	/* filename prefix of generation file */
41*2b15cb3dSCy Schubert 			/* must be malloced, will be fed to free() */
42*2b15cb3dSCy Schubert 	u_long	id_lo;	/* lower bound of ident value */
43*2b15cb3dSCy Schubert 	u_long	id_hi;	/* upper bound of ident value */
44c0b746e5SOllivier Robert 	u_char	type;	/* type of file generation */
45c0b746e5SOllivier Robert 	u_char	flag;	/* flags modifying processing of file generation */
46c0b746e5SOllivier Robert } FILEGEN;
47c0b746e5SOllivier Robert 
48*2b15cb3dSCy Schubert extern	void	filegen_setup	(FILEGEN *, u_int32);
49*2b15cb3dSCy Schubert extern	void	filegen_config	(FILEGEN *, const char *, const char *,
50*2b15cb3dSCy Schubert 				 u_int, u_int);
51*2b15cb3dSCy Schubert extern	void	filegen_statsdir(void);
52*2b15cb3dSCy Schubert extern	FILEGEN *filegen_get	(const char *);
53*2b15cb3dSCy Schubert extern	void	filegen_register (const char *, const char *, FILEGEN *);
54*2b15cb3dSCy Schubert #ifdef DEBUG
55*2b15cb3dSCy Schubert extern	void	filegen_unregister(const char *);
56*2b15cb3dSCy Schubert #endif
57