X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_decoder.c;fp=palacios%2Fsrc%2Fpalacios%2Fvmm_decoder.c;h=9b8d91e4a55a34d32cb95e2034945e2084f74a5d;hb=e6b4a2f11bae0faac9faedec12422385dcc39593;hp=0000000000000000000000000000000000000000;hpb=1c63b0651a5d039076d8027c7cd87960e4151408;p=palacios.git diff --git a/palacios/src/palacios/vmm_decoder.c b/palacios/src/palacios/vmm_decoder.c new file mode 100644 index 0000000..9b8d91e --- /dev/null +++ b/palacios/src/palacios/vmm_decoder.c @@ -0,0 +1,34 @@ +#include + + + +/* The full blown instruction parser... */ +int v3_parse_instr(struct guest_info * info, + char * instr_ptr, + uint_t * instr_length, + struct x86_operand * src_operand, + struct x86_operand * dst_operand, + struct x86_operand * extra_operand) { + + V3_Assert(src_operand != NULL); + V3_Assert(dst_operand != NULL); + V3_Assert(extra_operand != NULL); + V3_Assert(instr_length != NULL); + V3_Assert(info != NULL); + + + // Ignore prefixes for now + while (is_prefix_byte(*instr)) { + instr++; + *instr_length++; + } + + + // Opcode table lookup, see xen/kvm + + + + + + return 0; +}