aboutsummaryrefslogtreecommitdiffstats
path: root/netbsd-2.0-xen-sparse
diff options
context:
space:
mode:
authorcl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk>2004-09-07 16:05:53 +0000
committercl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk>2004-09-07 16:05:53 +0000
commitf11bc5a8fcd2fc973db017fceed97a963598381b (patch)
tree37030ab56d789b0fdee46d23d3fd3a815b5c8294 /netbsd-2.0-xen-sparse
parent2a23966f2b1d63ecf237b11ab8d261e90e614212 (diff)
downloadxen-f11bc5a8fcd2fc973db017fceed97a963598381b.tar.gz
xen-f11bc5a8fcd2fc973db017fceed97a963598381b.tar.bz2
xen-f11bc5a8fcd2fc973db017fceed97a963598381b.zip
bitkeeper revision 1.1159.1.131 (413ddc610qK3tZi2_2-e23mt5avoNA)
Load (Net)BSD symbol table from ELF image if requested.
Diffstat (limited to 'netbsd-2.0-xen-sparse')
-rw-r--r--netbsd-2.0-xen-sparse/sys/arch/xen/i386/locore.S22
-rw-r--r--netbsd-2.0-xen-sparse/sys/arch/xen/i386/machdep.c6
2 files changed, 11 insertions, 17 deletions
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