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