|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v9 12/13] test_x86_emulator.c: Add tests for #GP usage
>>> On 24.02.15 at 19:29, <dslutz@xxxxxxxxxxx> wrote:
> + /*
> + * Test out special #GP handling for the VMware port 0x5658.
> + * This is done in two "modes", j=0 and j=1. Testing 4
> + * instructions (all the basic PIO) in both modes.
> + *
> + * The port used is based on j.
> + *
> + * For IN, eax should change. For OUT eax should not change.
> + *
> + * All 4 PIO instructions are 1 byte long, so eip should only
> + * change by 1.
> + */
Thanks, this looks reasonable.
> + /*
> + * In j=0, there should not be an error returned.
> + * In j=1, there should be an error returned.
> + */
> + if ( rc != X86EMUL_OKAY )
> + {
> + if ( j == 0 )
> + goto fail;
> + }
> + else if ( j == 1 )
> + goto fail;
I'd appreciate if this could be expressed in a little fewer lines. I'm not
sure
if ( (rc == X86EMUL_OKAY) == j )
goto fail;
would be deemed readable, but surely
if ( rc == X86EMUL_OKAY ? j : !j )
goto fail;
would suffice.
> So I have checked and read, write_gp, cmpxchg_gp, read_segment,
> and inject_hw_exception are not needed. So that leaves:
>
> static struct x86_emulate_ops emulops_gp = {
> .insn_fetch = fetch,
> .read_io = read_io,
> .write_io = write_io,
> .vmport_check = vmport_check,
> };
Quite a bit better, thanks.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |