From f11bc5a8fcd2fc973db017fceed97a963598381b Mon Sep 17 00:00:00 2001 From: "cl349@freefall.cl.cam.ac.uk" Date: Tue, 7 Sep 2004 16:05:53 +0000 Subject: bitkeeper revision 1.1159.1.131 (413ddc610qK3tZi2_2-e23mt5avoNA) Load (Net)BSD symbol table from ELF image if requested. --- netbsd-2.0-xen-sparse/sys/arch/xen/i386/locore.S | 22 +++++++--------------- netbsd-2.0-xen-sparse/sys/arch/xen/i386/machdep.c | 6 ++++-- 2 files changed, 11 insertions(+), 17 deletions(-) (limited to 'netbsd-2.0-xen-sparse') diff --git a/netbsd-2.0-xen-sparse/sys/arch/xen/i386/locore.S b/netbsd-2.0-xen-sparse/sys/arch/xen/i386/locore.S index 45af67272f..6a1a3e7bd8 100644 --- a/netbsd-2.0-xen-sparse/sys/arch/xen/i386/locore.S +++ b/netbsd-2.0-xen-sparse/sys/arch/xen/i386/locore.S @@ -180,7 +180,12 @@ * Xen guest identifier and loader selection */ .section __xen_guest - .asciz "GUEST_OS=netbsd,GUEST_VER=2.0,XEN_VER=2.0,LOADER=generic" + .ascii "GUEST_OS=netbsd,GUEST_VER=2.0,XEN_VER=2.0" + .ascii ",LOADER=generic" +#if (NKSYMS || defined(DDB) || defined(LKM)) && !defined(SYMTAB_SPACE) + .ascii ",BSD_SYMTAB" +#endif + .byte 0 /* @@ -189,7 +194,7 @@ .data .globl _C_LABEL(cpu) - .globl _C_LABEL(esym),_C_LABEL(boothowto) + .globl _C_LABEL(boothowto) .globl _C_LABEL(bootinfo),_C_LABEL(atdevbase) #ifdef COMPAT_OLDBOOT .globl _C_LABEL(bootdev) @@ -228,7 +233,6 @@ _C_LABEL(lapic_tpr): _C_LABEL(cpu): .long 0 # are we 386, 386sx, or 486, # or Pentium, or.. -_C_LABEL(esym): .long 0 # ptr to end of syms _C_LABEL(atdevbase): .long 0 # location of start of iomem in virtual _C_LABEL(proc0paddr): .long 0 _C_LABEL(PTDpaddr): .long 0 # paddr of PTD, for libkvm @@ -254,11 +258,6 @@ tmpstk: #define _RELOC(x) ((x)) #define RELOC(x) _RELOC(_C_LABEL(x)) -/* XXX assym.h */ -#define MOD_START 48 -#define MOD_LEN 56 -/* XXX assym.h */ - .text .globl _C_LABEL(kernel_text) .set _C_LABEL(kernel_text),KERNTEXTOFF @@ -271,13 +270,6 @@ start: movl %esi,%ebx # save start_info pointer -#if (NKSYMS || defined(DDB) || defined(LKM)) && !defined(SYMTAB_SPACE) - /* Save the symbol locations. */ - movl MOD_START(%ebx),%esi - addl MOD_LEN(%ebx),%esi - movl %esi,RELOC(esym) -#endif - /* Clear BSS first so that there are no surprises... */ xorl %eax,%eax movl $RELOC(__bss_start),%edi diff --git a/netbsd-2.0-xen-sparse/sys/arch/xen/i386/machdep.c b/netbsd-2.0-xen-sparse/sys/arch/xen/i386/machdep.c index 61d2898096..5ec2d45271 100644 --- a/netbsd-2.0-xen-sparse/sys/arch/xen/i386/machdep.c +++ b/netbsd-2.0-xen-sparse/sys/arch/xen/i386/machdep.c @@ -2061,7 +2061,6 @@ init386(paddr_t first_avail) #if NKSYMS || defined(DDB) || defined(LKM) { extern int end; - extern int *esym; struct btinfo_symtab *symtab; #ifdef DDB @@ -2077,7 +2076,10 @@ init386(paddr_t first_avail) (int *)symtab->esym); } else - ksyms_init(*(int *)&end, ((int *)&end) + 1, esym); + ksyms_init(*(int *)&end, ((int *)&end) + 1, + xen_start_info.mod_start ? + (void *)xen_start_info.mod_start : + (void *)xen_start_info.mfn_list); } #endif #ifdef DDB -- cgit v1.2.3