From 963a1a24f21da8c31b0dcfa3b0e0f75799feeccc Mon Sep 17 00:00:00 2001 From: Mike Becher Date: Fri, 17 Dec 2004 15:31:26 +0000 Subject: [PATCH] STABLE14-kdump-update-20041217 update kdump for ia64_linux26 (cherry picked from commit f639e4b41ef12bb78feb27495952f065b917fc73) --- src/venus/Makefile.in | 2 +- src/venus/kdump.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/venus/Makefile.in b/src/venus/Makefile.in index 105e209a5..1f08ca38b 100644 --- a/src/venus/Makefile.in +++ b/src/venus/Makefile.in @@ -286,7 +286,7 @@ ${DEST}/etc/kdump: kdump-build ${INSTALL} -s kdump-alpha_linux-${LINUX_VERSION} $@ ;; \ *linux* ) \ ${INSTALLex} -f ${srcdir}/kdump.sh.linux ${DEST}/etc/kdump; \ - ${INSTALL} -s kdump-linux-${LINUX_VERSION} $@ ;; \ + ${INSTALL} -s kdump-linux-${LINUX_VERSION} $@-${LINUX_VERSION} ;; \ hp_ux11* ) \ ${INSTALLex} -f ${srcdir}/kdump.sh.hp_ux11 ${DEST}/etc/kdump; \ ${INSTALL} -s -f $? $@;; \ diff --git a/src/venus/kdump.c b/src/venus/kdump.c index a0411d636..5b8d5e2e2 100644 --- a/src/venus/kdump.c +++ b/src/venus/kdump.c @@ -244,7 +244,9 @@ typedef struct adaptive_mutex2 adaptive_mutex2_t; #else #include "sys/vfs.h" #ifdef AFS_LINUX20_ENV +#ifndef UIO_MAXIOV #define UIO_MAXIOV 1 /* don't care */ +#endif #if __GLIBC_MINOR__ == 0 #include #endif @@ -257,6 +259,9 @@ typedef struct adaptive_mutex2 adaptive_mutex2_t; #undef ULONG_MAX #define _LINUX_TIME_H #define _LINUX_FCNTL_H +#ifdef AFS_IA64_LINUX24_ENV +#define flock64 flock +#endif /* AFS_IA64_LINUX24_ENV */ #ifdef AFS_S390_LINUX20_ENV #define _S390_STATFS_H #else @@ -294,6 +299,16 @@ typedef struct timeval { #define timer_t ktimer_t #define timer_t_redefined #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 HAVE_SECTOR_T +/* got it from linux/types.h */ +typedef unsigned long sector_t; +#endif /* HAVE_SECTOR_T */ +#endif /* AFS_LINUX26_ENV */ #include #include #include @@ -647,7 +662,11 @@ PrintIPAddr(int addr) #define MAXNAMELEN 64 typedef struct symlist { char s_name[MAXNAMELEN]; +#ifdef AFS_LINUX_64BIT_KERNEL + unsigned long s_value; +#else int s_value; +#endif /* AFS_LINUX_64BIT_KERNEL */ } symlist_t; #define KSYM_ALLOC_STEP 128 @@ -701,7 +720,11 @@ read_ksyms(void) exit(1); } } +#ifdef AFS_LINUX_64BIT_KERNEL + ksyms[nksyms].s_value = (unsigned long)strtoul(line, &p, 16); +#else ksyms[nksyms].s_value = (int)strtoul(line, &p, 16); +#endif /* AFS_LINUX_64BIT_KERNEL */ p++; #ifdef AFS_LINUX26_ENV /* Linux 2.6 /proc/kallsyms has a one-char symbol type @@ -728,7 +751,11 @@ read_ksyms(void) /* find_symbol returns 0 if not found, otherwise value for symbol */ +#ifdef AFS_LINUX_64BIT_KERNEL +unsigned long +#else int +#endif /* AFS_LINUX_64BIT_KERNEL */ find_symbol(char *name) { symlist_t *tmp; @@ -1906,7 +1933,11 @@ print_alloced_memlist(void) findsym("afs_linux_memlist", &symoff); kread(kmem, symoff, (char *)&memp, sizeof memp); if (memp) { +#ifdef AFS_LINUX_64BIT_KERNEL + kread(kmem, (unsigned long)memp, (char *)&next, sizeof next); +#else kread(kmem, (int)memp, (char *)&next, sizeof next); +#endif /* AFS_LINUX_64BIT_KERNEL */ } else { memset(&next, 0, sizeof next); } -- 2.39.5