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