ntp_filegen.h revision 290001
1331722Seadler/*
2256694Snp * ntp_filegen.h,v 3.9 1996/12/01 16:02:45 kardel Exp
3256694Snp *
4256694Snp * definitions for NTP file generations support
5256694Snp *
6256694Snp *
7256694Snp * Copyright (C) 1992, 1996 by Rainer Pruy
8256694Snp * Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany
9256694Snp *
10256694Snp * This code may be modified and used freely
11256694Snp * provided the credits remain intact.
12256694Snp */
13256694Snp
14256694Snp#include "ntp_types.h"
15256694Snp
16256694Snp/*
17256694Snp * supported file generation types
18256694Snp */
19256694Snp
20256694Snp#define FILEGEN_NONE	255	/* no generations - use plain file name */
21256694Snp#define FILEGEN_PID	1	/* one filegen per process incarnation */
22256694Snp#define FILEGEN_DAY	2	/* one filegen per day */
23256694Snp#define FILEGEN_WEEK	3	/* one filegen per week */
24256694Snp#define FILEGEN_MONTH	4	/* one filegen per month */
25256694Snp#define FILEGEN_YEAR	5	/* one filegen per year */
26256694Snp#define FILEGEN_AGE	6	/* change filegen each FG_AGE_SECS */
27256694Snp
28256694Snp/*
29256694Snp * supported file generation flags
30256694Snp */
31256694Snp
32256694Snp#define FGEN_FLAG_LINK		0x01 /* make a link to base name */
33256694Snp
34256694Snp#define FGEN_FLAG_ENABLED	0x80 /* set this to really create files	  */
35256694Snp				     /* without this, open is suppressed */
36256694Snp
37256694Snptypedef struct filegen_tag {
38256694Snp	FILE *	fp;	/* file referring to current generation */
39256694Snp	char *	dir;	/* currently always statsdir */
40256694Snp	char *	fname;	/* filename prefix of generation file */
41256694Snp			/* must be malloced, will be fed to free() */
42256694Snp	u_long	id_lo;	/* lower bound of ident value */
43256694Snp	u_long	id_hi;	/* upper bound of ident value */
44256694Snp	u_char	type;	/* type of file generation */
45256694Snp	u_char	flag;	/* flags modifying processing of file generation */
46331769Shselasky} FILEGEN;
47256694Snp
48256694Snpextern	void	filegen_setup	(FILEGEN *, u_int32);
49256694Snpextern	void	filegen_config	(FILEGEN *, const char *, const char *,
50318798Snp				 u_int, u_int);
51318798Snpextern	void	filegen_statsdir(void);
52297124Snpextern	FILEGEN *filegen_get	(const char *);
53318798Snpextern	void	filegen_register (const char *, const char *, FILEGEN *);
54331769Shselasky#ifdef DEBUG
55297124Snpextern	void	filegen_unregister(const char *);
56318798Snp#endif
57256694Snp