#include <linux/syscall.h>
#endif
+#if defined(AFS_LINUX26_ENV)
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+
+#endif
+
#ifdef AFS_SPARC64_LINUX24_ENV
#define __NR_setgroups32 82 /* This number is not exported for some bizarre reason. */
#endif
+#if !defined(AFS_LINUX24_ENV)
asmlinkage int (*sys_settimeofdayp) (struct timeval * tv,
struct timezone * tz);
+#endif
asmlinkage long (*sys_setgroupsp) (int gidsetsize, gid_t * grouplist);
#ifdef EXPORTED_SYS_CALL_TABLE
static void **sys_call_table; /* safer for other linuces */
#endif
#endif
-extern struct file_system_type afs_file_system;
+extern struct file_system_type afs_fs_type;
static long get_page_offset(void);
struct semaphore afs_global_lock = MUTEX;
#endif
int afs_global_owner = 0;
+#if !defined(AFS_LINUX24_ENV)
unsigned long afs_linux_page_offset = 0; /* contains the PAGE_OFFSET value */
+#endif
/* Since sys_ni_syscall is not exported, I need to cache it in order to restore
* it.
{
#if defined(AFS_IA64_LINUX20_ENV)
unsigned long kernel_gp = 0;
- static struct fptr sys_settimeofday, sys_setgroups;
+ static struct fptr sys_setgroups;
#endif
extern int afs_syscall();
extern long afs_xsetgroups();
RWLOCK_INIT(&afs_xosi, "afs_xosi");
+#if !defined(AFS_LINUX24_ENV)
/* obtain PAGE_OFFSET value */
afs_linux_page_offset = get_page_offset();
return -EIO;
}
#endif
+#endif
#ifndef EXPORTED_SYS_CALL_TABLE
sys_call_table = 0;
#endif
/* Initialize pointers to kernel syscalls. */
-#if defined(AFS_IA64_LINUX20_ENV)
- kernel_gp = ((struct fptr *)printk)->gp;
-
- sys_settimeofdayp = (void *)&sys_settimeofday;
-
- ((struct fptr *)sys_settimeofdayp)->ip =
- SYSCALL2POINTER sys_call_table[__NR_settimeofday - 1024];
- ((struct fptr *)sys_settimeofdayp)->gp = kernel_gp;
-
-#else /* !AFS_IA64_LINUX20_ENV */
+#if !defined(AFS_LINUX24_ENV)
sys_settimeofdayp = SYSCALL2POINTER sys_call_table[__NR_settimeofday];
#endif /* AFS_IA64_LINUX20_ENV */
#endif /* AFS_S390_LINUX22_ENV */
osi_Init();
- register_filesystem(&afs_file_system);
+ register_filesystem(&afs_fs_type);
/* Intercept setgroups calls */
#if defined(AFS_IA64_LINUX20_ENV)
set_afs_xsetgroups_syscall(sys_setgroupsp);
set_afs_xsetgroups_syscall32(sys32_setgroupsp);
#endif
- unregister_filesystem(&afs_file_system);
+ unregister_filesystem(&afs_fs_type);
osi_linux_free_inode_pages(); /* Invalidate all pages using AFS inodes. */
osi_linux_free_afs_memory();
#endif
+#if !defined(AFS_LINUX24_ENV)
static long
get_page_offset(void)
{
return 0;
#endif
}
+#endif /* !AFS_LINUX24_ENV */