2 * Amanda, The Advanced Maryland Automatic Network Disk Archiver
3 * Copyright (c) 1991-1998 University of Maryland at College Park
6 * Permission to use, copy, modify, distribute, and sell this software and its
7 * documentation for any purpose is hereby granted without fee, provided that
8 * the above copyright notice appear in all copies and that both that
9 * copyright notice and this permission notice appear in supporting
10 * documentation, and that the name of U.M. not be used in advertising or
11 * publicity pertaining to distribution of the software without specific,
12 * written prior permission. U.M. makes no representations about the
13 * suitability of this software for any purpose. It is provided "as is"
14 * without express or implied warranty.
16 * U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M.
18 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
20 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
21 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23 * Author: James da Silva, Systems Design and Analysis Group
24 * Computer Science Department
25 * University of Maryland at College Park
28 * $Id: infofile.h,v 1.13 2005/03/16 18:15:05 martinea Exp $
30 * interface for current info file reading code
37 #define DUMP_LEVELS 10
39 #define EPOCH ((time_t)0)
42 #define NB_HISTORY 100
43 #define newperf(ary,f) ( ary[2]=ary[1], ary[1]=ary[0], ary[0]=(f) )
45 typedef struct stats_s {
46 /* fields updated by dumper */
47 long size; /* original size of dump in kbytes */
48 long csize; /* compressed size of dump in kbytes */
49 long secs; /* time of dump in secs */
50 time_t date; /* end time of dump */
51 /* fields updated by taper */
52 int filenum; /* file number on tape */
53 char label[MAX_LABEL]; /* tape label */
56 typedef struct history_s {
57 int level; /* level of dump */
58 long size; /* original size of dump in kbytes */
59 long csize; /* compressed size of dump in kbytes */
60 time_t date; /* time of dump */
61 long secs; /* time of dump in secs */
64 typedef struct perf_s {
65 float rate[AVG_COUNT];
66 float comp[AVG_COUNT];
69 typedef struct info_s {
70 unsigned int command; /* command word */
71 # define NO_COMMAND 0 /* no outstanding commands */
72 # define FORCE_FULL 1 /* force level 0 at next run */
73 # define FORCE_BUMP 2 /* force bump at next run */
74 # define FORCE_NO_BUMP 4 /* force no-bump at next run */
77 stats_t inf[DUMP_LEVELS];
78 int last_level, consecutive_runs;
79 history_t history[NB_HISTORY+1];
83 int open_infofile P((char *infofile));
84 void close_infofile P((void));
86 char *get_dumpdate P((info_t *info, int level));
87 double perf_average P((float *array, double def));
88 int get_info P((char *hostname, char *diskname, info_t *info));
89 int get_firstkey P((char *hostname, int hostname_size,
90 char *diskname, int diskname_size));
91 int get_nextkey P((char *hostname, int hostname_size,
92 char *diskname, int diskname_size));
93 int put_info P((char *hostname, char *diskname, info_t *info));
94 int del_info P((char *hostname, char *diskname));
96 #endif /* ! INFOFILE_H */