Lines Matching refs:x86_emulate_ctxt
18 struct x86_emulate_ctxt;
99 void (*vm_bugged)(struct x86_emulate_ctxt *ctxt);
105 ulong (*read_gpr)(struct x86_emulate_ctxt *ctxt, unsigned reg);
112 void (*write_gpr)(struct x86_emulate_ctxt *ctxt, unsigned reg, ulong val);
121 int (*read_std)(struct x86_emulate_ctxt *ctxt,
134 int (*write_std)(struct x86_emulate_ctxt *ctxt,
144 int (*fetch)(struct x86_emulate_ctxt *ctxt,
154 int (*read_emulated)(struct x86_emulate_ctxt *ctxt,
165 int (*write_emulated)(struct x86_emulate_ctxt *ctxt,
178 int (*cmpxchg_emulated)(struct x86_emulate_ctxt *ctxt,
184 void (*invlpg)(struct x86_emulate_ctxt *ctxt, ulong addr);
186 int (*pio_in_emulated)(struct x86_emulate_ctxt *ctxt,
190 int (*pio_out_emulated)(struct x86_emulate_ctxt *ctxt,
194 bool (*get_segment)(struct x86_emulate_ctxt *ctxt, u16 *selector,
196 void (*set_segment)(struct x86_emulate_ctxt *ctxt, u16 selector,
198 unsigned long (*get_cached_segment_base)(struct x86_emulate_ctxt *ctxt,
200 void (*get_gdt)(struct x86_emulate_ctxt *ctxt, struct desc_ptr *dt);
201 void (*get_idt)(struct x86_emulate_ctxt *ctxt, struct desc_ptr *dt);
202 void (*set_gdt)(struct x86_emulate_ctxt *ctxt, struct desc_ptr *dt);
203 void (*set_idt)(struct x86_emulate_ctxt *ctxt, struct desc_ptr *dt);
204 ulong (*get_cr)(struct x86_emulate_ctxt *ctxt, int cr);
205 int (*set_cr)(struct x86_emulate_ctxt *ctxt, int cr, ulong val);
206 int (*cpl)(struct x86_emulate_ctxt *ctxt);
207 ulong (*get_dr)(struct x86_emulate_ctxt *ctxt, int dr);
208 int (*set_dr)(struct x86_emulate_ctxt *ctxt, int dr, ulong value);
209 int (*set_msr_with_filter)(struct x86_emulate_ctxt *ctxt, u32 msr_index, u64 data);
210 int (*get_msr_with_filter)(struct x86_emulate_ctxt *ctxt, u32 msr_index, u64 *pdata);
211 int (*get_msr)(struct x86_emulate_ctxt *ctxt, u32 msr_index, u64 *pdata);
212 int (*check_rdpmc_early)(struct x86_emulate_ctxt *ctxt, u32 pmc);
213 int (*read_pmc)(struct x86_emulate_ctxt *ctxt, u32 pmc, u64 *pdata);
214 void (*halt)(struct x86_emulate_ctxt *ctxt);
215 void (*wbinvd)(struct x86_emulate_ctxt *ctxt);
216 int (*fix_hypercall)(struct x86_emulate_ctxt *ctxt);
217 int (*intercept)(struct x86_emulate_ctxt *ctxt,
221 bool (*get_cpuid)(struct x86_emulate_ctxt *ctxt, u32 *eax, u32 *ebx,
223 bool (*guest_has_movbe)(struct x86_emulate_ctxt *ctxt);
224 bool (*guest_has_fxsr)(struct x86_emulate_ctxt *ctxt);
225 bool (*guest_has_rdpid)(struct x86_emulate_ctxt *ctxt);
226 bool (*guest_cpuid_is_intel_compatible)(struct x86_emulate_ctxt *ctxt);
228 void (*set_nmi_mask)(struct x86_emulate_ctxt *ctxt, bool masked);
230 bool (*is_smm)(struct x86_emulate_ctxt *ctxt);
231 bool (*is_guest_mode)(struct x86_emulate_ctxt *ctxt);
232 int (*leave_smm)(struct x86_emulate_ctxt *ctxt);
233 void (*triple_fault)(struct x86_emulate_ctxt *ctxt);
234 int (*set_xcr)(struct x86_emulate_ctxt *ctxt, u32 index, u64 xcr);
236 gva_t (*get_untagged_addr)(struct x86_emulate_ctxt *ctxt, gva_t addr,
309 struct x86_emulate_ctxt { struct
343 int (*execute)(struct x86_emulate_ctxt *ctxt); argument
346 int (*check_perm)(struct x86_emulate_ctxt *ctxt); argument
505 int x86_decode_insn(struct x86_emulate_ctxt *ctxt, void *insn, int insn_len, int emulation_type);
506 bool x86_page_table_writing_insn(struct x86_emulate_ctxt *ctxt);
511 void init_decode_cache(struct x86_emulate_ctxt *ctxt);
512 int x86_emulate_insn(struct x86_emulate_ctxt *ctxt);
513 int emulator_task_switch(struct x86_emulate_ctxt *ctxt,
516 int emulate_int_real(struct x86_emulate_ctxt *ctxt, int irq);
517 void emulator_invalidate_register_cache(struct x86_emulate_ctxt *ctxt);
518 void emulator_writeback_register_cache(struct x86_emulate_ctxt *ctxt);
519 bool emulator_can_use_gpa(struct x86_emulate_ctxt *ctxt);
521 static inline ulong reg_read(struct x86_emulate_ctxt *ctxt, unsigned nr) in reg_read()
533 static inline ulong *reg_write(struct x86_emulate_ctxt *ctxt, unsigned nr) in reg_write()
546 static inline ulong *reg_rmw(struct x86_emulate_ctxt *ctxt, unsigned nr) in reg_rmw()