Import Upstream version 1.8.5
[hcoop/debian/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 */