#undef USE_UCONTEXT
#endif
+#ifdef AFS_LINUX26_ENV
+/* For some reason, this doesn't get defined in linux/types.h
+ if __KERNEL_STRICT_NAMES is defined. But the definition of
+ struct inode uses it.
+*/
+#ifndef pgoff_t
+#define pgoff_t unsigned long
+#endif
+#endif
+
#include <string.h>
#ifdef __linux__
#include <stdlib.h>
#include <string.h>
+#ifdef AFS_LINUX26_ENV
+#define KSYMS "/proc/kallsyms"
+#else
#define KSYMS "/proc/ksyms"
+#endif
/* symlist_t contains all the kernel symbols. Forcing a 64 byte array is
* a bit wasteful, but simple.
}
ksyms[nksyms].s_value = (int)strtoul(line, &p, 16);
p++;
+#ifdef AFS_LINUX26_ENV
+ /* Linux 2.6 /proc/kallsyms has a one-char symbol type
+ between address and name, so step over it and the following
+ blank.
+ */
+ p += 2;
+#endif
q = strchr(p, '\t');
if (q)
*q = '\0';
vep->i_atime, vep->i_mtime, vep->i_ctime, vep->i_version,
vep->i_nrpages);
#endif
+#ifdef AFS_LINUX26_ENV
+ printf("\ti_op=0x%x, i_rdev=0x%x, i_sb=0x%x\n", vep->i_op,
+ vep->i_rdev, vep->i_sb);
+#else /* AFS_LINUX26_ENV */
printf("\ti_op=0x%x, i_dev=0x%x, i_rdev=0x%x, i_sb=0x%x\n", vep->i_op,
vep->i_dev, vep->i_rdev, vep->i_sb);
+#endif /* AFS_LINUX26_ENV */
#ifdef AFS_LINUX24_ENV
#ifdef AFS_PARISC_LINUX24_ENV
printf("\ti_sem: count=%d, wait=0x%x\n", vep->i_sem.count,
printf("\ti_sem: count=%d, waking=%d, wait=0x%x\n", vep->i_sem.count,
vep->i_sem.waking, vep->i_sem.wait);
#endif
+#ifdef AFS_LINUX26_ENV
+ printf("\ti_hash=0x%x:0x%x, i_list=0x%x:0x%x, i_dentry=0x%x:0x%x\n",
+ vep->i_hash.pprev, vep->i_hash.next, vep->i_list.prev,
+ vep->i_list.next, vep->i_dentry.prev, vep->i_dentry.next);
+#else /* AFS_LINUX26_ENV */
printf("\ti_hash=0x%x:0x%x, i_list=0x%x:0x%x, i_dentry=0x%x:0x%x\n",
vep->i_hash.prev, vep->i_hash.next, vep->i_list.prev,
vep->i_list.next, vep->i_dentry.prev, vep->i_dentry.next);
+#endif /* AFS_LINUX26_ENV */
#endif /* AFS_LINUX22_ENV */
}
#ifdef AFS_64BIT_CLIENT
printf
("truncPos=(0x%x, 0x%x),\n\tcallb=x%lx, cbE=%d, opens=%d, XoW=%d, ",
- (int)vep->truncPos >> 32, (int)vep->truncPos & 0xffffffff,
+ (int)(vep->truncPos >> 32), (int)(vep->truncPos & 0xffffffff),
vep->callback, vep->cbExpires, vep->opens, vep->execsOrWriters);
#else /* AFS_64BIT_CLIENT */
printf("truncPos=%d,\n\tcallb=x%lx, cbE=%d, opens=%d, XoW=%d, ",
#ifdef AFS_64BIT_CLIENT
printf("\tquick[dc=%x, stamp=%x, f=%x, min=%d, len=(0x%x, 0x%x)]\n",
vep->quick.dc, vep->quick.stamp, vep->quick.f,
- vep->quick.minLoc, (int)vep->quick.len >> 32,
- (int)vep->quick.len & 0xffffffff);
+ vep->quick.minLoc, (int)(vep->quick.len >> 32),
+ (int)(vep->quick.len & 0xffffffff));
printf
("\tmstat[len=(0x%x, 0x%x), DV=%d.%d, Date=%d, Owner=%d, Group=%d, Mode=0%o, linkc=%d]\n",
- (int)vep->m.Length >> 32, (int)vep->m.Length & 0xffffffff,
+ (int)(vep->m.Length >> 32), (int)(vep->m.Length & 0xffffffff),
vep->m.DataVersion.high, vep->m.DataVersion.low, vep->m.Date,
vep->m.Owner, vep->m.Group, vep->m.Mode, vep->m.LinkCount);
#else /* AFS_64BIT_CLIENT */