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
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();
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;
};
-#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)
{
{
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;
EXTRA_VLIBOBJS="fstab.o"
SHLIB_LINKER="${MT_CC} -dynamiclib"
SHLIB_SUFFIX="dylib"
- RANLIB="ranlib -c"
+ RANLIB="ranlib"
;;
ppc_linux*)
#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"
PTSERVER = ../ptserver
SYS = ../sys
-AUDITOBJS = audit.o
+AUDITOBJS = audit.o audit-file.o audit-sysvmq.o
AUTHOBJS = \
cellconfig.o \
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}