10 #include <afs/cellconfig.h>
11 #define UBIK_INTERNALS
19 struct ubik_dbase *dbase;
22 ubik_ServerInit(afs_uint32 myHost, short myPort, afs_uint32 serverList[],
23 const char *pathName, struct ubik_dbase **dbase)
29 ubik_BeginTrans(struct ubik_dbase *dbase, afs_int32 transMode,
30 struct ubik_trans **transPtr)
36 memset(&thdr, 0, sizeof(thdr));
37 thdr.version.epoch = htonl(2);
38 thdr.version.counter = htonl(0);
39 thdr.magic = htonl(UBIK_MAGIC);
40 thdr.size = htons(HDRSIZE);
41 lseek(dbase_fd, 0, 0);
42 write(dbase_fd, &thdr, sizeof(thdr));
50 ubik_BeginTransReadAny(struct ubik_dbase *dbase, afs_int32 transMode,
51 struct ubik_trans **transPtr)
57 ubik_AbortTrans(struct ubik_trans *transPtr)
63 ubik_EndTrans(struct ubik_trans *transPtr)
69 ubik_Tell(struct ubik_trans *transPtr, afs_int32 * fileid,
76 ubik_Truncate(struct ubik_trans *transPtr, afs_int32 length)
82 ubik_SetLock(struct ubik_trans *atrans, afs_int32 apos, afs_int32 alen,
89 ubik_WaitVersion(struct ubik_dbase *adatabase,
90 struct ubik_version *aversion)
96 ubik_CheckCache(struct ubik_trans *atrans, ubik_updatecache_func cbf, void *rock)
98 return (*cbf)(atrans, rock);
102 panic(char *format, ...)
106 va_start(ap, format);
111 printf("BACK FROM ABORT\n"); /* shouldn't come back from floating pt exception */
112 exit(1); /* never know, though */
116 ubik_GetVersion(struct ubik_trans *dummy, struct ubik_version *ver)
118 memset(ver, 0, sizeof(struct ubik_version));
124 ubik_Seek(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos)
126 if (lseek(dbase_fd, pos + HDRSIZE, 0) < 0) {
134 ubik_Write(struct ubik_trans *tt, void *buf, afs_int32 len)
138 status = write(dbase_fd, buf, len);
140 perror("ubik_Write");
147 ubik_Read(struct ubik_trans *tt, void *buf, afs_int32 len)
151 status = read(dbase_fd, buf, len);
157 memset((char *)buf + status, 0, len - status);
162 /* Global declarations from ubik.c */
163 afs_int32 ubik_quorum = 0;
164 struct ubik_dbase *ubik_dbase = 0;
165 struct ubik_stats ubik_stats;
166 afs_uint32 ubik_host[UBIK_MAX_INTERFACE_ADDR];
167 afs_int32 ubik_epochTime = 0;
168 afs_int32 urecovery_state = 0;
170 struct rx_securityClass *ubik_sc[3];
173 /* Other declarations */
176 afsconf_GetNoAuthFlag(struct afsconf_dir *adir)
182 char *prdir = "/dev/null";
183 struct prheader cheader;