Patch by Jan Klötzke:

* Improve vm86 mode tracing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25681 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2008-05-28 12:44:56 +00:00
parent 9f16184577
commit 3023ab11f7
1 changed files with 8 additions and 2 deletions

View File

@ -18,8 +18,8 @@
//#define TRACE_VM86 //#define TRACE_VM86
#ifdef TRACE_VM86 #ifdef TRACE_VM86
# define TRACE(x...) kprintf("[vm86] " x) # define TRACE(x...) dprintf("[vm86] " x)
# define TRACE_NP(x...) kprintf(x) # define TRACE_NP(x...) dprintf(x)
#else #else
# define TRACE(x...) # define TRACE(x...)
# define TRACE_NP(x...) # define TRACE_NP(x...)
@ -513,6 +513,9 @@ vm86_fault_callback(addr_t address, addr_t faultAddress, bool isWrite)
{ {
struct iframe *frame = i386_get_user_iframe(); struct iframe *frame = i386_get_user_iframe();
TRACE("Unhandled fault at 0x%08x touching 0x%08x while %s\n",
faultAddress, address, isWrite?"writing":"reading");
// we shouldn't have unhandled page faults in vm86 mode // we shouldn't have unhandled page faults in vm86 mode
x86_vm86_return((struct vm86_iframe *)frame, B_BAD_ADDRESS); x86_vm86_return((struct vm86_iframe *)frame, B_BAD_ADDRESS);
@ -548,6 +551,7 @@ vm86_prepare(struct vm86_state *state, unsigned int ramSize)
| B_READ_AREA | B_WRITE_AREA); | B_READ_AREA | B_WRITE_AREA);
if (state->ram_area < B_OK) { if (state->ram_area < B_OK) {
ret = state->ram_area; ret = state->ram_area;
TRACE("Could not create RAM area\n");
goto error; goto error;
} }
@ -557,6 +561,7 @@ vm86_prepare(struct vm86_state *state, unsigned int ramSize)
&address); &address);
if (vectors < B_OK) { if (vectors < B_OK) {
ret = vectors; ret = vectors;
TRACE("Could not copy vectors\n");
goto error; goto error;
} }
ret = user_memcpy((void *)0, address, 0x502); ret = user_memcpy((void *)0, address, 0x502);
@ -572,6 +577,7 @@ vm86_prepare(struct vm86_state *state, unsigned int ramSize)
| B_KERNEL_WRITE_AREA | B_READ_AREA | B_WRITE_AREA, (addr_t)0xa0000); | B_KERNEL_WRITE_AREA | B_READ_AREA | B_WRITE_AREA, (addr_t)0xa0000);
if (state->bios_area < B_OK) { if (state->bios_area < B_OK) {
ret = state->bios_area; ret = state->bios_area;
TRACE("Could not map VGA BIOS.\n");
goto error; goto error;
} }