File lcrash-add-kl-init-virtop-i386 of Package lcrash

From: Bernhard Walle <bwalle@suse.de>
Subject: [PATCH] Add kl_init_virtop_i386()

This patch adds kl_init_virtop_i386(). This is necessary for the
next patch that adds a kl_linux_banner_valid() check also for i386.


Signed-off-by: Bernhard Walle <bwalle@suse.de>

---
 lib/libklib/include/kl_dump_i386.h |    1 +
 lib/libklib/kl_dump_i386.c         |    1 +
 lib/libklib/kl_kern.c              |   16 ----------------
 lib/libklib/kl_kern_i386.c         |   35 +++++++++++++++++++++++++++++++++++
 4 files changed, 37 insertions(+), 16 deletions(-)

--- a/lib/libklib/include/kl_dump_i386.h
+++ b/lib/libklib/include/kl_dump_i386.h
@@ -90,5 +90,6 @@ kaddr_t kl_dumpesp_i386(kaddr_t);
 int kl_get_dump_header_i386(kl_dump_header_i386_t*);
 int kl_smp_dumptask_i386(kaddr_t);
 int kl_set_dumparch_i386(void);
+int kl_init_virtop_i386(void);
 
 #endif /* __KL_DUMP_I386_H */
--- a/lib/libklib/kl_dump_i386.c
+++ b/lib/libklib/kl_dump_i386.c
@@ -211,6 +211,7 @@ kl_set_dumparch_i386(void)
 	KLP->dump->arch.fix_vaddr = kl_fix_vaddr_i386;
 	KLP->dump->arch.dha_size = sizeof(kl_dump_header_i386_t);
 	KLP->dump->arch.write_dha = kl_write_dha_i386;
+	KLP->dump->arch.init_virtop = kl_init_virtop_i386;
 	return(0);
 }
 
--- a/lib/libklib/kl_kern.c
+++ b/lib/libklib/kl_kern.c
@@ -199,21 +199,5 @@ kl_init_virtop(void)
 		}
 	}
 
-	/* Get the cr4 settings. This will tell us if the system is PAE enabled
-	 *
-	 */
-	if(KL_ARCH == KL_ARCH_I386){
-		sp = kl_lkup_symname("mmu_cr4_features");
-		if(sp){
-			KL_KERNEL_FLAGS = KL_READ_PTR(sp->s_addr - KL_PAGE_OFFSET);
-			if (KL_ERROR) {
-				/* XXX set error code */
-				return(1);
-			}
-		} else {
-			return(1);
-		}
-	}
-
 	return(0);
 }
--- a/lib/libklib/kl_kern_i386.c
+++ b/lib/libklib/kl_kern_i386.c
@@ -88,3 +88,38 @@ kl_fix_vaddr_i386(kaddr_t vaddr, size_t 
 	}
 	return vaddr;
 }
+
+/*
+ * Name: kl_init_virtop_i386()
+ * Func: initialize virtual to physical address translation
+ *       This function must at least initialize high_memory and init_mm.
+ */
+int
+kl_init_virtop_i386(void)
+{
+	syment_t *sp;
+	int ret;
+
+	ret = kl_init_virtop();
+	if (ret != 0) {
+		return ret;
+	}
+
+	/* Get the cr4 settings. This will tell us if the system is PAE enabled
+	 *
+	 */
+	if(KL_ARCH == KL_ARCH_I386){
+		sp = kl_lkup_symname("mmu_cr4_features");
+		if(sp){
+			KL_KERNEL_FLAGS = KL_READ_PTR(sp->s_addr - KL_PAGE_OFFSET);
+			if (KL_ERROR) {
+				/* XXX set error code */
+				return(1);
+			}
+		} else {
+			return(1);
+		}
+	}
+
+	return(0);
+}
openSUSE Build Service is sponsored by