11 #include <netinet/in.h>
17 #define UBIK_INTERNALS
19 #include <afs/cellconfig.h>
26 struct ubik_dbase *dbase;
29 ubik_ServerInit(afs_int32 myHost, short myPort, afs_int32 serverList[],
30 char *pathName, struct ubik_dbase **dbase)
36 ubik_BeginTrans(register struct ubik_dbase *dbase, afs_int32 transMode,
37 struct ubik_trans **transPtr)
43 thdr.version.epoch = htonl(2);
44 thdr.version.counter = htonl(0);
45 thdr.magic = htonl(UBIK_MAGIC);
46 thdr.size = htons(HDRSIZE);
47 lseek(dbase_fd, 0, 0);
48 write(dbase_fd, &thdr, sizeof(thdr));
56 ubik_BeginTransReadAny(register struct ubik_dbase *dbase, afs_int32 transMode,
57 struct ubik_trans **transPtr)
63 ubik_AbortTrans(register struct ubik_trans *transPtr)
69 ubik_EndTrans(register struct ubik_trans *transPtr)
75 ubik_Tell(register struct ubik_trans *transPtr, afs_int32 * fileid,
82 ubik_Truncate(register struct ubik_trans *transPtr, afs_int32 length)
88 ubik_SetLock(struct ubik_trans *atrans, afs_int32 apos, afs_int32 alen,
95 ubik_WaitVersion(register struct ubik_dbase *adatabase,
96 register struct ubik_version *aversion)
102 ubik_CacheUpdate(register struct ubik_trans *atrans)
108 panic(char *format, ...)
112 va_start(ap, format);
117 printf("BACK FROM ABORT\n"); /* shouldn't come back from floating pt exception */
118 exit(1); /* never know, though */
122 ubik_GetVersion(struct ubik_trans *dummy, struct ubik_version *ver)
124 memset(ver, 0, sizeof(struct ubik_version));
130 ubik_Seek(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos)
132 if (lseek(dbase_fd, pos + HDRSIZE, 0) < 0) {
140 ubik_Write(struct ubik_trans *tt, void *buf, afs_int32 len)
144 status = write(dbase_fd, buf, len);
146 perror("ubik_Write");
153 ubik_Read(struct ubik_trans *tt, void *buf, afs_int32 len)
157 status = read(dbase_fd, buf, len);
163 memset((char *)buf + status, 0, len - status);
168 /* Global declarations from ubik.c */
169 afs_int32 ubik_quorum = 0;
170 struct ubik_dbase *ubik_dbase = 0;
171 struct ubik_stats ubik_stats;
172 afs_uint32 ubik_host[UBIK_MAX_INTERFACE_ADDR];
173 afs_int32 ubik_epochTime = 0;
174 afs_int32 urecovery_state = 0;
176 struct rx_securityClass *ubik_sc[3];
179 /* Other declarations */
182 afsconf_GetNoAuthFlag(struct afsconf_dir *adir)
188 char *prdir = "/dev/null";
189 struct prheader cheader;