mirror of https://gitee.com/openkylin/linux.git
KVM: x86 emulator: move linearize() downwards
So it can call emulate_gp() without forward declarations. Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
83b8795a29
commit
52fd8b445f
|
@ -489,21 +489,6 @@ static unsigned seg_override(struct x86_emulate_ctxt *ctxt,
|
|||
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,
|
||||
u32 error, bool valid)
|
||||
{
|
||||
|
@ -543,6 +528,21 @@ static int emulate_nm(struct x86_emulate_ctxt *ctxt)
|
|||
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,
|
||||
struct segmented_address addr,
|
||||
void *data,
|
||||
|
|
Loading…
Reference in New Issue