| version 1.39, 2006/05/13 08:56:08 |
version 1.40, 2006/05/22 13:44:53 |
|
|
| .globl _C_LABEL(cpu) |
.globl _C_LABEL(cpu) |
| .globl _C_LABEL(esym) |
.globl _C_LABEL(esym) |
| .globl _C_LABEL(atdevbase) |
.globl _C_LABEL(atdevbase) |
| .globl _C_LABEL(proc0paddr),_C_LABEL(PDPpaddr) |
.globl _C_LABEL(proc0uarea),_C_LABEL(PDPpaddr) |
| .globl _C_LABEL(gdt) |
.globl _C_LABEL(gdt) |
| #ifdef I586_CPU |
#ifdef I586_CPU |
| .globl _C_LABEL(idt) |
.globl _C_LABEL(idt) |
| Line 193 _C_LABEL(lapic_tpr): |
|
| Line 193 _C_LABEL(lapic_tpr): |
|
| _C_LABEL(cpu): .long 0 # are we 386, 386sx, or 486, |
_C_LABEL(cpu): .long 0 # are we 386, 386sx, or 486, |
| # or Pentium, or.. |
# or Pentium, or.. |
| _C_LABEL(atdevbase): .long 0 # location of start of iomem in virtual |
_C_LABEL(atdevbase): .long 0 # location of start of iomem in virtual |
| _C_LABEL(proc0paddr): .long 0 |
_C_LABEL(proc0uarea): .long 0 |
| _C_LABEL(PDPpaddr): .long 0 # paddr of PDP, for libkvm |
_C_LABEL(PDPpaddr): .long 0 # paddr of PDP, for libkvm |
| |
|
| .space 512 |
.space 512 |
|
|
| |
|
| /* Set up bootstrap stack. */ |
/* Set up bootstrap stack. */ |
| leal (PROC0STACK+KERNBASE)(%esi),%eax |
leal (PROC0STACK+KERNBASE)(%esi),%eax |
| movl %eax,_C_LABEL(proc0paddr) |
movl %eax,_C_LABEL(proc0uarea) |
| leal (USPACE-FRAMESIZE)(%eax),%esp |
leal (KSTACK_SIZE-FRAMESIZE)(%eax),%esp |
| movl %esi,PCB_CR3(%eax) # pcb->pcb_cr3 |
movl %esi,(KSTACK_SIZE+PCB_CR3)(%eax) # pcb->pcb_cr3 |
| xorl %ebp,%ebp # mark end of frames |
xorl %ebp,%ebp # mark end of frames |
| |
|
| #if defined(MULTIBOOT) |
#if defined(MULTIBOOT) |