Index: coda-src/asr/ruletypes.cc
===================================================================
RCS file: /coda-src/coda/coda-src/asr/ruletypes.cc,v
retrieving revision 4.19
diff -U3 -r4.19 ruletypes.cc
--- coda-src/asr/ruletypes.cc	27 Jul 2004 20:28:12 -0000	4.19
+++ coda-src/asr/ruletypes.cc	16 Aug 2004 14:38:06 -0000
@@ -383,7 +383,7 @@
 
     vioc.out_size = (short) sizeof(space);
     vioc.in_size = 0;
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     memset(space, 0, (int) sizeof(space));
     rc = pioctl(namep, _VICEIOCTL(_VIOC_ENABLEREPAIR), &vioc, 0);
     if (rc < 0) {
@@ -424,7 +424,7 @@
     sprintf(name, "%s/%s", idname, ifname);
     vioc.out_size = (short) sizeof(space);
     vioc.in_size = 0;
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     memset(space, 0, (int) sizeof(space));
     int rc = pioctl(name, _VICEIOCTL(_VIOC_ENABLEREPAIR), &vioc, 0);
     if (rc < 0) 
Index: coda-src/auth2/avenus.c
===================================================================
RCS file: /coda-src/coda/coda-src/auth2/avenus.c,v
retrieving revision 4.22
diff -U3 -r4.22 avenus.c
--- coda-src/auth2/avenus.c	21 Nov 2003 21:49:55 -0000	4.22
+++ coda-src/auth2/avenus.c	16 Aug 2004 14:38:06 -0000
@@ -117,12 +117,12 @@
     memcpy(&inbuff.ctoken, cToken, sizeof(ClearToken));
     strncpy(inbuff.realm, realm, MAXHOSTNAMELEN);
 
-    buffer.in = (char *)&inbuff;
+    buffer.in = CONV_U_INT64_T(&inbuff) ;
     buffer.out = 0;
     buffer.in_size = sizeof(inbuff);
     buffer.out_size = 0;
 
-    GetPathName(); 
+    GetPathName();
     rc = pioctl(pName, _VICEIOCTL(3), &buffer, 0);
     if(rc) {
 	return(-1);
@@ -141,8 +141,8 @@
     struct ViceIoctl buffer;
     venusbuff outbuff;
 
-    buffer.in = (char *)realm;
-    buffer.out = (char *)&outbuff;
+    buffer.in = CONV_U_INT64_T(realm);
+    buffer.out = CONV_U_INT64_T(&outbuff);
     buffer.in_size = strlen(realm) + 1;
     buffer.out_size = sizeof(venusbuff);
     GetPathName();
@@ -169,8 +169,8 @@
  /* Deletes internal state for viceId.  Returns 0.    */
 {
     struct ViceIoctl buffer;
-
-    buffer.in = realm;
+    
+    buffer.in = CONV_U_INT64_T(realm);
     buffer.out = 0;
     buffer.in_size = strlen(realm) + 1;
     buffer.out_size = 0;
Index: coda-src/egasr/filerepair.c
===================================================================
RCS file: /coda-src/coda/coda-src/egasr/filerepair.c,v
retrieving revision 4.10
diff -U3 -r4.10 filerepair.c
--- coda-src/egasr/filerepair.c	27 Jul 2004 20:28:12 -0000	4.10
+++ coda-src/egasr/filerepair.c	16 Aug 2004 14:38:07 -0000
@@ -62,7 +62,7 @@
 
     vi.in = 0;
     vi.in_size = 0;
-    vi.out = junk;
+    vi.out = CONV_U_INT64_T(junk);
     vi.out_size = (short) sizeof(junk);
     memset(junk, 0, (int) sizeof(junk));
 
@@ -116,9 +116,9 @@
 	
     /* do the repair */
     vioc.in_size = (short)(1+strlen(fixpath));
-    vioc.in = fixpath;
+    vioc.in = CONV_U_INT64_T(fixpath);
     vioc.out_size = (short)sizeof(space);
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     memset(space, 0, sizeof(space));
     rc = pioctl(argv[1], _VICEIOCTL(_VIOC_REPAIR), &vioc, 0);
     if (rc < 0 && errno != ETOOMANYREFS) {
Index: coda-src/egasr/removeinc.c
===================================================================
RCS file: /coda-src/coda/coda-src/egasr/removeinc.c,v
retrieving revision 4.10
diff -U3 -r4.10 removeinc.c
--- coda-src/egasr/removeinc.c	27 Jul 2004 20:28:12 -0000	4.10
+++ coda-src/egasr/removeinc.c	16 Aug 2004 14:38:07 -0000
@@ -84,7 +84,7 @@
     memset(&out, 0, sizeof(out));
     vio.in = NULL;
     vio.in_size = 0;
-    vio.out = (char *)&out;
+    vio.out = CONV_U_INT64_T(&out);
     vio.out_size = sizeof(out);
 
     rc = pioctl(name, _VICEIOCTL(_VIOC_GETFID), &vio, 0);
@@ -141,9 +141,9 @@
 
     /* dorepair on the fid with an empty file */
     vioc.in_size = (short)(1+strlen(tmpfname)); 
-    vioc.in = tmpfname;
+    vioc.in = CONV_U_INT64_T(tmpfname);
     vioc.out_size = (short) sizeof(space);
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     memset(space, 0, (int) sizeof(space));
     rc = pioctl(argv[1], _VICEIOCTL(_VIOC_REPAIR), &vioc, 0);
     if (rc < 0 && errno != ETOOMANYREFS) {
Index: coda-src/kerndep/pioctl.c
===================================================================
RCS file: /coda-src/coda/coda-src/kerndep/pioctl.c,v
retrieving revision 4.24
diff -U3 -r4.24 pioctl.c
--- coda-src/kerndep/pioctl.c	31 Dec 2003 17:23:57 -0000	4.24
+++ coda-src/kerndep/pioctl.c	16 Aug 2004 14:38:07 -0000
@@ -425,11 +425,11 @@
     /* Must change the size field of the command to match 
        that of the new structure. */
     unsigned long cmd = (com & ~(PIOCPARM_MASK << 16)); /* mask out size  */
-    int	size = ((com >> 16) & PIOCPARM_MASK) + sizeof(char *) + sizeof(int);
+    int	size = ((com >> 16) & PIOCPARM_MASK) + sizeof(u_int64_t) + sizeof(int);
 
     cmd	|= (size & PIOCPARM_MASK) << 16;  /* or in corrected size */
 
-    data.path = path;
+    data.path = CONV_U_INT64_T(path);
     data.follow = follow;
     data.vi = *vidata;
 
@@ -440,7 +440,6 @@
 	ctlfile = malloc(strlen(mtpt) + strlen(CODA_CONTROL) + 2);
 	sprintf(ctlfile, "%s/%s", mtpt, CODA_CONTROL);
     }
-
     code = _pioctl(ctlfile, cmd, &data);
 
     /* Return result of ioctl. */
Index: coda-src/librepair/path.cc
===================================================================
RCS file: /coda-src/coda/coda-src/librepair/path.cc,v
retrieving revision 4.7
diff -U3 -r4.7 path.cc
--- coda-src/librepair/path.cc	27 Jul 2004 20:28:13 -0000	4.7
+++ coda-src/librepair/path.cc	16 Aug 2004 14:38:07 -0000
@@ -245,7 +245,7 @@
 
     vi.in = 0;
     vi.in_size = 0;
-    vi.out = junk;
+    vi.out = CONV_U_INT64_T(junk);
     vi.out_size = sizeof(junk);
     memset(junk, 0, sizeof(junk));
 
Index: coda-src/librepair/repcmds.cc
===================================================================
RCS file: /coda-src/coda/coda-src/librepair/repcmds.cc,v
retrieving revision 4.15
diff -U3 -r4.15 repcmds.cc
--- coda-src/librepair/repcmds.cc	27 Jul 2004 20:28:13 -0000	4.15
+++ coda-src/librepair/repcmds.cc	16 Aug 2004 14:38:07 -0000
@@ -45,9 +45,9 @@
     }
 
     /* Obtain names of rw replicas */
-    vioc.in = NULL;
+    vioc.in = 0;
     vioc.in_size = 0;
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     vioc.out_size = (short)sizeof(space);
     memset(space, 0, sizeof(space));
     rc = pioctl((*repv)->rodir, _VICEIOCTL(_VIOC_ENABLEREPAIR), &vioc, 0);
@@ -69,9 +69,9 @@
 
     /* Begin the repair */
     sprintf(cmd, "%d 1", REP_CMD_BEGIN);
-    vioc.in = cmd;
+    vioc.in = CONV_U_INT64_T(cmd);
     vioc.in_size = (short)(strlen(cmd) + 1);
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     vioc.out_size = (short)sizeof(space);
     if ((rc = pioctl((*repv)->rodir, _VICEIOCTL(_VIOC_REP_CMD), &vioc, 0)) < 0) {
 	strerr(msg, msgsize, "REP_CMD_BEGIN failed: %s", strerror(errno));
@@ -80,7 +80,7 @@
     }
 
     /* Determine conflict type */
-    sscanf(vioc.out, "%d", &rc);
+    sscanf((char *) vioc.out, "%d", &rc);
     if (rc == 0)
 	(*repv)->local = 1; /* local/global */
     else if (rc == 1) {
@@ -157,9 +157,9 @@
 
 	for (i = 0; i < nreplicas; i++) {
 	    ClearIncon(vv[i]);
-	    vioc.in = (char *)&vv[i];
+	    vioc.in = CONV_U_INT64_T(&vv[i]);
 	    vioc.in_size = sizeof(vv_t);
-	    vioc.out = NULL;
+	    vioc.out = 0;
 	    vioc.out_size = 0;
 	    rc = pioctl(names[i], _VICEIOCTL(_VIOC_SETVV), &vioc, 0);
 	    if (rc) {
@@ -339,9 +339,9 @@
     }
 
     sprintf(buf, "%d", REP_CMD_DISCARD_ALL);
-    vioc.in = buf;
+    vioc.in = CONV_U_INT64_T(buf);
     vioc.in_size = (short)strlen(buf) + 1;
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     vioc.out_size = sizeof(space);
     rc = pioctl("/coda", _VICEIOCTL(_VIOC_REP_CMD), &vioc, 0);
     if (rc < 0) strerr(msg, msgsize, "%s", space);
@@ -429,21 +429,21 @@
 
     if (repv->local) { /* local/global conflict */
 	sprintf(cmd, "%d %d", REP_CMD_END, commit);
-	vioc.in = cmd;
+	vioc.in = CONV_U_INT64_T(cmd);
 	vioc.in_size = (short)(strlen(cmd) + 1);
-	vioc.out = space;
+	vioc.out = CONV_U_INT64_T(space);
 	vioc.out_size = sizeof(space);
 	if ((rc = pioctl("/coda", _VICEIOCTL(_VIOC_REP_CMD), &vioc, 0)) < 0)
 	    strerr(msg, msgsize, "REP_CMD_END failed: %s", strerror(errno));
-	else if (strcmp(vioc.out, "repair session completed") != 0) {
+	else if (strcmp((char *) vioc.out, "repair session completed") != 0) {
 	    strerr(msg, msgsize, "%s", vioc.out);
 	    rc = -1;
 	}
     }
     else { /* server/server conflict */
-	vioc.in = NULL;
+	vioc.in = 0;
 	vioc.in_size = 0;
-	vioc.out = NULL;
+	vioc.out = 0;
 	vioc.out_size = 0;
 	errno = 0;
 	if ((rc = pioctl(repv->mnt, _VICEIOCTL(_VIOC_DISABLEREPAIR), &vioc, 0)) < 0)
@@ -608,9 +608,9 @@
 {
     char piobuf[DEF_BUF];    
     struct ViceIoctl vio;
-    vio.in = NULL;
+    vio.in = 0;
     vio.in_size = 0;
-    vio.out = piobuf;
+    vio.out = CONV_U_INT64_T(piobuf);
     vio.out_size = sizeof(piobuf);
 
     /* Do the pioctl */
@@ -621,9 +621,9 @@
     int minquota0 = (int) vs->MinQuota;
     int maxquota0 = (int) vs->MaxQuota;
     for (int i = 1; i < nreplicas; i++) {
-	vio.in = NULL;
+	vio.in = 0;
 	vio.in_size = 0;
-	vio.out = piobuf;
+	vio.out = CONV_U_INT64_T(piobuf);
 	vio.out_size = sizeof(piobuf);
 
 	/* Do the pioctl */
@@ -683,9 +683,9 @@
 	buf = space;
 	len = sizeof(space);
     }
-    vioc.in = fixpath;
+    vioc.in = CONV_U_INT64_T(fixpath);
     vioc.in_size = strlen(fixpath) + 1;
-    vioc.out = buf;
+    vioc.out = CONV_U_INT64_T(buf);
     vioc.out_size = len;
     memset(buf, 0, len);
     rc = pioctl(repv->rodir, _VICEIOCTL(_VIOC_REPAIR), &vioc, 0);
@@ -857,7 +857,7 @@
     /* Set up parms to pioctl */
     vio.in = 0;
     vio.in_size = 0;
-    vio.out = piobuf;
+    vio.out = CONV_U_INT64_T(piobuf);
     vio.out_size = sizeof(piobuf);
 
     /* Do the pioctl */
Index: coda-src/librepair/resolve.cc
===================================================================
RCS file: /coda-src/coda/coda-src/librepair/resolve.cc,v
retrieving revision 4.28
diff -U3 -r4.28 resolve.cc
--- coda-src/librepair/resolve.cc	27 Jul 2004 20:28:13 -0000	4.28
+++ coda-src/librepair/resolve.cc	16 Aug 2004 14:38:07 -0000
@@ -76,7 +76,7 @@
 static int getfid (char *path, ViceFid *Fid, ViceVersionVector *VV, struct ViceIoctl *vi)
 {
     char buf[2048];
-    vi->out = buf;
+    vi->out = CONV_U_INT64_T(buf);
     vi->out_size = sizeof(buf);
                       
     if (pioctl(path, _VICEIOCTL(_VIOC_GETFID), vi, 0)) {
@@ -113,7 +113,7 @@
 {
     int getmtpt = 1;
     struct ViceIoctl vi;
-    vi.in = (char *)&getmtpt;
+    vi.in = CONV_U_INT64_T(&getmtpt);
     vi.in_size = sizeof(int);
     return getfid(path, Fid, VV, &vi);
 }
@@ -170,7 +170,7 @@
 
     vi.in_size = 0;
     vi.in = 0;
-    vi.out = AclBuf;
+    vi.out = CONV_U_INT64_T(AclBuf);
     vi.out_size = sizeof(AclBuf);
     if (pioctl(path, _VICEIOCTL(_VIOCGETAL), &vi, 0)){
 	perror("pioctl: GETAL");
@@ -666,9 +666,9 @@
     /* first get the path of the child relative to vol root */
     gp.fid = *cfid;
     strcpy(gp.realm, realm);
-    vi.in = (char *)&gp;
+    vi.in = CONV_U_INT64_T(&gp);
     vi.in_size = sizeof(gp);
-    vi.out = tmp;
+    vi.out = CONV_U_INT64_T(tmp);
     vi.out_size = sizeof(tmp);
     memset(tmp, 0, sizeof(tmp));
 
@@ -710,9 +710,9 @@
     //res_getfid(path, dfid, &VV);
     gp.fid = *cfid;
     strcpy(gp.realm, realm);
-    vi.in = (char *)&gp;
+    vi.in = CONV_U_INT64_T(&gp);
     vi.in_size = sizeof(gp);
-    vi.out = tmp;
+    vi.out = CONV_U_INT64_T(tmp);
     vi.out_size = sizeof(tmp);
     strcpy(path, "/coda");
     rc = pioctl(path, _VICEIOCTL(_VIOC_GETPFID), &vi, 0);
Index: coda-src/librepair/rvol.cc
===================================================================
RCS file: /coda-src/coda/coda-src/librepair/rvol.cc,v
retrieving revision 4.11
diff -U3 -r4.11 rvol.cc
--- coda-src/librepair/rvol.cc	27 Jul 2004 20:28:13 -0000	4.11
+++ coda-src/librepair/rvol.cc	16 Aug 2004 14:38:07 -0000
@@ -255,9 +255,9 @@
     int rc;
 
     /* get the server name by doing the pioctl (for compatibility with old venii) */
-    vioc.in = NULL;
+    vioc.in = 0;
     vioc.in_size = 0;
-    vioc.out = junk;
+    vioc.out = CONV_U_INT64_T(junk);
     vioc.out_size = sizeof(junk);
     memset(junk, 0, sizeof(junk));
     rc = pioctl(rwpath, _VICEIOCTL(_VIOCWHEREIS), &vioc, 1);
@@ -276,9 +276,9 @@
 static int volstat(char *path, char *space, int size) {
     struct ViceIoctl vioc;
     memset(space, 0, size);
-    vioc.in = NULL;
+    vioc.in = 0;
     vioc.in_size = 0;
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     vioc.out_size = size;
     return(pioctl(path, _VICEIOCTL(_VIOCGETVOLSTAT), &vioc, 1));
 }
Index: coda-src/repair/repair.cc
===================================================================
RCS file: /coda-src/coda/coda-src/repair/repair.cc,v
retrieving revision 4.42
diff -U3 -r4.42 repair.cc
--- coda-src/repair/repair.cc	27 Jul 2004 20:28:14 -0000	4.42
+++ coda-src/repair/repair.cc	16 Aug 2004 14:38:07 -0000
@@ -277,14 +277,14 @@
     if (checkIfLocal("checklocal")) return;
 
     sprintf(buf, "%d", REP_CMD_CHECK);
-    vioc.in = buf;
-    vioc.in_size = strlen(vioc.in) + 1;
-    vioc.out = space;
+    vioc.in = CONV_U_INT64_T(buf);
+    vioc.in_size = strlen((char*) vioc.in) + 1;
+    vioc.out = CONV_U_INT64_T(space);
     vioc.out_size = DEF_BUF;
 
     rc = pioctl("/coda", _VICEIOCTL(_VIOC_REP_CMD), &vioc, 0);
     if (rc < 0) perror("VIOC_REP_CMD(REP_CMD_CHECK)");
-    printf("%s\n", vioc.out);
+    printf("%s\n", (char*) vioc.out);
     fflush(stdout);
 }
 
@@ -358,15 +358,15 @@
     
     if (checkIfLocal("discardlocal")) return;
 
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     vioc.out_size = DEF_BUF;
     sprintf(buf, "%d", REP_CMD_DISCARD);
-    vioc.in = buf;    
+    vioc.in = CONV_U_INT64_T(buf);    
     vioc.in_size = (short) strlen(buf) + 1;
 
     rc = pioctl("/coda", _VICEIOCTL(_VIOC_REP_CMD), &vioc, 0);
     if (rc < 0) perror("VIOC_REP_CMD(REP_CMD_DISCARD)");
-    printf("%s\n", vioc.out);
+    printf("%s\n", (char*) vioc.out);
     fflush(stdout);
 }
 
@@ -437,17 +437,17 @@
 
     if (checkIfLocal("listlocal")) return;
 
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     vioc.out_size = DEF_BUF;
     strcpy(filename, "/tmp/listlocal.XXXXXX");
     mktemp(filename);
-    vioc.in = buf;
+    vioc.in = CONV_U_INT64_T(buf);
     sprintf(buf, "%d %s", REP_CMD_LIST, filename);
-    vioc.in_size = (short) strlen(vioc.in) + 1;
+    vioc.in_size = (short) strlen((char*) vioc.in) + 1;
 
     rc = pioctl("/coda", _VICEIOCTL(_VIOC_REP_CMD), &vioc, 0);
     if (rc < 0) perror("VIOC_REP_CMD(REP_CMD_LIST)");
-    printf("%s\n", vioc.out);
+    printf("%s\n", (char*) vioc.out);
     fflush(stdout);
     if (rc == 0) {
 	fd = open(filename, O_RDONLY, 0);
@@ -470,15 +470,15 @@
     if (checkIfLocal("preservealllocal")) return;
 
     /* Release volume-level locks */
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     vioc.out_size = DEF_BUF;
     sprintf(buf, "%d", REP_CMD_PRESERVE_ALL);
-    vioc.in = buf;
+    vioc.in = CONV_U_INT64_T(buf);
     vioc.in_size = (short) strlen(buf) + 1;
 
     rc = pioctl("/coda", _VICEIOCTL(_VIOC_REP_CMD), &vioc, 0);
     if (rc < 0) perror("VIOC_REP_CMD(REP_CMD_PRESERVE_ALL)");
-    printf("%s\n", vioc.out);
+    printf("%s\n", (char*) vioc.out);
     fflush(stdout);
 }
 
@@ -490,15 +490,15 @@
 
     if (checkIfLocal("preservelocal")) return;
 
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     vioc.out_size = DEF_BUF;
     sprintf(buf, "%d", REP_CMD_PRESERVE);
-    vioc.in = buf;
+    vioc.in = CONV_U_INT64_T(buf);
     vioc.in_size = (short) strlen(buf) + 1;
 
     rc = pioctl("/coda", _VICEIOCTL(_VIOC_REP_CMD), &vioc, 0);
     if (rc < 0) perror("VIOC_REP_CMD(REP_CMU_PRESERVE)");
-    printf("%s\n", vioc.out);
+    printf("%s\n", (char*) vioc.out);
     fflush(stdout);
 }
 
@@ -594,15 +594,15 @@
 
     if (checkIfLocal("setglobalview")) return;
     
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     vioc.out_size = DEF_BUF;
     sprintf(buf, "%d", REP_CMD_GLOBAL_VIEW);
-    vioc.in = buf;
+    vioc.in = CONV_U_INT64_T(buf);
     vioc.in_size = (short) strlen(buf) + 1;
 
     rc = pioctl("/coda", _VICEIOCTL(_VIOC_REP_CMD), &vioc, 0);
     if (rc < 0) perror("VIOC_REP_CMD(REP_CMD_GLOBAL_VIEW)");
-    printf("%s\n", vioc.out);
+    printf("%s\n", (char*) vioc.out);
     fflush(stdout);
 }
 
@@ -614,15 +614,15 @@
 
     if (checkIfLocal("setlocalview")) return;
 
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     vioc.out_size = DEF_BUF;
     sprintf(buf, "%d", REP_CMD_LOCAL_VIEW);
-    vioc.in = buf;
+    vioc.in = CONV_U_INT64_T(buf);
     vioc.in_size = (short) strlen(buf) + 1;
 
     rc = pioctl("/coda", _VICEIOCTL(_VIOC_REP_CMD), &vioc, 0);
     if (rc < 0) perror("VIOC_REP_CMD(REP_CMD_LOCAL_VIEW)");
-    printf("%s\n", vioc.out);
+    printf("%s\n", (char*) vioc.out);
     fflush(stdout);
 }
 
@@ -634,14 +634,14 @@
 
     if (checkIfLocal("setmixedview")) return;
 
-    vioc.out = space;
+    vioc.out = CONV_U_INT64_T(space);
     vioc.out_size = DEF_BUF;
     sprintf(buf, "%d", REP_CMD_MIXED_VIEW);
-    vioc.in = buf;
+    vioc.in = CONV_U_INT64_T(buf);
     vioc.in_size = (short) strlen(buf) + 1;
 
     rc = pioctl("/coda", _VICEIOCTL(_VIOC_REP_CMD), &vioc, 0);
     if (rc < 0) perror("VIOC_REP_CMD(REP_CMD_MIXED_VIEW)");
-    printf("%s\n", vioc.out);
+    printf("%s\n", (char*) vioc.out);
     fflush(stdout);
 }
Index: coda-src/venus/fidtest.cc
===================================================================
RCS file: /coda-src/coda/coda-src/venus/fidtest.cc,v
retrieving revision 4.9
diff -U3 -r4.9 fidtest.cc
--- coda-src/venus/fidtest.cc	23 May 2003 18:27:05 -0000	4.9
+++ coda-src/venus/fidtest.cc	16 Aug 2004 14:38:07 -0000
@@ -55,7 +55,7 @@
     struct ViceIoctl vi;
     vi.in = 0;
     vi.in_size = 0;
-    vi.out = (char *)&out;
+    vi.out = CONV_U_INT64_T(&out);
     vi.out_size = sizeof(struct GetFid);
 
     if (pioctl(argv[1], VIOC_GETFID, &vi, 0) != 0) {
Index: coda-src/venus/vproc_pioctl.cc
===================================================================
RCS file: /coda-src/coda/coda-src/venus/vproc_pioctl.cc,v
retrieving revision 4.66
diff -U3 -r4.66 vproc_pioctl.cc
--- coda-src/venus/vproc_pioctl.cc	27 Jul 2004 20:28:15 -0000	4.66
+++ coda-src/venus/vproc_pioctl.cc	16 Aug 2004 14:38:07 -0000
@@ -402,7 +402,7 @@
 		        }
 
 			/* Copy out the parent fid. */
-			memcpy(data->out, &f->pfid, sizeof(VenusFid));
+			memcpy((void *)data->out, &f->pfid, sizeof(VenusFid));
 			data->out_size = (short)sizeof(VenusFid);
 
 			break;
@@ -464,7 +464,7 @@
                     else
                         u.u_error = EOPNOTSUPP;
 
-		    data->out_size = (endp - data->out);
+		    data->out_size = (short) (endp - data->out);
 
 		    /* Make sure the kernel drops the symlink */
 		    (void)k_Purge(fid, 1);
@@ -691,7 +691,7 @@
 		    cp += strlen(offlinemsg) + 1;
 		    strcpy(cp, motd);
 		    cp += strlen(motd) + 1;
-		    data->out_size = (cp - data->out);
+		    data->out_size = (short) (cp - data->out);
 		    break;
 		    }
 
@@ -762,7 +762,7 @@
 		    cp += strlen(offlinemsg) + 1;
 		    strcpy(cp, motd);
 		    cp += strlen(motd) + 1;
-		    data->out_size = (cp - data->out);
+		    data->out_size = (short) (cp - data->out);
 		    break;
 		    }
 
@@ -814,7 +814,7 @@
 #define	RWVols	    ((VolumeId *)(startp))
 #define	ReturnCodes ((int *)(RWVols + VSG_MEMBERS))
 #define	endp	    ((char *)(ReturnCodes + VSG_MEMBERS))
-		    data->out_size = (endp - startp);
+		    data->out_size = (short) (endp - startp);
                     u.u_error = EOPNOTSUPP;
                     if (v->IsReplicated())
                         u.u_error = ((repvol *)v)->Repair(fid, RepairFile,
@@ -851,7 +851,7 @@
 
 		    /* Get statistics from each host. */
 		    /* OUT data for hosts that are incommunicado will be zero. */
-		    memset(data->out, 0, nHosts * (int)sizeof(ViceStatistics));
+		    memset((void*)data->out, 0, nHosts * (int)sizeof(ViceStatistics));
 		    ViceStatistics *Stats = (ViceStatistics *)data->out;
 		    for (i = 0; i < VSG_MEMBERS; i++)
 			if (Hosts[i].s_addr) {
@@ -861,7 +861,7 @@
 			    Stats++;
 			}
 
-		    data->out_size = (char *)Stats - data->out;
+		    data->out_size = (short) ((char *)Stats - data->out);
 		    break;
 		    }
 
@@ -1072,10 +1072,10 @@
                 case _VIOC_LOOKASIDE:
 	            {
 		      /* cache lookaside command (cfs lka) */
-		      memset(data->out, 0, CFS_PIOBUFSIZE);
+		      memset((void *) data->out, 0, CFS_PIOBUFSIZE);
 		      LKParseAndExecute((char *)data->in,  
                                   (char *)data->out, CFS_PIOBUFSIZE-1);
-		      data->out_size = strlen(data->out) + 1; 
+		      data->out_size = strlen((char *) data->out) + 1; 
 		      break; /* outmsg has success/failure info */
 
 	            }
@@ -1185,7 +1185,7 @@
 #define clearlen ((long *)(secretp + 1))
 #define clearp ((ClearToken *)(clearlen + 1))
 #define endp ((char *)(clearp + 1)) 
-		    Realm *realm = REALMDB->GetRealm(data->in);
+		    Realm *realm = REALMDB->GetRealm((char*)data->in);
 		    userent *ue = realm->GetUser(u.u_uid);	   
 		    u.u_error = ue->GetTokens(secretp, clearp);
 		    PutUser(&ue);
@@ -1205,7 +1205,7 @@
 
 		case _VIOCUNLOG:
 		    {
-		    Realm *realm = REALMDB->GetRealm(data->in);
+		    Realm *realm = REALMDB->GetRealm((char*)data->in);
 		    userent *ue = realm->GetUser(u.u_uid);
 		    ue->Invalidate();
 		    PutUser(&ue);
@@ -1249,7 +1249,7 @@
 			{ u.u_error = EACCES; break; }
 
 		    long on;
-		    memcpy(&on, data->in, sizeof(long));
+		    memcpy(&on, (void *) data->in, sizeof(long));
 		    on &= 0xff;
 		    if (on) DebugOn(); else DebugOff();
 
@@ -1382,7 +1382,7 @@
 		case _VIOC_WAITFOREVER:
 		    {
 		    int on;
-		    memcpy(&on, data->in, sizeof(int));
+		    memcpy(&on, (void *)data->in, sizeof(int));
 
 		    /* We would like "waitforever" behavior to be settable on a
 		     * per-process group basis. However, this would require
@@ -1405,7 +1405,7 @@
 			{ u.u_error = EINVAL; break; }
 
 		    ViceFid fid;
-		    memcpy(&fid, data->in, sizeof(ViceFid));
+		    memcpy(&fid, (void *) data->in, sizeof(ViceFid));
 		    char *realmname = (char *)data->in + sizeof(ViceFid);
 		    Realm *realm = REALMDB->GetRealm(realmname);
 
Index: coda-src/venus/worker.cc
===================================================================
RCS file: /coda-src/coda/coda-src/venus/worker.cc,v
retrieving revision 4.96
diff -U3 -r4.96 worker.cc
--- coda-src/venus/worker.cc	27 Jul 2004 20:28:16 -0000	4.96
+++ coda-src/venus/worker.cc	16 Aug 2004 14:38:07 -0000
@@ -1214,9 +1214,9 @@
 		unsigned char type = _IOC_TYPE(cmd);
 		unsigned char nr = _IOC_NR(cmd);
 
-		data.in = (char *)in + (int)in->coda_ioctl.data;
+		data.in = CONV_U_INT64_T(in) + (int)in->coda_ioctl.data;
 		data.in_size = 0;
-		data.out = outbuf;	/* Can't risk overcopying. Sigh. -dcs */
+		data.out = CONV_U_INT64_T(outbuf);	/* Can't risk overcopying. Sigh. -dcs */
 		data.out_size =	0;
 
 		LOG(100, ("CODA_IOCTL: u.u_pid = %d u.u_pgid = %d\n", u.u_pid, u.u_pgid));
@@ -1254,8 +1254,8 @@
 		ioctl(&vtarget, nr, &data, in->coda_ioctl.rwflag);
 
 		out->coda_ioctl.len = data.out_size;
-		out->coda_ioctl.data = (char *)(sizeof (struct coda_ioctl_out));
-		memcpy((char *)out + (int)out->coda_ioctl.data, data.out, data.out_size);
+		out->coda_ioctl.data = CONV_U_INT64_T(sizeof (struct coda_ioctl_out));
+		memcpy((char *)out + (int)out->coda_ioctl.data, (void *)data.out, data.out_size);
 		if (nr == _VIOCPREFETCH)
 		    worker::nprefetchers--;
 
@@ -1399,7 +1399,7 @@
 
 		out->coda_readlink.count = string.cs_len;
 		/* readlink.data is an offset, with the wrong type .. sorry */
-		out->coda_readlink.data = (char *)(sizeof (struct coda_readlink_out));
+		out->coda_readlink.data = CONV_U_INT64_T(sizeof (struct coda_readlink_out));
 
 		size = sizeof(struct coda_readlink_out) + out->coda_readlink.count;
 		break;
Index: coda-src/vtools/cfs.cc
===================================================================
RCS file: /coda-src/coda/coda-src/vtools/cfs.cc,v
retrieving revision 4.60
diff -U3 -r4.60 cfs.cc
--- coda-src/vtools/cfs.cc	27 Jul 2004 20:28:17 -0000	4.60
+++ coda-src/vtools/cfs.cc	16 Aug 2004 14:38:08 -0000
@@ -550,7 +550,7 @@
 
     vio.in = 0;
     vio.in_size = 0;
-    vio.out = piobuf;
+    vio.out = CONV_U_INT64_T(piobuf);
     vio.out_size = CFS_PIOBUFSIZE;
 
     /* pack server host ids, if any */
@@ -570,7 +570,7 @@
     }       
     if (hcount) {
         ((int *) insrv)[0] = hcount;
-        vio.in = insrv;
+        vio.in = CONV_U_INT64_T(insrv);
         vio.in_size = (int) (hcount * sizeof(struct in_addr) + sizeof(int));
     }
 
@@ -624,7 +624,7 @@
     
     /* Do the checkpoint */
     vio.in_size = (ckpdir ? (int) strlen(ckpdir) + 1 : 0);
-    vio.in = ckpdir;
+    vio.in = CONV_U_INT64_T(ckpdir);
     vio.out_size = 0;
     vio.out = 0;
     rc = pioctl(codadir, _VICEIOCTL(_VIOC_CHECKPOINTML), &vio, 1);
@@ -655,7 +655,7 @@
     /* Are we in Kansas, Toto? */
     vio.in = 0;
     vio.in_size = 0;
-    vio.out = piobuf;
+    vio.out = CONV_U_INT64_T(piobuf);
     vio.out_size = CFS_PIOBUFSIZE;
     rc = pioctl(buf, _VICEIOCTL(_VIOC_GETFID), &vio, 0);
     return(rc == 0);
@@ -737,10 +737,10 @@
     if (argc == 4)
 	(void)parseHost(argv[3], &whereto);
 
-    vio.in = (char *)&whereto;
+    vio.in = CONV_U_INT64_T(&whereto);
     vio.in_size = sizeof(struct in_addr);
     vio.out_size = 0;
-    vio.out = NULL;
+    vio.out = 0;
 
     /* Do the pioctl */
     rc = pioctl(argv[2], _VICEIOCTL(_VIOC_REDIR), &vio, 1);
@@ -783,7 +783,7 @@
     }       
     if (hcount) {
         ((int *) insrv)[0] = hcount;
-        vio.in = insrv;
+        vio.in = CONV_U_INT64_T(insrv);
         vio.in_size = (int) (hcount * sizeof(unsigned long) + sizeof(int));
     }
 
@@ -993,7 +993,7 @@
 
     vio.in = 0;
     vio.in_size = 0;
-    vio.out = piobuf;
+    vio.out = CONV_U_INT64_T(piobuf);
     vio.out_size = CFS_PIOBUFSIZE;
     rc = pioctl(volrootpath, _VICEIOCTL(_VIOCGETVOLSTAT), &vio, 1);
     if (rc) { PERROR(volrootpath); return(0);}
@@ -1008,7 +1008,7 @@
 
     vio.in = 0;
     vio.in_size = 0;
-    vio.out = piobuf;
+    vio.out = CONV_U_INT64_T(piobuf);
     vio.out_size = CFS_PIOBUFSIZE;
     rc = pioctl(volrootpath, _VICEIOCTL(_VIOC_GETFID), &vio, 1);
     if (rc) { PERROR(volrootpath); return(0);}
@@ -1126,9 +1126,9 @@
 #endif
 
     vio.in_size = 1 + (int) strlen(argv[2]);
-    vio.in = argv[2];
+    vio.in = CONV_U_INT64_T(argv[2]);
     vio.out_size = CFS_PIOBUFSIZE;
-    vio.out = piobuf;
+    vio.out = CONV_U_INT64_T(piobuf);
     memset(piobuf, 0, CFS_PIOBUFSIZE);
 
     rc = pioctl(argv[2], _VICEIOCTL(_VIOC_ENABLEREPAIR), &vio, 0);
@@ -1153,9 +1153,9 @@
         exit(-1);
     }
     vio.in_size = 1 + (int) strlen(argv[2]);
-    vio.in = argv[2];
+    vio.in = CONV_U_INT64_T(argv[2]);
     vio.out_size = CFS_PIOBUFSIZE;
-    vio.out = piobuf;
+    vio.out = CONV_U_INT64_T(piobuf);
     memset(piobuf, 0, CFS_PIOBUFSIZE);
 
     rc = pioctl(argv[2], _VICEIOCTL(_VIOC_DISABLEASR), &vio, 0);
@@ -1172,9 +1172,9 @@
         exit(-1);
     }
     vio.in_size = 1 + (int) strlen(argv[2]);
-    vio.in = argv[2];
+    vio.in = CONV_U_INT64_T(argv[2]);
     vio.out_size = CFS_PIOBUFSIZE;
-    vio.out = piobuf;
+    vio.out = CONV_U_INT64_T(piobuf);
     memset(piobuf, 0, CFS_PIOBUFSIZE);
 
     rc = pioctl(argv[2], _VICEIOCTL(_VIOC_ENABLEASR), &vio, 0);
@@ -1191,9 +1191,9 @@
     }
 
     vio.in_size = 1 + (int) strlen(argv[2]);
-    vio.in = argv[2];
+    vio.in = CONV_U_INT64_T(argv[2]);
     vio.out_size = CFS_PIOBUFSIZE;
-    vio.out = piobuf;
+    vio.out = CONV_U_INT64_T(piobuf);
     memset(piobuf, 0, CFS_PIOBUFSIZE);
 
     rc = pioctl(argv[2], _VICEIOCTL(_VIOC_DISABLEREPAIR), &vio, 0);
@@ -1217,7 +1217,7 @@
                 /* Get its path */
         vio.in = 0;
         vio.in_size = 0;
-        vio.out = piobuf;
+        vio.out = CONV_U_INT64_T(piobuf);
         vio.out_size = CFS_PIOBUFSIZE;
         memset(piobuf, 0, CFS_PIOBUFSIZE);
 
@@ -1241,7 +1241,7 @@
 
     vio.in = 0;
     vio.in_size = 0;
-    vio.out = (char *)&out;
+    vio.out = CONV_U_INT64_T(&out);
     vio.out_size = sizeof(out);
 
 #if defined(DJGPP) || defined(__CYGWIN32__)
@@ -1303,7 +1303,7 @@
     struct ViceIoctl vio;
     int              rc;
 
-    vio.in = (char *)vv;
+    vio.in = CONV_U_INT64_T(vv);
     vio.in_size = sizeof(ViceVersionVector);
     vio.out = 0;
     vio.out_size = 0;
@@ -1374,13 +1374,13 @@
 	char *realmname = strrchr(argv[i], '@')+1;
 	memcpy(piobuf, &fid, sizeof(ViceFid));
 	strcpy(piobuf + sizeof(ViceFid), realmname);
-        vio.in = piobuf;
+        vio.in = CONV_U_INT64_T(piobuf);
         vio.in_size = sizeof(ViceFid) + strlen(realmname) + 1;
-        vio.out = piobuf;
+        vio.out = CONV_U_INT64_T(piobuf);
         vio.out_size = CFS_PIOBUFSIZE;
         rc = pioctl(mountpoint, _VICEIOCTL(_VIOC_GETPATH), &vio, 0);
         if (rc < 0) { PERROR("VIOC_GETPATH"); continue; }
-        printf("\t%s\n", vio.out);
+        printf("\t%s\n", (char*) vio.out);
         }
     
     }
@@ -1430,12 +1430,12 @@
         vio.in = 0;
         vio.in_size = 0;
         vio.out_size = CFS_PIOBUFSIZE;
-        vio.out = piobuf;
+        vio.out = CONV_U_INT64_T(piobuf);
         rc = pioctl(argv[i], _VICEIOCTL(_VIOCGETAL), &vio, 1);
         if (rc < 0) { PERROR(argv[i]); continue; }
         
         if (argc > 3) printf("\n%s:\n", argv[i]); /* show directory name */
-        rc = parseacl(vio.out, &a);
+        rc = parseacl((char*) vio.out, &a);
         if (rc < 0)
             {
             printf("Venus returned an ill-formed ACL\n");
@@ -1601,9 +1601,9 @@
 	exit(-1);
     }
 
-    vio.in = (char *)&arg;
+    vio.in = CONV_U_INT64_T(&arg);
     vio.in_size = sizeof(arg);
-    vio.out = piobuf;
+    vio.out = CONV_U_INT64_T(piobuf);
     vio.out_size = CFS_PIOBUFSIZE;
 
     /* Do the pioctl */
@@ -1694,9 +1694,9 @@
       VolumeId vol_id;
       char mtptpath[MAXPATHLEN];
       if ( sscanf(argv[i], "%x", (unsigned int *)&vol_id) == 1 ) {
-        vio.in = (char *)&vol_id;
+        vio.in = CONV_U_INT64_T(&vol_id);
         vio.in_size = (int) sizeof(VolumeId);
-        vio.out = piobuf;
+        vio.out = CONV_U_INT64_T(piobuf);
         vio.out_size = CFS_PIOBUFSIZE;
         memset(piobuf, 0, CFS_PIOBUFSIZE);      
 
@@ -1710,10 +1710,10 @@
       data.first_volume = ((i == argi) ? 1 : 0);
       data.long_format = long_format;
       data.valid = valid;
-      vio.in = (char *)&data;
+      vio.in = CONV_U_INT64_T(&data);
       vio.in_size = (int) sizeof(struct listcache_in);
       vio.out_size = CFS_PIOBUFSIZE;
-      vio.out = piobuf;
+      vio.out = CONV_U_INT64_T(piobuf);
       memset(piobuf, 0, CFS_PIOBUFSIZE);
 
       /* Do the pioctl */
@@ -1730,11 +1730,11 @@
       data.first_volume = 1;
       data.long_format = long_format;
       data.valid = valid;
-      vio.in = (char *)&data;
+      vio.in = CONV_U_INT64_T(&data);
       vio.in_size = (int) sizeof(struct listcache_in);
 
       vio.out_size = CFS_PIOBUFSIZE;
-      vio.out = piobuf;
+      vio.out = CONV_U_INT64_T(piobuf);
       memset(piobuf, 0, CFS_PIOBUFSIZE);
       /* Do the pioctl */
       rc = pioctl(mountpoint, _VICEIOCTL(_VIOC_LISTCACHE), &vio, 1);
@@ -1778,9 +1778,9 @@
   int rc;
   int cur;
 
-  vio.in = piobuf;
+  vio.in = CONV_U_INT64_T(piobuf);
   vio.in_size = 0;
-  vio.out = (char *) &cur;
+  vio.out = CONV_U_INT64_T(&cur);
   vio.out_size = sizeof(int);
   
   rc = pioctl(vol, _VICEIOCTL(_VIOC_STATUSWB), &vio, 0);
@@ -1813,10 +1813,10 @@
 	    continue;
 	}
         /* Set up parms to pioctl */
-        vio.in = (char *)&local_only;
+        vio.in = CONV_U_INT64_T(&local_only);
         vio.in_size = sizeof(int);
         vio.out_size = CFS_PIOBUFSIZE;
-        vio.out = piobuf;
+        vio.out = CONV_U_INT64_T(piobuf);
 
         /* Do the pioctl */
         rc = pioctl(argv[i], _VICEIOCTL(_VIOCGETVOLSTAT), &vio, 1);
@@ -1898,9 +1898,9 @@
     }
     
     /* Pass the command string to the lka module */
-        vio.in = piobuf;
+        vio.in = CONV_U_INT64_T(piobuf);
         vio.in_size = strlen(piobuf) + 1;
-        vio.out = piobuf;
+        vio.out = CONV_U_INT64_T(piobuf);
         vio.out_size = CFS_PIOBUFSIZE;
 
         rc = pioctl(mountpoint, _VICEIOCTL(_VIOC_LOOKASIDE), &vio, 0);
@@ -1969,9 +1969,9 @@
         strcpy(part2, s+1); /* and copy it */
 
         /* Ask Venus if this is a mount point */
-        vio.in = part2;
+        vio.in = CONV_U_INT64_T(part2);
         vio.in_size = (int) strlen(part2)+1;
-        vio.out = piobuf;
+        vio.out = CONV_U_INT64_T(piobuf);
         vio.out_size = CFS_PIOBUFSIZE;
         memset(piobuf, 0, CFS_PIOBUFSIZE);
         rc = pioctl(part1, _VICEIOCTL(_VIOC_AFS_STAT_MT_PT), &vio, 0);
@@ -2012,7 +2012,7 @@
 
     sprintf(buf, "%s/%s", entry, vol);
     vio.in_size = strlen(entry) + strlen(vol) + 2;
-    vio.in = buf;
+    vio.in = CONV_U_INT64_T(buf);
     vio.out_size = 0;
     vio.out = 0;
     rc = pioctl(dir, _VICEIOCTL(_VIOC_ADD_MT_PT), &vio, 1);
@@ -2078,7 +2078,7 @@
     }       
     if (hcount) {
         ((int *) insrv)[0] = hcount;
-        vio.in = insrv;
+        vio.in = CONV_U_INT64_T(insrv);
         vio.in_size = (int) (hcount * sizeof(unsigned long) + sizeof(int));
     }
 
@@ -2160,7 +2160,7 @@
     
         /* Then do the pioctl */
         vio.in_size = (int) strlen(suffix) + 1;
-        vio.in = suffix;
+        vio.in = CONV_U_INT64_T(suffix);
         vio.out_size = 0;
         vio.out = 0;
         rc = pioctl(prefix, _VICEIOCTL(_VIOC_AFS_DELETE_MT_PT), &vio, 0);
@@ -2217,10 +2217,10 @@
         vio.in = 0;
         vio.in_size = 0;
         vio.out_size = CFS_PIOBUFSIZE;
-        vio.out = piobuf;
+        vio.out = CONV_U_INT64_T(piobuf);
         rc = pioctl(dir, _VICEIOCTL(_VIOCGETAL), &vio, 1);
         if (rc <0) { PERROR(dir); exit(-1); }
-        rc = parseacl(vio.out, &a);
+        rc = parseacl((char*) vio.out, &a);
         if (rc < 0)
             {
             printf("Venus returned an ill-formed ACL\n");
@@ -2288,7 +2288,7 @@
         }
 
     /* Set new acl */
-    vio.in = piobuf;
+    vio.in = CONV_U_INT64_T(piobuf);
     vio.in_size = (int) strlen(piobuf) + 1;
     vio.out_size = 0;
     vio.out = 0;
@@ -2327,7 +2327,7 @@
         vio.in = 0;
         vio.in_size = 0;
         vio.out_size = CFS_PIOBUFSIZE;
-        vio.out = piobuf;
+        vio.out = CONV_U_INT64_T(piobuf);
 
         /* Do the pioctl */
         rc = pioctl(argv[i], _VICEIOCTL(_VIOCGETVOLSTAT), &vio, 1);
@@ -2341,9 +2341,9 @@
         printf("New value of vs->MaxQuota will be set to %lu\n", vs->MaxQuota);
 
         vio.in_size  = CFS_PIOBUFSIZE;
-        vio.in       = piobuf;
+        vio.in       = CONV_U_INT64_T(piobuf);
         vio.out_size = CFS_PIOBUFSIZE;
-        vio.out      = piobuf;
+        vio.out      = CONV_U_INT64_T(piobuf);
 
         rc = pioctl(argv[i], _VICEIOCTL(_VIOCSETVOLSTAT), &vio, 1);
         if (rc <0) { PERROR("Setting new quota"); return; }
@@ -2363,7 +2363,7 @@
     }
 
     speed = atoi(argv[2]);
-    vio.in = (char *)&speed;
+    vio.in = CONV_U_INT64_T(&speed);
     vio.in_size = (int) sizeof(speed);
     vio.out = 0;
     vio.out_size = 0;
@@ -2485,7 +2485,7 @@
         vio.in = 0;
         vio.in_size = 0;
         vio.out_size = CFS_PIOBUFSIZE;
-        vio.out = piobuf;
+        vio.out = CONV_U_INT64_T(piobuf);
 
         /* Do the pioctl */
         rc = pioctl(argv[i], _VICEIOCTL(_VIOCWHEREIS), &vio, 1);
@@ -2534,7 +2534,7 @@
 	exit(-1);
     }
 
-    vio.in = (char *)&arg;
+    vio.in = CONV_U_INT64_T(&arg);
     vio.in_size = sizeof(arg);
     vio.out = 0;
     vio.out_size = 0;
@@ -2554,7 +2554,7 @@
 
     ((unsigned *)piobuf)[0] = age;
     ((unsigned *)piobuf)[1] = time;
-    vio.in = piobuf;
+    vio.in = CONV_U_INT64_T(piobuf);
     vio.in_size = 2 * (int) sizeof(unsigned);
     vio.out = 0;
     vio.out_size = 0;
@@ -2589,7 +2589,7 @@
   
   w = getlongest(argc, argv);
   
-  vio.in = piobuf;
+  vio.in = CONV_U_INT64_T(piobuf);
   vio.in_size = 0;
   vio.out = 0;
   vio.out_size = 0;
@@ -2619,7 +2619,7 @@
   
   w = getlongest(argc, argv);
   
-  vio.in = piobuf;
+  vio.in = CONV_U_INT64_T(piobuf);
   vio.in_size = 0;
   vio.out = 0;
   vio.out_size = 0;
@@ -2649,7 +2649,7 @@
   
   w = getlongest(argc, argv);
   
-  vio.in = piobuf;
+  vio.in = CONV_U_INT64_T(piobuf);
   vio.in_size = 0;
   vio.out = 0;
   vio.out_size = 0;
@@ -2686,7 +2686,7 @@
   
   w = getlongest(argc, argv);
   
-  vio.in = piobuf;
+  vio.in = CONV_U_INT64_T(piobuf);
   vio.in_size = 0;
   vio.out = 0;
   vio.out_size = 0;
@@ -2704,7 +2704,7 @@
 	vio.in = 0;
         vio.in_size = 0;
         vio.out_size = CFS_PIOBUFSIZE;
-        vio.out = piobuf;
+        vio.out = CONV_U_INT64_T(piobuf);
 
         /* Do the pioctl */
         rc = pioctl(argv[i], _VICEIOCTL(_VIOCGETVOLSTAT), &vio, 1);
Index: coda-src/vtools/hoard.cc
===================================================================
RCS file: /coda-src/coda/coda-src/vtools/hoard.cc,v
retrieving revision 4.34
diff -U3 -r4.34 hoard.cc
--- coda-src/vtools/hoard.cc	27 Jul 2004 20:28:17 -0000	4.34
+++ coda-src/vtools/hoard.cc	16 Aug 2004 14:38:08 -0000
@@ -937,7 +937,7 @@
     struct ViceIoctl vi;
     vi.in = 0;
     vi.in_size = 0;
-    vi.out = (char *)&gf_msg;
+    vi.out = CONV_U_INT64_T(&gf_msg);
     vi.out_size = sizeof(struct getfid_msg);
     err = pioctl(name, _VICEIOCTL(_VIOC_GETFID), &vi, 1);
     
@@ -958,7 +958,7 @@
     clear_entry *c;
     while ((c = (clear_entry *)next())) {
 	struct ViceIoctl vi;
-	vi.in = (char *)&c->msg;
+	vi.in = CONV_U_INT64_T(&c->msg);
 	vi.in_size = sizeof(hdb_clear_msg);
 	vi.out = 0;
 	vi.out_size = 0;
@@ -976,7 +976,7 @@
     add_entry *a;
     while ((a = (add_entry *)next())) {
 	struct ViceIoctl vi;
-	vi.in = (char *)&a->msg;
+	vi.in = CONV_U_INT64_T(&a->msg);
 	vi.in_size = sizeof(hdb_add_msg);
 	vi.out = 0;
 	vi.out_size = 0;
@@ -995,7 +995,7 @@
     delete_entry *d;
     while ((d = (delete_entry *)next())) {
 	struct ViceIoctl vi;
-	vi.in = (char *)&d->msg;
+	vi.in = CONV_U_INT64_T(&d->msg);
 	vi.in_size = sizeof(hdb_delete_msg);
 	vi.out = 0;
 	vi.out_size = 0;
@@ -1014,7 +1014,7 @@
     listentry *l;
     while ((l = (listentry *)next())) {
 	struct ViceIoctl vi;
-	vi.in = (char *)&l->msg;
+	vi.in = CONV_U_INT64_T(&l->msg);
 	vi.in_size = sizeof(hdb_list_msg);
 	vi.out = 0;
 	vi.out_size = 0;
@@ -1036,7 +1036,7 @@
     walk_entry *w;
     while ((w = (walk_entry *)next())) {
 	struct ViceIoctl vi;
-	vi.in = (char *)&w->msg;
+	vi.in = CONV_U_INT64_T(&w->msg);
 	vi.in_size = sizeof(hdb_walk_msg);
 	vi.out = 0;
 	vi.out_size = 0;
@@ -1057,7 +1057,7 @@
     verify_entry *v;
     while ((v = (verify_entry *)next())) {
 	struct ViceIoctl vi;
-	vi.in = (char *)&v->msg;
+	vi.in = CONV_U_INT64_T(&v->msg);
 	vi.in_size = sizeof(hdb_verify_msg);
 	vi.out = 0;
 	vi.out_size = 0;
@@ -1080,7 +1080,7 @@
     w = (enable_entry *)next();
     if (w) {
 	struct ViceIoctl vi;
-	vi.in = (char *)&w->msg;
+	vi.in = CONV_U_INT64_T(&w->msg);
 	vi.in_size = sizeof(hdb_walk_msg);
 	vi.out = 0;
 	vi.out_size = 0;
@@ -1099,7 +1099,7 @@
     w = (disable_entry *)next();
     if (w) {
 	struct ViceIoctl vi;
-	vi.in = (char *)&w->msg;
+	vi.in = CONV_U_INT64_T(&w->msg);
 	vi.in_size = sizeof(hdb_walk_msg);
 	vi.out = 0;
 	vi.out_size = 0;
Index: coda-src/vtools/up.cc
===================================================================
RCS file: /coda-src/coda/coda-src/vtools/up.cc,v
retrieving revision 4.7
diff -U3 -r4.7 up.cc
--- coda-src/vtools/up.cc	23 May 2003 18:27:46 -0000	4.7
+++ coda-src/vtools/up.cc	16 Aug 2004 14:38:08 -0000
@@ -476,8 +476,8 @@
         if (1)
             {if (oldAcl)
                 {/* Get an old style acl and convert to new style */
-                blob.in = aclspace;
-                blob.out = aclspace;
+                blob.in = CONV_U_INT64_T(aclspace);
+                blob.out = CONV_U_INT64_T(aclspace);
                 blob.out_size = MAXACL;
                 for(i=1;i<strlen(file1);i++) if (file1[i] == '/') break;
                 strcpy(aclspace, &file1[i]);
@@ -498,8 +498,8 @@
                 }
             else
                 {/* Get a new style acl */
-                blob.in = aclspace;
-                blob.out = aclspace;
+                blob.in = CONV_U_INT64_T(aclspace);
+                blob.out = CONV_U_INT64_T(aclspace);
                 blob.in_size = 0;
                 blob.out_size = MAXACL;
                 code = pioctl(file1, _VICEIOCTL(2), &blob, 0);
@@ -509,8 +509,8 @@
                     }
                 }
             /* Now set the new style acl. */
-            blob.out = aclspace;
-            blob.in = aclspace;
+            blob.out = CONV_U_INT64_T(aclspace);
+            blob.in = CONV_U_INT64_T(aclspace);
             blob.out_size = 0;
             blob.in_size = 1+strlen(aclspace);
             code = pioctl(file2, _VICEIOCTL(1), &blob, 0);
Index: lib-src/kernel-includes/coda.h
===================================================================
RCS file: /coda-src/coda/lib-src/kernel-includes/coda.h,v
retrieving revision 1.60
diff -U3 -r1.60 coda.h
--- lib-src/kernel-includes/coda.h	18 Dec 2003 21:30:26 -0000	1.60
+++ lib-src/kernel-includes/coda.h	16 Aug 2004 14:38:08 -0000
@@ -6,9 +6,9 @@
 /* BLURB lgpl
 
                            Coda File System
-                              Release 6
+                              Release 5
 
-          Copyright (c) 1987-2003 Carnegie Mellon University
+          Copyright (c) 1987-1999 Carnegie Mellon University
                   Additional copyrights listed below
 
 This code is distributed "AS IS" without warranty of any kind under
@@ -23,9 +23,9 @@
 /*
 
             Coda: an Experimental Distributed File System
-                             Release 6
+                             Release 4.0
 
-          Copyright (c) 1987-2003 Carnegie Mellon University
+          Copyright (c) 1987-1999 Carnegie Mellon University
                          All Rights Reserved
 
 Permission  to  use, copy, modify and distribute this software and its
@@ -59,7 +59,7 @@
 #ifndef _CODA_HEADER_
 #define _CODA_HEADER_
 
-
+#include <linux/config.h>
 
 /* Catch new _KERNEL defn for NetBSD and DJGPP/__CYGWIN32__ */
 #if defined(__NetBSD__) || \
@@ -76,8 +76,8 @@
 typedef unsigned long u_long;
 typedef unsigned int u_int;
 typedef unsigned short u_short;
-typedef u_long ino_t;
-typedef u_long dev_t;
+typedef u_int64_t ino_t;
+typedef u_int64_t dev_t;
 typedef void * caddr_t;
 #ifdef DOS
 typedef unsigned __int64 u_quad_t;
@@ -99,6 +99,7 @@
 
 
 #if defined(__linux__)
+#include <linux/time.h>
 #define cdev_t u_quad_t
 #ifndef __KERNEL__
 #if !defined(_UQUAD_T_) && (!defined(__GLIBC__) || __GLIBC__ < 2)
@@ -112,22 +113,11 @@
 #define cdev_t dev_t
 #endif
 
-/* Solaris Definitions */
-#if defined(sun)
-#include <sys/types.h>
-#include <sys/time.h>
-typedef unsigned long long u_quad_t;
-#undef __BIT_TYPES_DEFINED__
-#endif
-
-/* Mac OS X / Darwin */
-#if defined(__APPLE__) && defined(__MACH__)
-#define __BIT_TYPES_DEFINED__
-#endif
-
-/* FreeBSD 5.0 */
-#if __FreeBSD__ >= 5
-#define __BIT_TYPES_DEFINED__
+#ifdef __CYGWIN32__
+struct timespec {
+        time_t  tv_sec;         /* seconds */
+        long    tv_nsec;        /* nanoseconds */
+};
 #endif
 
 #ifndef __BIT_TYPES_DEFINED__
@@ -140,8 +130,11 @@
 typedef unsigned int	   u_int32_t;
 #endif
 
-typedef int32_t cuid_t;
-typedef int32_t cgid_t;
+struct coda_timespec {
+        int32_t  tv_sec;         /* seconds */
+        int32_t    tv_nsec;        /* nanoseconds */
+};
+
 
 /*
  * Cfs constants
@@ -170,27 +163,16 @@
 #define C_A_X_OK    1               /* Test for execute permission.  */
 #define C_A_F_OK    0               /* Test for existence.  */
 
-#if defined(sun)
-#define _VENUS_DIRENT_T_ 1
-struct venus_dirent {
-        unsigned long	d_fileno;		/* file number of entry */
-        unsigned short	d_reclen;		/* length of this record */
-        unsigned short	d_namlen;		/* length of string in d_name */
-        char		d_name[CODA_MAXNAMLEN + 1];/* name must be no longer than this */
-};
-#undef DIRSIZ
-#define DIRSIZ(dp)      ((sizeof (struct venus_dirent) - (CODA_MAXNAMLEN+1)) + \
-                         (((dp)->d_namlen+1 + 3) &~ 3))
-#endif
+
 
 #ifndef _VENUS_DIRENT_T_
 #define _VENUS_DIRENT_T_ 1
 struct venus_dirent {
-        unsigned long	d_fileno;		/* file number of entry */
-        unsigned short	d_reclen;		/* length of this record */
-        unsigned char 	d_type;			/* file type, see below */
-        unsigned char	d_namlen;		/* length of string in d_name */
-        char		d_name[CODA_MAXNAMLEN + 1];/* name must be no longer than this */
+        u_int32_t d_fileno;		/* file number of entry */
+        u_int16_t d_reclen;		/* length of this record */
+        u_int8_t  d_type;			/* file type, see below */
+        u_int8_t  d_namlen;		/* length of string in d_name */
+        char	  d_name[CODA_MAXNAMLEN + 1];/* name must be no longer than this */
 };
 #undef DIRSIZ
 #define DIRSIZ(dp)      ((sizeof (struct venus_dirent) - (CODA_MAXNAMLEN+1)) + \
@@ -217,18 +199,42 @@
 
 #endif
 
-struct CodaFid {
-    u_int32_t opaque[4];
-}; 
+#ifndef _VUID_T_
+#define _VUID_T_
+typedef u_int32_t vuid_t;
+typedef u_int32_t vgid_t;
+#endif /*_VUID_T_ */
 
+#ifdef CODA_FS_OLD_API
+struct CodaFid {
+	u_int32_t opaque[3];
+};
 
-static __inline__ ino_t coda_f2i(struct CodaFid *fid)
+static __inline__ u_int32_t  coda_f2i(struct CodaFid *fid)
 {
-	if (!fid) return 0; 
-	return (fid->opaque[3] ^ (fid->opaque[2]<<10) ^ (fid->opaque[1]<<20) ^
-		fid->opaque[0]);
+	if ( ! fid ) 
+		return 0; 
+	if (fid->opaque[1] == 0xfffffffe || fid->opaque[1] == 0xffffffff)
+		return ((fid->opaque[0] << 20) | (fid->opaque[2] & 0xfffff));
+	else
+		return (fid->opaque[2] + (fid->opaque[1]<<10) + (fid->opaque[0]<<20));
 }
-	
+
+struct coda_cred {
+    vuid_t cr_uid, cr_euid, cr_suid, cr_fsuid; /* Real, efftve, set, fs uid*/
+    vgid_t cr_groupid, cr_egid, cr_sgid, cr_fsgid; /* same for groups */
+};
+
+#else /* not defined(CODA_FS_OLD_API) */
+
+struct CodaFid {
+	u_int32_t opaque[4];
+};
+
+#define coda_f2i(fid)\
+	(fid ? ((fid)->opaque[3] ^ ((fid)->opaque[2]<<10) ^ ((fid)->opaque[1]<<20) ^ (fid)->opaque[0]) : 0)
+
+#endif
 
 #ifndef _VENUS_VATTR_T_
 #define _VENUS_VATTR_T_
@@ -238,22 +244,22 @@
 enum coda_vtype	{ C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD };
 
 struct coda_vattr {
-	long     	va_type;	/* vnode type (for create) */
-	u_short		va_mode;	/* files access mode and type */
-	short		va_nlink;	/* number of references to file */
-	cuid_t		va_uid;		/* owner user id */
-	cgid_t		va_gid;		/* owner group id */
-	long		va_fileid;	/* file id */
-	u_quad_t	va_size;	/* file size in bytes */
-	long		va_blocksize;	/* blocksize preferred for i/o */
-	struct timespec	va_atime;	/* time of last access */
-	struct timespec	va_mtime;	/* time of last modification */
-	struct timespec	va_ctime;	/* time file changed */
-	u_long		va_gen;		/* generation number of file */
-	u_long		va_flags;	/* flags defined for file */
-	cdev_t	        va_rdev;	/* device special file represents */
-	u_quad_t	va_bytes;	/* bytes of disk space held by file */
-	u_quad_t	va_filerev;	/* file modification number */
+	int32_t     	va_type;	/* vnode type (for create) */
+	u_int16_t		va_mode;	/* files access mode and type */
+	int16_t		va_nlink;	/* number of references to file */
+	vuid_t		va_uid;		/* owner user id */
+	u_int32_t	va_gid;		/* owner group id */
+	int32_t		va_fileid;	/* file id */
+	u_int64_t	va_size;	/* file size in bytes */
+	int32_t		va_blocksize;	/* blocksize preferred for i/o */
+	struct coda_timespec	va_atime;	/* time of last access */
+	struct coda_timespec	va_mtime;	/* time of last modification */
+	struct coda_timespec	va_ctime;	/* time file changed */
+	u_int32_t	va_gen;		/* generation number of file */
+	u_int32_t	va_flags;	/* flags defined for file */
+	u_int64_t       va_rdev;	/* device special file represents */
+	u_int64_t	va_bytes;	/* bytes of disk space held by file */
+	u_int64_t	va_filerev;	/* file modification number */
 };
 
 #endif 
@@ -311,14 +317,17 @@
 #define VC_MAXMSGSIZE      sizeof(union inputArgs)+sizeof(union outputArgs) +\
                             VC_MAXDATASIZE  
 
-#define CIOC_KERNEL_VERSION _IOWR('c', 10, int)
+#define CIOC_KERNEL_VERSION _IOWR('c', 10, u_int64_t)
 
 #if 0
 #define CODA_KERNEL_VERSION 0 /* don't care about kernel version number */
 #define CODA_KERNEL_VERSION 1 /* The old venus 4.6 compatible interface */
-#define CODA_KERNEL_VERSION 2 /* venus_lookup gets an extra parameter */
 #endif
+#ifdef CODA_FS_OLD_API
+#define CODA_KERNEL_VERSION 2 /* venus_lookup got an extra parameter */
+#else
 #define CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */
+#endif
 
 /*
  *        Venus <-> Coda  RPC arguments
@@ -326,9 +335,16 @@
 struct coda_in_hdr {
     u_int32_t opcode;
     u_int32_t unique;	    /* Keep multiple outstanding msgs distinct */
+#ifdef CODA_FS_OLD_API
+    u_int16_t pid;	    /* Common to all */
+    u_int16_t pgid;	    /* Common to all */
+    u_int16_t sid;          /* Common to all */
+    struct coda_cred cred;  /* Common to all */
+#else
     pid_t pid;
     pid_t pgid;
-    cuid_t uid;
+    vuid_t uid;
+#endif
 };
 
 /* Really important that opcode and unique are 1st two fields! */
@@ -351,21 +367,21 @@
 /* coda_open: */
 struct coda_open_in {
     struct coda_in_hdr ih;
-    struct CodaFid	Fid;
-    int	flags;
+    struct CodaFid Fid;
+    int32_t flags;
 };
 
 struct coda_open_out {
     struct coda_out_hdr oh;
-    cdev_t	dev;
-    ino_t	inode;
+    u_int64_t	dev;
+    u_int64_t	inode;
 };
 
 
 /* coda_store: */
 struct coda_store_in {
     struct coda_in_hdr ih;
-    struct CodaFid	Fid;
+    struct CodaFid Fid;
     int	flags;
 };
 
@@ -376,8 +392,8 @@
 /* coda_release: */
 struct coda_release_in {
     struct coda_in_hdr ih;
-    struct CodaFid	Fid;
-    int	flags;
+    struct CodaFid Fid;
+    int32_t flags;
 };
 
 struct coda_release_out {
@@ -387,8 +403,8 @@
 /* coda_close: */
 struct coda_close_in {
     struct coda_in_hdr ih;
-    struct CodaFid	Fid;
-    int	flags;
+    struct CodaFid Fid;
+    int32_t flags;
 };
 
 struct coda_close_out {
@@ -399,16 +415,16 @@
 struct coda_ioctl_in {
     struct coda_in_hdr ih;
     struct CodaFid Fid;
-    int	cmd;
-    int	len;
-    int	rwflag;
-    char *data;			/* Place holder for data. */
+    int32_t cmd;
+    int32_t len;
+    int32_t rwflag;
+    u_int64_t data;			/* Place holder for data. */
 };
 
 struct coda_ioctl_out {
     struct coda_out_hdr oh;
-    int	len;
-    caddr_t	data;		/* Place holder for data. */
+    int32_t len;
+    u_int64_t data;		/* Place holder for data. */
 };
 
 
@@ -438,8 +454,8 @@
 /* coda_access: NO_OUT */
 struct coda_access_in {
     struct coda_in_hdr ih;
-    struct CodaFid	Fid;
-    int	flags;
+    struct CodaFid Fid;
+    int32_t flags;
 };
 
 struct coda_access_out {
@@ -454,15 +470,15 @@
 /* coda_lookup: */
 struct  coda_lookup_in {
     struct coda_in_hdr ih;
-    struct CodaFid	Fid;
-    int         name;		/* Place holder for data. */
-    int         flags;	
+    struct CodaFid Fid;
+    int32_t name;		/* Place holder for data. */
+    int32_t flags;	
 };
 
 struct coda_lookup_out {
     struct coda_out_hdr oh;
     struct CodaFid Fid;
-    int	vtype;
+    int32_t vtype;
 };
 
 
@@ -471,9 +487,9 @@
     struct coda_in_hdr ih;
     struct CodaFid Fid;
     struct coda_vattr attr;
-    int excl;
-    int mode;
-    int 	name;		/* Place holder for data. */
+    int32_t excl;
+    int32_t mode;
+    int32_t name;		/* Place holder for data. */
 };
 
 struct coda_create_out {
@@ -486,8 +502,8 @@
 /* coda_remove: NO_OUT */
 struct coda_remove_in {
     struct coda_in_hdr ih;
-    struct CodaFid	Fid;
-    int name;		/* Place holder for data. */
+    struct CodaFid Fid;
+    int32_t name;		/* Place holder for data. */
 };
 
 struct coda_remove_out {
@@ -497,9 +513,9 @@
 /* coda_link: NO_OUT */
 struct coda_link_in {
     struct coda_in_hdr ih;
-    struct CodaFid sourceFid;          /* cnode to link *to* */
-    struct CodaFid destFid;            /* Directory in which to place link */
-    int tname;		/* Place holder for data. */
+    struct CodaFid sourceFid;	/* cnode to link *to* */
+    struct CodaFid destFid;	/* Directory in which to place link */
+    int32_t tname;		/* Place holder for data. */
 };
 
 struct coda_link_out {
@@ -510,10 +526,10 @@
 /* coda_rename: NO_OUT */
 struct coda_rename_in {
     struct coda_in_hdr ih;
-    struct CodaFid	sourceFid;
-    int 	srcname;
+    struct CodaFid sourceFid;
+    int32_t 	srcname;
     struct CodaFid destFid;
-    int 	destname;
+    int32_t 	destname;
 };
 
 struct coda_rename_out {
@@ -523,9 +539,9 @@
 /* coda_mkdir: */
 struct coda_mkdir_in {
     struct coda_in_hdr ih;
-    struct CodaFid	Fid;
+    struct CodaFid Fid;
     struct coda_vattr attr;
-    int	   name;		/* Place holder for data. */
+    int32_t name;		/* Place holder for data. */
 };
 
 struct coda_mkdir_out {
@@ -538,35 +554,21 @@
 /* coda_rmdir: NO_OUT */
 struct coda_rmdir_in {
     struct coda_in_hdr ih;
-    struct CodaFid	Fid;
-    int name;		/* Place holder for data. */
+    struct CodaFid Fid;
+    int32_t name;		/* Place holder for data. */
 };
 
 struct coda_rmdir_out {
     struct coda_out_hdr out;
 };
 
-/* coda_readdir: */
-struct coda_readdir_in {
-    struct coda_in_hdr ih;
-    struct CodaFid Fid;
-    int	count;
-    int	offset;
-};
-
-struct coda_readdir_out {
-    struct coda_out_hdr oh;
-    int	size;
-    caddr_t	data;		/* Place holder for data. */
-};
-
 /* coda_symlink: NO_OUT */
 struct coda_symlink_in {
     struct coda_in_hdr ih;
-    struct CodaFid	Fid;          /* Directory to put symlink in */
-    int srcname;
+    struct CodaFid Fid;	/* Directory to put symlink in */
+    int32_t srcname;
     struct coda_vattr attr;
-    int tname;
+    int32_t tname;
 };
 
 struct coda_symlink_out {
@@ -581,8 +583,8 @@
 
 struct coda_readlink_out {
     struct coda_out_hdr oh;
-    int	count;
-    caddr_t	data;		/* Place holder for data. */
+    int32_t count;
+    u_int64_t data;		/* Place holder for data. */
 };
 
 
@@ -605,7 +607,7 @@
 struct coda_vget_out {
     struct coda_out_hdr oh;
     struct CodaFid Fid;
-    int	vtype;
+    int32_t vtype;
 };
 
 
@@ -617,7 +619,11 @@
 /* CODA_PURGEUSER is a venus->kernel call */
 struct coda_purgeuser_out {
     struct coda_out_hdr oh;
-    cuid_t uid;
+#ifdef CODA_FS_OLD_API
+    struct coda_cred cred;
+#else
+    vuid_t uid;
+#endif
 };
 
 /* coda_zapfile: */
@@ -634,13 +640,6 @@
     struct CodaFid Fid;
 };
 
-/* coda_zapnode: */
-/* CODA_ZAPVNODE is a venus->kernel call */	
-struct coda_zapvnode_out { 
-    struct coda_out_hdr oh;
-    struct CodaFid Fid;
-};
-
 /* coda_purgefid: */
 /* CODA_PURGEFID is a venus->kernel call */	
 struct coda_purgefid_out { 
@@ -659,13 +658,13 @@
 /* coda_open_by_fd: */
 struct coda_open_by_fd_in {
     struct coda_in_hdr ih;
-    struct CodaFid    Fid;
-    int        flags;
+    struct CodaFid Fid;
+    int32_t flags;
 };
 
 struct coda_open_by_fd_out {
     struct coda_out_hdr oh;
-    int fd;
+    int32_t fd;
 
 #ifdef __KERNEL__
     struct file *fh; /* not passed from userspace but used in-kernel only */
@@ -675,13 +674,13 @@
 /* coda_open_by_path: */
 struct coda_open_by_path_in {
     struct coda_in_hdr ih;
-    struct CodaFid	Fid;
-    int	flags;
+    struct CodaFid Fid;
+    int32_t flags;
 };
 
 struct coda_open_by_path_out {
     struct coda_out_hdr oh;
-	int path;
+    int32_t path;
 };
 
 /* coda_statfs: NO_IN */
@@ -718,7 +717,6 @@
     struct coda_rename_in coda_rename;
     struct coda_mkdir_in coda_mkdir;
     struct coda_rmdir_in coda_rmdir;
-    struct coda_readdir_in coda_readdir;
     struct coda_symlink_in coda_symlink;
     struct coda_readlink_in coda_readlink;
     struct coda_fsync_in coda_fsync;
@@ -737,13 +735,11 @@
     struct coda_lookup_out coda_lookup;
     struct coda_create_out coda_create;
     struct coda_mkdir_out coda_mkdir;
-    struct coda_readdir_out coda_readdir;
     struct coda_readlink_out coda_readlink;
     struct coda_vget_out coda_vget;
     struct coda_purgeuser_out coda_purgeuser;
     struct coda_zapfile_out coda_zapfile;
     struct coda_zapdir_out coda_zapdir;
-    struct coda_zapvnode_out coda_zapvnode;
     struct coda_purgefid_out coda_purgefid;
     struct coda_replace_out coda_replace;
     struct coda_open_by_fd_out coda_open_by_fd;
@@ -757,7 +753,6 @@
     struct coda_purgeuser_out purgeuser;
     struct coda_zapfile_out zapfile;
     struct coda_zapdir_out zapdir;
-    struct coda_zapvnode_out zapvnode;
     struct coda_purgefid_out purgefid;
     struct coda_replace_out replace;
 };
@@ -768,40 +763,36 @@
  */
 
 #define PIOCPARM_MASK 0x0000ffff
+
+// convert 32-bit pointers etc. safely to u_int64_t - is there a better way to do that?
+#define CONV_U_INT64_T(arg) ((((u_int64_t) arg) << ((sizeof(u_int64_t) - sizeof(arg)) * 8)) \
+		>> ((sizeof(u_int64_t) - sizeof(arg)) * 8))
+	
 struct ViceIoctl {
-        caddr_t in, out;        /* Data to be transferred in, or out */
-        short in_size;          /* Size of input buffer <= 2K */
-        short out_size;         /* Maximum size of output buffer, <= 2K */
+        u_int64_t in;        /* Data to be transferred in */
+        u_int64_t out;       /* Data to be transferred out */
+        int16_t in_size;          /* Size of input buffer <= 2K */
+        int16_t out_size;         /* Maximum size of output buffer, <= 2K */
 };
 
 struct PioctlData {
-        const char *path;
-        int follow;
-#if defined(__CYGWIN32__) || defined(__NT_CODA__)
-	int cmd;
-#endif
+        u_int64_t path;
+	//const char __user *path;
+        int32_t follow;
         struct ViceIoctl vi;
 };
 
-#define	CODA_CONTROL		".CONTROL"
-#define CODA_CONTROLLEN           8
-#define	CTL_VOL			-1
-#define	CTL_VNO			-1
-#define	CTL_UNI			-1
-#define CTL_INO                 -1
-#define	CTL_FILE		"/coda/.CONTROL"
-
-#define	IS_CTL_FID(fidp)	((fidp)->opaque[1] == CTL_VOL &&\
-				 (fidp)->opaque[2] == CTL_VNO &&\
-				 (fidp)->opaque[3] == CTL_UNI)
+#define CODA_CONTROL		".CONTROL"
+#define CODA_CONTROLLEN		8
+#define CTL_INO			-1
 
 /* Data passed to mount */
 
 #define CODA_MOUNT_VERSION 1
 
 struct coda_mount_data {
-	int		version;
-	int		fd;       /* Opened device */
+	int32_t version;
+	int32_t fd;       /* Opened device */
 };
 
 #endif 
