10 #include <netinet/in.h>
14 #define UBIK_INTERNALS
22 struct ubik_dbase *dbase;
25 ubik_ServerInit(afs_int32 myHost, short myPort, afs_int32 serverList[],
26 char *pathName, struct ubik_dbase **dbase)
32 ubik_BeginTrans(register struct ubik_dbase *dbase, afs_int32 transMode,
33 struct ubik_trans **transPtr)
39 thdr.version.epoch = htonl(2);
40 thdr.version.counter = htonl(0);
41 thdr.magic = htonl(UBIK_MAGIC);
42 thdr.size = htons(HDRSIZE);
43 lseek(dbase_fd, 0, 0);
44 write(dbase_fd, &thdr, sizeof(thdr));
52 ubik_BeginTransReadAny(register struct ubik_dbase *dbase, afs_int32 transMode,
53 struct ubik_trans **transPtr)
59 ubik_AbortTrans(register struct ubik_trans *transPtr)
65 ubik_EndTrans(register struct ubik_trans *transPtr)
71 ubik_Tell(register struct ubik_trans *transPtr, afs_int32 * fileid,
78 ubik_Truncate(register struct ubik_trans *transPtr, afs_int32 length)
84 ubik_SetLock(struct ubik_trans *atrans, afs_int32 apos, afs_int32 alen,
91 ubik_WaitVersion(register struct ubik_dbase *adatabase,
92 register struct ubik_version *aversion)
98 ubik_CacheUpdate(register struct ubik_trans *atrans)
104 panic(char *a, char *b, char *c, char *d)
108 printf("BACK FROM ABORT\n"); /* shouldn't come back from floating pt exception */
109 exit(1); /* never know, though */
113 ubik_GetVersion(int dummy, struct ubik_version *ver)
115 memset(ver, 0, sizeof(struct ubik_version));
121 ubik_Seek(struct ubik_trans *tt, long afd, long pos)
123 if (lseek(dbase_fd, pos + HDRSIZE, 0) < 0) {
131 ubik_Write(struct ubik_trans *tt, char *buf, long len)
135 status = write(dbase_fd, buf, len);
137 perror("ubik_Write");
144 ubik_Read(struct ubik_trans *tt, char *buf, long len)
148 status = read(dbase_fd, buf, len);
154 memset(&buf[status], 0, len - status);
159 /* Global declarations from ubik.c */
160 afs_int32 ubik_quorum = 0;
161 struct ubik_dbase *ubik_dbase = 0;
162 struct ubik_stats ubik_stats;
163 afs_uint32 ubik_host[UBIK_MAX_INTERFACE_ADDR];
164 afs_int32 ubik_epochTime = 0;
165 afs_int32 urecovery_state = 0;
167 struct rx_securityClass *ubik_sc[3];
170 /* Other declarations */
173 afsconf_GetNoAuthFlag(struct afsconf_dir *adir)
179 char *prdir = "/dev/null";
180 struct prheader cheader;