2005-09-04  Paul Brook  <paul@codesourcery.com>

	* patch.qvm86: Resync with qemu CVS.

2005-08-28  Paul Brook  <paul@codesourcery.com>

	* patch.qvm86: Resync with qemu CVS.

2005-08-24  Paul Brook  <paul@codesourcery.com>

	* qvm86-host.c (qvm86_find_selector): Handle unaligned base address.

2005-08-01  Paul Brook  <paul@codesourcery.com>

	* switch.S: Disable do_gpf code.

2005-07-28  Filip Navara  <xnavara@volny.cz>

	* qvm86-win32.c (_KUSER_SHARED_DATA): Add.
	(host_phys_addr): Return full 64-bit address.
	(DriverEntry): Set qvm86_host_pae.
	* qvm86-win32.h (host_physaddr_t): Change to uint64_t.
	(qvm86_host_pae): Make runtime vairable.

2005-07-28  Filip Navara  <xnavara@volny.cz>

	- Implement the "scheduling" functions.
	- Fix a bug which cause the driver to fail unloading on Win2K
	machines.
	- Attempt to fix win32 on machines with NX support.
	- Installation script.

2005-07-28  Paul Brook  <paul@codesourcery.com>

	* Makefile (DEPS): Add qvm86-linux.h.
	* qvm86-linux.h: New file.
	* monitor-env.h: Remove unused fields. Add switch_pde_high.
	* patch.qvm86: Resync with qemu CVS.
	* qvm86-host.c (qvm86_walk_guest_pgtable_nopae): New function.
	(qvm86_find_selector): Use it.
	(map_monitor_pages_pae, map_monitor_pages_nopae): New functions.
	(map_monitor_pages): Use them.
	* (qvm86_setup_monitor_vm): Enable PAE as appropriate.
	(qvm86_shadow_page_nopae, qvm86_shadow_page_pae): New functions.
	(qvm86_shadow_fault): Use them.
	(qvm86_flush_list_pae, qvm86_flush_list_nopae): New functions.
	(qvm86_invalidate_pagetables): Use them.
	(qvm86_clear_pagetables): Remove.
	(qvm86_set_monitor_pde): New function.
	(qvm86_setup_monitor_pagetables): Use it.
	(qvm86_unmap_monitor_pagetable): New function.
	(qvm86_unmap_monitor_pagetables): Use it.
	(qvm86_exec): Unbreak profiling debug dumps.
	(qvm86_init_shadow_pgd): New function.
	(qvm86_init_monitor_env): Use it.  Handle PAE hosts. Disable monitor
	side pagefault support code.
	(qvm86_cleanup_device): Handle PAE structures.
	* qvm86-linux.c: Remove CONFIG_X86_PAE error.
	(host_phys_addr): Don't set refcount.
	* qvm86-linux.h: New file.
	* qvm86-win32.c (host_phys_addr): Don't set refcount.
	* qvm86-win32.h: Define qvm86_host_pae and host_physaddr_t.
	* qvm86.h: Include qvm86-linux.h.
	(struct qvm86_mapped_page): Use host_physaddr_t. Remove  refcount.
	(struct qvm86_shadow_pdmap_nopae, struct qvm86_shadow_pdmap_pae): New.
	(struct qvm86_shadow_pde): Remove.
	(struct qvm86_state): Adjust for PAE datastructures.
	(host_phys_addr): Update prototype.
	* switch.S: Disable monitor side fault handling.  Handle PAE pagetable
	entries.

2005-06-18  Paul Brook  <paul@codesourcery.com>

	* qvm86-host.c (rdtsc): Move inside #ifdef QVM86_PROFILE.
	(profile_timer): New function.
	(clear_monitor_gdt_entry): New function.
	(qvm86_clear_gdt_entries): New function.
	(qvm86_setup_monitor_idt): Return immediately if nothing to do.
	(qvm86_shadow_fault): Update comments.
	(qvm86_handle_exception): Remove debugging code.  Continue execution
	after a hardware interrupt when possible.  Use new gdt clearing code.
	* qvm86-linux.c (host_do_sched): New function.
	* qvm86-win32.c (host_do_sched): New function.
	* qvm86.h: Update comments.
	(struct qvm86_state): Add last_mon_cs.
	(host_do_sched): Add prototype.
	* switch.S: Fix do_pagefault code.

2005-06-18  Paul Brook  <paul@codesourcery.com>
	Jim C Brown <jma5@umu.edu>

	* qvm86-host.c (qvm86_shadow_fault): Update guest pagetable status
	bits.  Create RO PTE for read faults.
	(qvm86_flush_shadow): Remove.
	(qvm86_exec): Call qvm86_unmap_monitor_pagetables.
	* switch.S: Disable do_pagefault code.

2005-04-26  Andrew Beresford  <beezly@beezly.org.uk>

	* patch.qvm86: Update with changes to qemu cvs.

2005-04-19  Filip Navara  <navaraf@reactos.com>

	* patch.qvm86: Remove WinNT specific patches that were commited to
	QEMU CVS.
	* qvm86-win32.c (host_map_user): Return correct physical memory
	address.

2005-04-18  Paul Brook  <paul@codesourcery.com>

	* qvm86-linux.c (host_phys_addr): Disable debugging hack.

2005-04-11  Paul Brook  <paul@codesourcery.com>

	* patch.qvm86: Disable SEP (sysenter/sysexit).

2005-04-10  Filip Navara  <navaraf@reactos.com>

	* README: Fix typos.
	* patch.qvm86: Add patch to force page aligned allocations on WinNT
	hosts.
	* qvm86-win32.h: Ditto.
	* qvm86-win32.c (host_alloc_pages, host_free_pages): Allocate pages
	from non-cached memory instead of standard memory pool.
	(host_map_user): Guard for unaligned mappings, better error handling.
	(host_unmap_user): Fix a memory leak.

2005-04-09  Filip Navara  <navaraf@reactos.com>

	* Makefile.winnt: Windows NT host support.
	* qvm86-win32.c: Ditto.
	* qvm86-win32.h: Ditto.
	* kqemu.h (KQEMU_EXEC, KQEMU_INIT, KQEMU_GET_VERSION): Use Windows
	IOCTL format if building for Win32.
	* qvm86-host.c (qvm86_ioctl): Move the code from here...
	* qvm86-linux.c (qvm86_linux_ioctl): ... to here.
	* qvm86.h: Export qemu_init and qemu_exec instead of qemu_ioctl.
	Use correct headers when building for Win32.
	* switch.S: Add underscore to function names on Win32.
	* qvm86.reg: New file.
	* README: Mention windows hosts.

2005-04-08  Paul Brook  <paul@codesourcery.com>

	* patch.qvm86: Remove target-i386/helper.c patch (included in qemu
	cvs).

2005-04-05  Paul Brook  <paul@codesourcery.com>

	* switch.S: Disable INT n detection.

2005-04-03  Paul Brook  <paul@codesourcery.com>

	* qvm86-host.c (qvm86_handle_exception): Handle user interrupts.
	* switch.S: Identify GPFs caused by INT n instructions.

2005-04-03  Paul Brook  <paul@codesourcery.com>

	* qvm86-host.c (qvm86_create_monitor_gdt,
	qvm86_setup_monitor_pagetables, qvm86_flush_shadow,
	qvm86_create_monitor_tss): Make static.
	(qvm86_exec): Add comment.
	* .cvsignore: New file.

2005-04-03  Paul Brook  <paul@codesourcery.com>

	* qvm86-host.c (qvm86_clear_pagetables): Remove redundant page clear.

2005-04-03  Paul Brook  <paul@codesourcery.com>

	* qvm86-host.c (qvm86_find_selector): New function.
	(qvm86_verify_selector): New function.
	(enum shadow_fault_type): Add SHADOW_FAULT_SYSTEM.
	(qvm86_shadow_fault): Handle shadowing of supervisor pages.
	Don't set extra pagetable bits.
	(qvm86_clear_pagetables): Use clear_page.
	(qvm86_invalidate_pagetables): Zero pte unconditionally.
	(qvm86_flush_shadow): Only update present pages.  Remove old logic.
	(qvm86_flush_guest_state): Handle LDT and NULL selectors.
	(qvm86_exec): Shadow the gdt.
	* switch.S (do_pagefault): Fail if page is already mapped.

2005-04-03  Paul Brook  <paul@codesourcery.com>

	* qvm86-linux.c: Don't include linux/device.h.

2005-04-03  Paul Brook  <paul@codesourcery.com>

	* qvm86-host.c (qvm86_flush_guest_state): Correctly decode descriptor.

2005-04-03  Paul Brook  <paul@codesourcery.com>

	* qvm86-host.c (qvm86_invalidate_pagetables): Use qs->guest_pgd.
	(qvm86_flush_shadow): Ditto.
	(qvm86_setup_monitor_pagetables): Ditto.  Remove unused variable.
	Move guest cr3/pgd initialization...
	(qvm86_exec): ... to here.

2005-04-03  Jim C. Brown  <jma5@umd.edu>

	* Makefile: Add rule for qvm86.o when using 2.4 kbuild

2005-04-03  Paul Brook  <paul@codesourcery.com>

	* kqemu.h (KQEMU_MAJOR): Remove.

2005-04-03  bqf

	* README: Fix typos.

2005-04-03  Paul Brook  <paul@codesourcery.com>

	* qvm86-host.c (qvm86_ioctl): Remove debugging code.

2005-04-02  Paul Brook  <paul@coidesourcery.com>

	Initial commit.
