cvs commit: src/sys/cpu/i386/include trap.h src/sys/machine/pc32/i386 trap.c vm_machdep.c src/sys/machine/vkernel/i386 trap.c userldt.c src/sys/machine/vkernel/include md_var.h vmparam.h src/sys/machine/vkernel/platform pmap.c src/sys/sys systm.h ...
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun Jan 7 00:38:03 PST 2007
dillon 2007/01/07 00:37:37 PST
DragonFly src repository
Modified files:
sys/cpu/i386/include trap.h
sys/machine/pc32/i386 trap.c vm_machdep.c
sys/machine/vkernel/i386 trap.c userldt.c
sys/machine/vkernel/include md_var.h vmparam.h
sys/machine/vkernel/platform pmap.c
sys/sys systm.h
sys/vm vm_map.c
Log:
Implement nearly all the remaining items required to allow the virtual kernel
to actually execute code on behalf of a virtualized user process. The
virtual kernel is now able to execute the init binary through to the point
where it sets up a TLS segment.
* Create a pseudo tf_trapno called T_SYSCALL80 to indicate system call traps.
* Add MD shims when creating or destroying a struct vmspace, allowing the
virtual kernel to create and destroy real-kernel vmspaces along with.
Add appropriate calls to vmspace_mmap() and vmspace_mcontrol() to map
memory inside the user process vmspace. The memory is mapped VPAGETABLE
and the page table directory is set to point to the pmap page directory.
* Clean up user_trap, handle T_PAGEFLT properly.
* Implement go_user(). It calls vmspace_ctl(... VMSPACE_CTL_RUN) and
user_trap() in a loop, allowing the virtual kernel to 'run' a user
mode context under its control.
* Reduce VM_MAX_USER_ADDRESS to 0xb8000000 for now, until I figure out the
best way to have the virtual kernel query the actual max user address from
the real kernel.
* Correct a pm_pdirpte assignment. We can't look up the PTE until after
we have entered it into the kernel pmap.
Revision Changes Path
1.4 +2 -1 src/sys/cpu/i386/include/trap.h
1.91 +1 -0 src/sys/machine/pc32/i386/trap.c
1.52 +13 -0 src/sys/machine/pc32/i386/vm_machdep.c
1.4 +52 -31 src/sys/machine/vkernel/i386/trap.c
1.2 +2 -1 src/sys/machine/vkernel/i386/userldt.c
1.8 +2 -1 src/sys/machine/vkernel/include/md_var.h
1.4 +1 -1 src/sys/machine/vkernel/include/vmparam.h
1.5 +63 -2 src/sys/machine/vkernel/platform/pmap.c
1.59 +3 -0 src/sys/sys/systm.h
1.55 +3 -0 src/sys/vm/vm_map.c
http://www.dragonflybsd.org/cvsweb/src/sys/cpu/i386/include/trap.h.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/trap.c.diff?r1=1.90&r2=1.91&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/vm_machdep.c.diff?r1=1.51&r2=1.52&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/trap.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/userldt.c.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/include/md_var.h.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/include/vmparam.h.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/platform/pmap.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/systm.h.diff?r1=1.58&r2=1.59&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_map.c.diff?r1=1.54&r2=1.55&f=u
More information about the Commits
mailing list