KNF and simplify Xen, and reduce the diff with amd64 a little
This commit is contained in:
parent
3a541ed229
commit
704dbda08c
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: locore.S,v 1.138 2016/10/16 10:51:31 maxv Exp $ */
|
||||
/* $NetBSD: locore.S,v 1.139 2016/11/11 11:00:38 maxv Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright-o-rama!
|
||||
@ -128,7 +128,7 @@
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.138 2016/10/16 10:51:31 maxv Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.139 2016/11/11 11:00:38 maxv Exp $");
|
||||
|
||||
#include "opt_compat_oldboot.h"
|
||||
#include "opt_copy_symtab.h"
|
||||
@ -847,7 +847,7 @@ begin:
|
||||
pushl $0 /* init386() expects a 64 bits paddr_t with PAE */
|
||||
#endif
|
||||
pushl %eax
|
||||
call _C_LABEL(init386) /* wire 386 chip for unix operation */
|
||||
call _C_LABEL(init386)
|
||||
addl $PDE_SIZE,%esp /* pop paddr_t */
|
||||
addl $NGDT*8,%esp /* pop temporary gdt */
|
||||
|
||||
@ -876,38 +876,43 @@ begin:
|
||||
popfl
|
||||
|
||||
cld
|
||||
movl %esp, %ebx /* save start of available space */
|
||||
movl $_RELOC(tmpstk),%esp /* bootstrap stack end location */
|
||||
|
||||
/*
|
||||
* Xen info:
|
||||
* - %esp -> stack, *theoretically* the last used page by Xen bootstrap
|
||||
*/
|
||||
movl %esp,%ebx
|
||||
movl $_RELOC(tmpstk),%esp
|
||||
|
||||
/* Clear BSS. */
|
||||
xorl %eax,%eax
|
||||
movl $RELOC(__bss_start),%edi
|
||||
movl $RELOC(_end),%ecx
|
||||
subl %edi,%ecx
|
||||
rep stosb
|
||||
rep
|
||||
stosb
|
||||
|
||||
/* Copy the necessary stuff from start_info structure. */
|
||||
/* We need to copy shared_info early, so that sti/cli work */
|
||||
movl $RELOC(start_info_union),%edi
|
||||
movl $128,%ecx
|
||||
rep movsl
|
||||
rep
|
||||
movsl
|
||||
|
||||
/* Clear segment registers; always null in proc0. */
|
||||
/* Clear segment registers. */
|
||||
xorl %eax,%eax
|
||||
movw %ax,%fs
|
||||
movw %ax,%gs
|
||||
decl %eax
|
||||
movl %eax,RELOC(cpuid_level)
|
||||
|
||||
xorl %eax,%eax
|
||||
cpuid
|
||||
movl %eax,RELOC(cpuid_level)
|
||||
|
||||
/*
|
||||
* Use a temp page. We'll re- add it to uvm(9) once we're
|
||||
* done using it.
|
||||
* Use a temporary GDT page. We'll re-add it to uvm(9) once we're done
|
||||
* using it.
|
||||
*/
|
||||
movl $RELOC(tmpgdt), %eax
|
||||
movl $RELOC(tmpgdt),%eax
|
||||
pushl %eax /* start of temporary gdt */
|
||||
call _C_LABEL(initgdt)
|
||||
addl $4,%esp
|
||||
@ -915,23 +920,23 @@ begin:
|
||||
call xen_pmap_bootstrap
|
||||
|
||||
/*
|
||||
* First avail returned by xen_pmap_bootstrap in %eax
|
||||
* The first VA available is returned by xen_pmap_bootstrap in %eax. We
|
||||
* use it as the UAREA, and set up the stack here.
|
||||
*/
|
||||
movl %eax, %esi;
|
||||
movl %esi, _C_LABEL(lwp0uarea)
|
||||
|
||||
/* Set up bootstrap stack. */
|
||||
movl %eax,%esi
|
||||
movl %esi,_C_LABEL(lwp0uarea)
|
||||
leal (USPACE-FRAMESIZE)(%eax),%esp
|
||||
xorl %ebp,%ebp /* mark end of frames */
|
||||
|
||||
addl $USPACE, %esi
|
||||
subl $KERNBASE, %esi /* init386 wants a physical address */
|
||||
/* Set first_avail after the UAREA. */
|
||||
addl $USPACE,%esi
|
||||
subl $KERNBASE,%esi /* init386 wants a physical address */
|
||||
|
||||
#ifdef PAE
|
||||
pushl $0 /* init386() expects a 64 bits paddr_t with PAE */
|
||||
#endif
|
||||
pushl %esi
|
||||
call _C_LABEL(init386) /* wire 386 chip for unix operation */
|
||||
call _C_LABEL(init386)
|
||||
addl $PDE_SIZE,%esp /* pop paddr_t */
|
||||
call _C_LABEL(main)
|
||||
#endif /* XEN */
|
||||
|
Loading…
x
Reference in New Issue
Block a user