Convert buserver to libutil's logging
[openafs.git] / src / budb / globals.h
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  *
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 /*
11  * global configuration information for the database server
12  * ------------------
13  */
14
15 #define DEFAULT_DBPREFIX "bdb"  /* db name prefix */
16
17 /* debug and test flags */
18
19 #define DF_NOAUTH               0x1     /* no authentication */
20 #define DF_RECHECKNOAUTH        0x2     /* recheck no authentication ? */
21 #define DF_SMALLHT              0x4     /* use small hash tables */
22 #define DF_TRUNCATEDB           0x8     /* truncate database on startup */
23
24 extern int debugging;           /* for controlling debug output */
25
26 struct buServerConfS {
27     /* global configuration */
28     char *databaseDirectory;    /* where database is placed */
29     char *databaseName;         /* database file name */
30     char *databaseExtension;    /* extension (depends on ubik) */
31
32     /* ubik and comm. related */
33     afs_uint32 myHost;
34     afs_uint32 serverList[MAXSERVERS];  /* list of ubik servers */
35     char *cellConfigdir;        /* afs cell config. directory */
36     struct ubik_dbase *database;        /* handle for the database */
37
38     /* debug and test */
39     afs_uint32 debugFlags;
40 };
41
42 typedef struct buServerConfS buServerConfT;
43 typedef buServerConfT *buServerConfP;
44
45 extern buServerConfP globalConfPtr;
46
47 /* for synchronizing the threads dumping the database */
48
49 #define DS_WAITING      1       /* reader/writer sleeping */
50 #define DS_DONE         2       /* finished */
51 #define DS_DONE_ERROR   4       /* finished with errors */
52
53 #define DUMP_TTL_INC    300     /* secs. before dump times out */
54
55 #include <time.h>
56
57 struct dumpSyncS {
58     struct Lock ds_lock;        /* for this struct. */
59     afs_int32 statusFlags;      /* 0, or 1 for dump in progress */
60     int pipeFid[2];             /* pipe between threads */
61 #ifdef AFS_PTHREAD_ENV
62     pthread_mutex_t ds_writerStatus_mutex;
63     pthread_mutex_t ds_readerStatus_mutex;
64     pthread_cond_t ds_writerStatus_cond;
65     pthread_cond_t ds_readerStatus_cond;
66     pthread_t dumperPid;
67 #else
68     PROCESS dumperPid;          /* pid of dumper lwp */
69 #endif
70     char ds_writerStatus;
71     char ds_readerStatus;
72
73     struct ubik_trans *ut;      /* dump db transaction */
74     afs_int32 ds_bytes;         /* no. of bytes buffered */
75     time_t timeToLive;          /* time. After this, kill the dump */
76 };
77
78 typedef struct dumpSyncS dumpSyncT;
79 typedef dumpSyncT *dumpSyncP;
80
81 extern dumpSyncP dumpSyncPtr;   /* defined in dbs_dump.c */