X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/blobdiff_plain/e1f001e59af79d0676b68b964b556c1d1962d022..refs/heads/LOCKING:/afssync/ubik.c diff --git a/afssync/ubik.c b/afssync/ubik.c index 07fa2d3f..f00891c4 100644 --- a/afssync/ubik.c +++ b/afssync/ubik.c @@ -1,6 +1,8 @@ -/* $Header$ */ +/* $Id$ */ #include +#include + #include #define UBIK_INTERNALS #include @@ -8,41 +10,91 @@ #include "print.h" #include "prserver.h" - +extern int dbase_fd; struct ubik_dbase *dbase; -long ubik_BeginTrans() +int ubik_ServerInit() { return(0); } -long ubik_SetLock() +int ubik_BeginTrans() { + static int init=0; + struct ubik_hdr thdr; + + if (!init) { + thdr.version.epoch = htonl(0); + thdr.version.counter = htonl(0); + thdr.magic = htonl(UBIK_MAGIC); + thdr.size = htonl(HDRSIZE); + lseek(dbase_fd, 0, 0); + write(dbase_fd, &thdr, sizeof(thdr)); + fsync(dbase_fd); + init = 1; + } return(0); } -long ubik_AbortTrans() +int ubik_BeginTransReadAny() { return(0); } -long ubik_GetVersion(dummy, ver) -int dummy; -struct ubik_version *ver; +int ubik_AbortTrans() +{ + return(0); +} + +int ubik_EndTrans() { - bzero(ver, sizeof(struct ubik_version)); return(0); } -long ubik_EndTrans() +int ubik_Tell() { return(0); } +int ubik_Truncate() +{ + return(0); +} + +long ubik_SetLock() +{ + return(0); +} + +int ubik_WaitVersion() +{ + return(0); +} + +int ubik_CacheUpdate() +{ + return(0); +} + +int panic(a, b, c, d) +char *a, *b, *c, *d; +{ + printf(a, b, c, d); + abort(); + printf("BACK FROM ABORT\n"); /* shouldn't come back from floating pt exception */ + exit(1); /* never know, though */ +} + +int ubik_GetVersion(dummy, ver) +int dummy; +struct ubik_version *ver; +{ + bzero(ver, sizeof(struct ubik_version)); + return(0); +} -extern int dbase_fd; -long ubik_Seek(tt, afd, pos) +int ubik_Seek(tt, afd, pos) struct ubik_trans *tt; long afd; long pos; @@ -54,7 +106,7 @@ long pos; return(0); } -long ubik_Write(tt, buf, len) +int ubik_Write(tt, buf, len) struct ubik_trans *tt; char *buf; long len; @@ -69,7 +121,7 @@ long len; return(0); } -long ubik_Read(tt, buf, len) +int ubik_Read(tt, buf, len) struct ubik_trans *tt; char *buf; long len; @@ -87,7 +139,18 @@ long len; } -char *prdir = "/dev/null"; +/* Global declarations from ubik.c */ +long ubik_quorum=0; +struct ubik_dbase *ubik_dbase=0; +struct ubik_stats ubik_stats; +long ubik_host; +long ubik_epochTime = 0; +long urecovery_state = 0; + +struct rx_securityClass *ubik_sc[3]; + + +/* Other declarations */ afsconf_GetNoAuthFlag() { @@ -95,4 +158,7 @@ afsconf_GetNoAuthFlag() } +char *prdir = "/dev/null"; struct prheader cheader; +int pr_realmNameLen; +char *pr_realmName;