search for: nativeeip

Displaying 6 results from an estimated 6 matches for "nativeeip".

2007 Apr 18
7
[RFC, PATCH 5/24] i386 Vmi code patching
...signed long call = a->vmi_call; + unsigned char *dest = (unsigned char *)(&((VROMCallTable *)vmi_rom)->vromCall[call]); + *(unsigned long *)(eip+1) = dest-eip-5; +} + +static void fixup_translation(struct vmi_annotation *a) +{ + unsigned char *c, *start, *end; + int left; + + memcpy(a->nativeEIP, a->translationEIP, a->translation_size); + start = a->nativeEIP; + end = a->nativeEIP + a->translation_size; + + for (c = start; c < end;) { + switch(*c) { + case MNEM_CALL_NEAR: + patch_call_site(a, c); + c+=5; + break; + + case MNEM_PUSH_I: + c+=5; + break;...
2007 Apr 18
7
[RFC, PATCH 5/24] i386 Vmi code patching
...signed long call = a->vmi_call; + unsigned char *dest = (unsigned char *)(&((VROMCallTable *)vmi_rom)->vromCall[call]); + *(unsigned long *)(eip+1) = dest-eip-5; +} + +static void fixup_translation(struct vmi_annotation *a) +{ + unsigned char *c, *start, *end; + int left; + + memcpy(a->nativeEIP, a->translationEIP, a->translation_size); + start = a->nativeEIP; + end = a->nativeEIP + a->translation_size; + + for (c = start; c < end;) { + switch(*c) { + case MNEM_CALL_NEAR: + patch_call_site(a, c); + c+=5; + break; + + case MNEM_PUSH_I: + c+=5; + break;...
2007 Apr 18
1
[RFC, PATCH 21/24] i386 Vmi proc node
....release = single_release, +}; + +#define VDEF(call) #call , +static char *vmi_call_name[] = { + VMI_CALLS +}; +#undef VDEF + +static void print_annotation(struct seq_file *m, struct vmi_annotation *a) +{ + seq_printf(m, "%s %p %d %p %d %d\n", + vmi_call_name[a->vmi_call], a->nativeEIP, a->native_size, + a->translationEIP, a->translation_size, a->nop_size); +} + +static int proc_vmi_annotations_show(struct seq_file *m, void *v) +{ + struct vmi_annotation *start = __vmi_annotation; + struct vmi_annotation *end = __vmi_annotation_end; + struct vmi_annotation *a; +...
2007 Apr 18
1
[RFC, PATCH 21/24] i386 Vmi proc node
....release = single_release, +}; + +#define VDEF(call) #call , +static char *vmi_call_name[] = { + VMI_CALLS +}; +#undef VDEF + +static void print_annotation(struct seq_file *m, struct vmi_annotation *a) +{ + seq_printf(m, "%s %p %d %p %d %d\n", + vmi_call_name[a->vmi_call], a->nativeEIP, a->native_size, + a->translationEIP, a->translation_size, a->nop_size); +} + +static int proc_vmi_annotations_show(struct seq_file *m, void *v) +{ + struct vmi_annotation *start = __vmi_annotation; + struct vmi_annotation *end = __vmi_annotation_end; + struct vmi_annotation *a; +...
2007 Apr 18
3
[RFC, PATCH 4/24] i386 Vmi inline implementation
...\ + XCSTR(vmi_annotate(VMI_CALL_##call)) "\n\t" \ + \ + :: input ); \ + asm volatile ( "" : output :: clobber ); \ +} while (0) + +#define VMI_NO_INPUT +#define VMI_NO_OUTPUT + +struct vmi_annotation { + unsigned long vmi_call; + unsigned char *nativeEIP; + unsigned char *translationEIP; + unsigned char native_size; + unsigned char translation_size; + char nop_size; + unsigned char pad; +}; + +extern VMI_UINT8 hypervisor_found; +extern VMI_UINT8 hypervisor_timer_found; +extern struct vmi_annotation __vmi_annotation[], __vmi_annotation_end[]; + +/*...
2007 Apr 18
3
[RFC, PATCH 4/24] i386 Vmi inline implementation
...\ + XCSTR(vmi_annotate(VMI_CALL_##call)) "\n\t" \ + \ + :: input ); \ + asm volatile ( "" : output :: clobber ); \ +} while (0) + +#define VMI_NO_INPUT +#define VMI_NO_OUTPUT + +struct vmi_annotation { + unsigned long vmi_call; + unsigned char *nativeEIP; + unsigned char *translationEIP; + unsigned char native_size; + unsigned char translation_size; + char nop_size; + unsigned char pad; +}; + +extern VMI_UINT8 hypervisor_found; +extern VMI_UINT8 hypervisor_timer_found; +extern struct vmi_annotation __vmi_annotation[], __vmi_annotation_end[]; + +/*...