]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
macos 10.6 updates
authorDerrick Brashear <shadow@dementia.org>
Fri, 14 Aug 2009 16:06:03 +0000 (12:06 -0400)
committerDerrick Brashear <shadow@dementia.org>
Fri, 14 Aug 2009 18:58:49 +0000 (11:58 -0700)
cope with mixed 32/64 environment provided by macos 10.6. build needed
stuff for audit logs in shlibafsauthent.

Reviewed-on: http://gerrit.openafs.org/310
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
src/afs/DARWIN/osi_misc.c
src/afs/DARWIN/osi_module.c
src/afs/afs_syscall.c
src/cf/osconf.m4
src/config/param.x86_darwin_100.h
src/shlibafsauthent/Makefile.in

index 059e4ed49d80996596e31ea8bf129331e691bde8..f990fab8fa4dbf6b490454be43b60b013dd3883b 100644 (file)
@@ -189,22 +189,20 @@ extern int afs3_syscall(struct proc *p, void *data, unsigned long *retval);
 
 int
 afs_cdev_ioctl(dev_t dev, u_long cmd, caddr_t data, int fflag, struct proc *p) {
-   unsigned long retval=0;
-   int code;
-   struct afssysargs *a = (struct afssysargs *)data;
-   if (proc_is64bit(p))
-     return EINVAL;
-
-  if (cmd != VIOC_SYSCALL) {
-     return EINVAL;
-  }
-
- code=afs3_syscall(p, data, &retval);
- if (code)
-    return code;
- if (retval && a->syscall != AFSCALL_CALL && a->param1 != AFSOP_CACHEINODE) { printf("SSCall(%d,%d) is returning non-error value %d\n", a->syscall, a->param1, retval); }
- a->retval = retval;
- return 0; 
+    unsigned long retval=0;
+    int code;
+    struct afssysargs *a = (struct afssysargs *)data;
+    
+    if (cmd != VIOC_SYSCALL) {
+       return EINVAL;
+    }
+    
+    code=afs3_syscall(p, data, &retval);
+    if (code)
+       return code;
+    if (retval && a->syscall != AFSCALL_CALL && a->param1 != AFSOP_CACHEINODE) { printf("SSCall(%d,%d) is returning non-error value %d\n", a->syscall, a->param1, retval); }
+    a->retval = retval;
+    return 0; 
 }
 
 #endif
index 77bc0e0add5cf31b22626fdbf2a142611c55d48f..5991b06b9ff8928c98ef18d42fd032aef0cc0bdc 100644 (file)
@@ -53,8 +53,7 @@ afs_modload(struct kmod_info *ki, void *data)
     afs_vfsentry.vfe_vfsops = &afs_vfsops;
     afs_vfsentry.vfe_vopcnt = 2;
     afs_vfsentry.vfe_opvdescs = afs_vnodeop_opv_desc_list;
-    /* We may be 64bit ready too (VFS_TBL64BITREADY) */
-    afs_vfsentry.vfe_flags = VFS_TBLTHREADSAFE|VFS_TBLNOTYPENUM;
+    afs_vfsentry.vfe_flags = VFS_TBLTHREADSAFE|VFS_TBLNOTYPENUM|VFS_TBL64BITREADY;
     if (vfs_fsadd(&afs_vfsentry, &afs_vfstable)) {
        printf("AFS: vfs_fsadd failed. aborting\n");
        MUTEX_FINISH();
index de3877d4b08954739cdbcab59beb73eca73e2b15..c14c84ef7ef2d36ad2bca43e37668e8a982b337a 100644 (file)
@@ -48,6 +48,16 @@ int
 copyin_afs_ioctl(caddr_t cmarg, struct afs_ioctl *dst)
 {
     int code;
+#if defined(AFS_DARWIN100_ENV)
+    struct afs_ioctl32 dst32;
+    
+    if (!proc_is64bit(current_proc())) {
+       AFS_COPYIN(cmarg, (caddr_t) & dst32, sizeof dst32, code);
+       if (!code)
+           afs_ioctl32_to_afs_ioctl(&dst32, dst);
+       return code;
+    }
+#endif
 #if defined(AFS_AIX51_ENV) && defined(AFS_64BIT_KERNEL)
     struct afs_ioctl32 dst32;
 
@@ -322,7 +332,7 @@ struct iparam32 {
 };
 
 
-#if defined(AFS_HPUX_64BIT_ENV) || defined(AFS_SUN57_64BIT_ENV) || (defined(AFS_LINUX_64BIT_KERNEL) && !defined(AFS_ALPHA_LINUX20_ENV) && !defined(AFS_IA64_LINUX20_ENV))
+#if defined(AFS_HPUX_64BIT_ENV) || defined(AFS_SUN57_64BIT_ENV) || (defined(AFS_LINUX_64BIT_KERNEL) && !defined(AFS_ALPHA_LINUX20_ENV) && !defined(AFS_IA64_LINUX20_ENV)) || defined(NEED_IOCTL32)
 static void
 iparam32_to_iparam(const struct iparam32 *src, struct iparam *dst)
 {
@@ -343,6 +353,16 @@ copyin_iparam(caddr_t cmarg, struct iparam *dst)
 {
     int code;
 
+#if defined(AFS_DARWIN100_ENV)
+    struct iparam32 dst32;
+    
+    if (!proc_is64bit(current_proc())) {
+       AFS_COPYIN(cmarg, (caddr_t) & dst32, sizeof dst32, code);
+       if (!code)
+           iparam32_to_iparam(&dst32, dst);
+       return code;
+    }
+#endif
 #if defined(AFS_HPUX_64BIT_ENV)
     struct iparam32 dst32;
 
index 4a4e69a938812eec7214d9be3de8a5e87c150f75..5d2f0278c80d7628be1c204d8903281c3c5f3704 100644 (file)
@@ -583,7 +583,7 @@ case $AFS_SYSNAME in
                EXTRA_VLIBOBJS="fstab.o"
                SHLIB_LINKER="${MT_CC} -dynamiclib"
                SHLIB_SUFFIX="dylib"
-               RANLIB="ranlib -c"
+               RANLIB="ranlib"
                ;;
 
        ppc_linux*)
index de93901399f516500df4305217c4edb1f90a08b0..b45d6fd5162d2d8d1cfa413a15b98a063b3554b3 100644 (file)
@@ -32,6 +32,7 @@
 #define AFS_NAMEI_ENV 1
 #define DARWIN_REFBASE 3
 #define AFS_CACHE_VNODE_PATH
+#define NEED_IOCTL32 
 
 /* File system entry (used if mount.h doesn't define MOUNT_AFS */
 #define AFS_MOUNT_AFS    "afs"
index 986a34911764225fb4ba7ffc8ccfc246ae861353..cc630714c5d1a13f6e2509a4a43e3b5311336fca 100644 (file)
@@ -32,7 +32,7 @@ RXKAD = ../rxkad
 PTSERVER = ../ptserver
 SYS = ../sys
 
-AUDITOBJS = audit.o
+AUDITOBJS = audit.o audit-file.o audit-sysvmq.o
 
 AUTHOBJS = \
        cellconfig.o \
@@ -143,6 +143,12 @@ libafsauthent_pic.a: ${LIBOBJS}
 audit.o: ${AUDIT}/audit.c
        ${CCRULE}
 
+audit-file.o: ${AUDIT}/audit-file.c
+       ${CCRULE}
+
+audit-sysvmq.o: ${AUDIT}/audit-sysvmq.c
+       ${CCRULE}
+
 cellconfig.o: ${AUTH}/cellconfig.c
        ${CCRULE}