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