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.7.4.4 1998/12/03 03:02:45 martinea Exp $
30 * interface for current info file reading code
37 #define DUMP_LEVELS 10
39 #define EPOCH ((time_t)0)
42 #define newperf(ary,f) ( ary[2]=ary[1], ary[1]=ary[0], ary[0]=(f) )
44 typedef struct stats_s {
45 /* fields updated by dumper */
46 long size; /* original size of dump in kbytes */
47 long csize; /* compressed size of dump in kbytes */
48 long secs; /* time of dump in secs */
49 time_t date; /* end time of dump */
50 /* fields updated by taper */
51 int filenum; /* file number on tape */
52 char label[MAX_LABEL]; /* tape label */
55 typedef struct perf_s {
56 float rate[AVG_COUNT];
57 float comp[AVG_COUNT];
60 typedef struct info_s {
61 unsigned int command; /* command word */
62 # define NO_COMMAND 0 /* no outstanding commands */
63 # define FORCE_FULL 1 /* force level 0 at next run */
64 # define FORCE_BUMP 2 /* force bump at next run */
65 # define FORCE_NO_BUMP 4 /* force no-bump at next run */
68 stats_t inf[DUMP_LEVELS];
69 int last_level, consecutive_runs;
73 int open_infofile P((char *infofile));
74 void close_infofile P((void));
76 char *get_dumpdate P((info_t *info, int level));
77 double perf_average P((float *array, double def));
78 int get_info P((char *hostname, char *diskname, info_t *info));
79 int get_firstkey P((char *hostname, int hostname_size,
80 char *diskname, int diskname_size));
81 int get_nextkey P((char *hostname, int hostname_size,
82 char *diskname, int diskname_size));
83 int put_info P((char *hostname, char *diskname, info_t *info));
84 int del_info P((char *hostname, char *diskname));
86 #endif /* ! INFOFILE_H */