154359Sroberto/*
254359Sroberto * ntp_filegen.h,v 3.9 1996/12/01 16:02:45 kardel Exp
354359Sroberto *
454359Sroberto * definitions for NTP file generations support
554359Sroberto *
654359Sroberto *
754359Sroberto * Copyright (C) 1992, 1996 by Rainer Pruy
8280849Scy * Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany
954359Sroberto *
1054359Sroberto * This code may be modified and used freely
1154359Sroberto * provided the credits remain intact.
1254359Sroberto */
1354359Sroberto
1454359Sroberto#include "ntp_types.h"
1554359Sroberto
1654359Sroberto/*
1754359Sroberto * supported file generation types
1854359Sroberto */
1954359Sroberto
2054359Sroberto#define FILEGEN_NONE	255	/* no generations - use plain file name */
2154359Sroberto#define FILEGEN_PID	1	/* one filegen per process incarnation */
2254359Sroberto#define FILEGEN_DAY	2	/* one filegen per day */
2354359Sroberto#define FILEGEN_WEEK	3	/* one filegen per week */
2454359Sroberto#define FILEGEN_MONTH	4	/* one filegen per month */
2554359Sroberto#define FILEGEN_YEAR	5	/* one filegen per year */
26280849Scy#define FILEGEN_AGE	6	/* change filegen each FG_AGE_SECS */
2754359Sroberto
2854359Sroberto/*
2954359Sroberto * supported file generation flags
3054359Sroberto */
3154359Sroberto
3254359Sroberto#define FGEN_FLAG_LINK		0x01 /* make a link to base name */
3354359Sroberto
34280849Scy#define FGEN_FLAG_ENABLED	0x80 /* set this to really create files	  */
3554359Sroberto				     /* without this, open is suppressed */
3654359Sroberto
37280849Scytypedef struct filegen_tag {
38280849Scy	FILE *	fp;	/* file referring to current generation */
39280849Scy	char *	dir;	/* currently always statsdir */
40280849Scy	char *	fname;	/* filename prefix of generation file */
41280849Scy			/* must be malloced, will be fed to free() */
42280849Scy	u_long	id_lo;	/* lower bound of ident value */
43280849Scy	u_long	id_hi;	/* upper bound of ident value */
44280849Scy	u_char	type;	/* type of file generation */
45280849Scy	u_char	flag;	/* flags modifying processing of file generation */
46280849Scy} FILEGEN;
4754359Sroberto
48280849Scyextern	void	filegen_setup	(FILEGEN *, u_int32);
49280849Scyextern	void	filegen_config	(FILEGEN *, const char *, const char *,
50280849Scy				 u_int, u_int);
51280849Scyextern	void	filegen_statsdir(void);
52280849Scyextern	FILEGEN *filegen_get	(const char *);
53280849Scyextern	void	filegen_register (const char *, const char *, FILEGEN *);
54280849Scy#ifdef DEBUG
55280849Scyextern	void	filegen_unregister(const char *);
56280849Scy#endif
57