version 1.113.2.5, 2016/12/05 10:54:53 |
version 1.144, 2017/01/06 08:36:56 |
|
|
*/ |
*/ |
|
|
/* Find end of kernel image; brings us on (1). */ |
/* Find end of kernel image; brings us on (1). */ |
movl $RELOC(end),%edi |
movl $RELOC(__kernel_end),%edi |
|
|
#if (NKSYMS || defined(DDB) || defined(MODULAR)) && !defined(makeoptions_COPY_SYMTAB) |
#if (NKSYMS || defined(DDB) || defined(MODULAR)) && !defined(makeoptions_COPY_SYMTAB) |
/* Save the symbols (if loaded); brinds us on (2). */ |
/* Save the symbols (if loaded); brinds us on (2). */ |
|
|
incl %eax /* one more PTP for VAs stolen by bootstrap */ |
incl %eax /* one more PTP for VAs stolen by bootstrap */ |
1: movl %eax,RELOC(nkptp)+1*4 |
1: movl %eax,RELOC(nkptp)+1*4 |
|
|
/* tablesize = (PDP_SIZE + UPAGES + nkptp) << PGSHIFT; */ |
/* tablesize = (PDP_SIZE + UPAGES + nkptp[1]) << PGSHIFT; */ |
addl $(PDP_SIZE+UPAGES),%eax |
addl $(PDP_SIZE+UPAGES),%eax |
#ifdef PAE |
#ifdef PAE |
incl %eax /* one more page for L3 */ |
incl %eax /* one more page for L3 */ |
|
|
#endif |
#endif |
movl %eax,RELOC(tablesize) |
movl %eax,RELOC(tablesize) |
|
|
/* Ensure that nkptp covers BOOTSTRAP TABLES. */ |
/* Ensure that nkptp[1] covers BOOTSTRAP TABLES, ie: |
|
* (esi + tablesize) >> L2_SHIFT + 1 < nkptp[1] */ |
addl %esi,%eax |
addl %esi,%eax |
addl $~L2_FRAME,%eax |
addl $~L2_FRAME,%eax |
shrl $L2_SHIFT,%eax |
shrl $L2_SHIFT,%eax |
|
|
leal (USPACE-FRAMESIZE)(%eax),%esp |
leal (USPACE-FRAMESIZE)(%eax),%esp |
xorl %ebp,%ebp /* mark end of frames */ |
xorl %ebp,%ebp /* mark end of frames */ |
|
|
/* Set first_avail after the UAREA. */ |
/* Set first_avail after the DUMMY PAGE (see xen_locore). */ |
addl $USPACE,%esi |
addl $(USPACE+PAGE_SIZE),%esi |
subl $KERNBASE,%esi /* init386 wants a physical address */ |
subl $KERNBASE,%esi /* init386 wants a physical address */ |
|
|
#ifdef PAE |
#ifdef PAE |