linux26-rlim-20050114
[openafs.git] / src / afs / LINUX / osi_machdep.h
index 6cd4eb9..83f6b1a 100644 (file)
 #define SIG_UNLOCK(X) spin_unlock_irq(&X->sig->siglock)
 #endif
 
+#if defined (STRUCT_TASK_STRUCT_HAS_RLIM)
+#define TASK_STRUCT_RLIM rlim
+#elif defined (STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM)
+#define TASK_STRUCT_RLIM signal->rlim
+#else
+#error Not sure what to do about rlim (should be in the Linux task struct somewhere....)
+#endif
+
 
 #define afs_hz HZ
 #include "h/sched.h"
 #define osi_Time() (xtime.tv_sec)
+#ifdef AFS_LINUX_64BIT_KERNEL
+#define osi_GetTime(V)                                 \
+    do {                                               \
+       struct timeval tv;                              \
+       do_gettimeofday(&tv);                           \
+       (V)->tv_sec = (afs_int32)tv.tv_sec;             \
+       (V)->tv_usec = (afs_int32)tv.tv_usec;           \
+    } while (0)
+#else
 #define osi_GetTime(V) do_gettimeofday((V))
+#endif
 
 #undef gop_lookupname
 #define gop_lookupname osi_lookupname
@@ -117,6 +135,9 @@ extern struct vnodeops afs_file_iops, afs_dir_iops, afs_symlink_iops;
 
 
 #define PAGESIZE PAGE_SIZE
+#ifndef NGROUPS
+#define NGROUPS NGROUPS_SMALL
+#endif
 
 /* cred struct */
 typedef struct cred {          /* maps to task field: */