Commit 52fd8b44 authored by Avi Kivity's avatar Avi Kivity

KVM: x86 emulator: move linearize() downwards

So it can call emulate_gp() without forward declarations.
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 83b8795a
...@@ -489,21 +489,6 @@ static unsigned seg_override(struct x86_emulate_ctxt *ctxt, ...@@ -489,21 +489,6 @@ static unsigned seg_override(struct x86_emulate_ctxt *ctxt,
return c->seg_override; return c->seg_override;
} }
static int linearize(struct x86_emulate_ctxt *ctxt,
struct segmented_address addr,
unsigned size, bool write,
ulong *linear)
{
struct decode_cache *c = &ctxt->decode;
ulong la;
la = seg_base(ctxt, ctxt->ops, addr.seg) + addr.ea;
if (c->ad_bytes != 8)
la &= (u32)-1;
*linear = la;
return X86EMUL_CONTINUE;
}
static int emulate_exception(struct x86_emulate_ctxt *ctxt, int vec, static int emulate_exception(struct x86_emulate_ctxt *ctxt, int vec,
u32 error, bool valid) u32 error, bool valid)
{ {
...@@ -543,6 +528,21 @@ static int emulate_nm(struct x86_emulate_ctxt *ctxt) ...@@ -543,6 +528,21 @@ static int emulate_nm(struct x86_emulate_ctxt *ctxt)
return emulate_exception(ctxt, NM_VECTOR, 0, false); return emulate_exception(ctxt, NM_VECTOR, 0, false);
} }
static int linearize(struct x86_emulate_ctxt *ctxt,
struct segmented_address addr,
unsigned size, bool write,
ulong *linear)
{
struct decode_cache *c = &ctxt->decode;
ulong la;
la = seg_base(ctxt, ctxt->ops, addr.seg) + addr.ea;
if (c->ad_bytes != 8)
la &= (u32)-1;
*linear = la;
return X86EMUL_CONTINUE;
}
static int segmented_read_std(struct x86_emulate_ctxt *ctxt, static int segmented_read_std(struct x86_emulate_ctxt *ctxt,
struct segmented_address addr, struct segmented_address addr,
void *data, void *data,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment