/*      $NetBSD: ntp_filegen.h,v 1.8 2020/05/25 20:47:19 christos Exp $ */

/*
* ntp_filegen.h,v 3.9 1996/12/01 16:02:45 kardel Exp
*
* definitions for NTP file generations support
*
*
* Copyright (C) 1992, 1996 by Rainer Pruy
* Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany
*
* This code may be modified and used freely
* provided the credits remain intact.
*/

#include "ntp_types.h"

/*
* supported file generation types
*/

#define FILEGEN_NONE    255     /* no generations - use plain file name */
#define FILEGEN_PID     1       /* one filegen per process incarnation */
#define FILEGEN_DAY     2       /* one filegen per day */
#define FILEGEN_WEEK    3       /* one filegen per week */
#define FILEGEN_MONTH   4       /* one filegen per month */
#define FILEGEN_YEAR    5       /* one filegen per year */
#define FILEGEN_AGE     6       /* change filegen each FG_AGE_SECS */

/*
* supported file generation flags
*/

#define FGEN_FLAG_LINK          0x01 /* make a link to base name */

#define FGEN_FLAG_ENABLED       0x80 /* set this to really create files   */
                                    /* without this, open is suppressed */

typedef struct filegen_tag {
       FILE *  fp;     /* file referring to current generation */
       char *  dir;    /* currently always statsdir */
       char *  fname;  /* filename prefix of generation file */
                       /* must be malloced, will be fed to free() */
       u_long  id_lo;  /* lower bound of ident value */
       u_long  id_hi;  /* upper bound of ident value */
       u_char  type;   /* type of file generation */
       u_char  flag;   /* flags modifying processing of file generation */
} FILEGEN;

extern  void    filegen_setup   (FILEGEN *, u_int32);
extern  void    filegen_config  (FILEGEN *, const char *, const char *,
                                u_int, u_int);
extern  void    filegen_statsdir(void);
extern  FILEGEN *filegen_get    (const char *);
extern  void    filegen_register (const char *, const char *, FILEGEN *);
#ifdef DEBUG
extern  void    filegen_unregister(const char *);
#endif