Hello,

I've updated the FreeMWare CVS.  The modifications are:

User side:

- Added a 'guest' directory to contain various test guest kernels.
- Moved the dummy virtcode to guest/virtcode.
- Added Ramon's nullkernel to CVS under guest/cooperative and guest/preemptive
- Made the choice of which guest kernel to load a command line parameter
  to the 'user' tool.

Kernel side:

- Reorganized the interrupt/exception handling to prepare for monitor
  exception handlers.  The kernel now distiguishes between hardware
  interrupts (which are forwarded to the host), fatal exceptions (which
  cause termination of the VM), and expected exceptions (which are to be
  handled by the monitor).  The exception assembly stub prepares a 
  'context' structure containing current guest register values, which
  is passed to the monitor's handler.  The handler can examine the
  situation, decide what to do, and modify the context if necessary
  before resuming execution.  [ Actual handlers are still missing :-/ ]

The effect of those changes is that you can run the 'virtcode' as before,
and you can also run the 'cooperative' kernel; the latter will instantly
abort due to a not-yet-handled GPF, however ;-)

The next step would be to start writing GPF and page fault handlers for
the monitor, which should as a minimum start virtualization of the GDT
and IDT ...

Any comments?

Bye,
Ulrich

-- 
  Ulrich Weigand,
  IMMD 1, Universitaet Erlangen-Nuernberg,
  Martensstr. 3, D-91058 Erlangen, Phone: +49 9131 85-7688

Reply via email to