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