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 thdr.version.epoch = htonl(2);
37 thdr.version.counter = htonl(0);
38 thdr.magic = htonl(UBIK_MAGIC);
39 thdr.size = htons(HDRSIZE);
40 lseek(dbase_fd, 0, 0);
41 write(dbase_fd, &thdr, sizeof(thdr));
49 ubik_BeginTransReadAny(struct ubik_dbase *dbase, afs_int32 transMode,
50 struct ubik_trans **transPtr)
56 ubik_AbortTrans(struct ubik_trans *transPtr)
62 ubik_EndTrans(struct ubik_trans *transPtr)
68 ubik_Tell(struct ubik_trans *transPtr, afs_int32 * fileid,
75 ubik_Truncate(struct ubik_trans *transPtr, afs_int32 length)
81 ubik_SetLock(struct ubik_trans *atrans, afs_int32 apos, afs_int32 alen,
88 ubik_WaitVersion(struct ubik_dbase *adatabase,
89 struct ubik_version *aversion)
95 ubik_CheckCache(struct ubik_trans *atrans, ubik_updatecache_func cbf, void *rock)
97 return (*cbf)(atrans, rock);
101 panic(char *format, ...)
105 va_start(ap, format);
110 printf("BACK FROM ABORT\n"); /* shouldn't come back from floating pt exception */
111 exit(1); /* never know, though */
115 ubik_GetVersion(struct ubik_trans *dummy, struct ubik_version *ver)
117 memset(ver, 0, sizeof(struct ubik_version));
123 ubik_Seek(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos)
125 if (lseek(dbase_fd, pos + HDRSIZE, 0) < 0) {
133 ubik_Write(struct ubik_trans *tt, void *buf, afs_int32 len)
137 status = write(dbase_fd, buf, len);
139 perror("ubik_Write");
146 ubik_Read(struct ubik_trans *tt, void *buf, afs_int32 len)
150 status = read(dbase_fd, buf, len);
156 memset((char *)buf + status, 0, len - status);
161 /* Global declarations from ubik.c */
162 afs_int32 ubik_quorum = 0;
163 struct ubik_dbase *ubik_dbase = 0;
164 struct ubik_stats ubik_stats;
165 afs_uint32 ubik_host[UBIK_MAX_INTERFACE_ADDR];
166 afs_int32 ubik_epochTime = 0;
167 afs_int32 urecovery_state = 0;
169 struct rx_securityClass *ubik_sc[3];
172 /* Other declarations */
175 afsconf_GetNoAuthFlag(struct afsconf_dir *adir)
181 char *prdir = "/dev/null";
182 struct prheader cheader;