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[];
+
+/*...