Changeset View
Changeset View
Standalone View
Standalone View
sys/i386/i386/vm86bios.s
Show First 20 Lines • Show All 98 Lines • ▼ Show 20 Lines | 1: | ||||
movl %eax,0(%ebx) | movl %eax,0(%ebx) | ||||
movl 4(%edi),%eax | movl 4(%edi),%eax | ||||
movl %eax,4(%ebx) | movl %eax,4(%ebx) | ||||
movl $GPROC0_SEL*8,%esi /* GSEL(entry, SEL_KPL) */ | movl $GPROC0_SEL*8,%esi /* GSEL(entry, SEL_KPL) */ | ||||
ltr %si | ltr %si | ||||
movl %cr3,%eax | movl %cr3,%eax | ||||
pushl %eax /* save address space */ | pushl %eax /* save address space */ | ||||
movl IdlePTD,%ecx | movl IdlePTD,%ecx /* va (and pa) of Idle PTD */ | ||||
movl %ecx,%ebx | movl %ecx,%ebx | ||||
addl $KERNBASE,%ebx /* va of Idle PTD */ | |||||
movl 0(%ebx),%eax | movl 0(%ebx),%eax | ||||
pushl %eax /* old ptde != 0 when booting */ | pushl %eax /* old ptde != 0 when booting */ | ||||
pushl %ebx /* keep for reuse */ | pushl %ebx /* keep for reuse */ | ||||
movl %esp,SCR_STACK(%edx) /* save current stack location */ | movl %esp,SCR_STACK(%edx) /* save current stack location */ | ||||
movl SCR_NEWPTD(%edx),%eax /* mapping for vm86 page table */ | movl SCR_NEWPTD(%edx),%eax /* mapping for vm86 page table */ | ||||
movl %eax,0(%ebx) /* ... install as PTD entry 0 */ | movl %eax,0(%ebx) /* ... install as PTD entry 0 */ | ||||
▲ Show 20 Lines • Show All 56 Lines • Show Last 20 Lines |