# HG changeset patch
# User Jerone Young <[EMAIL PROTECTED]>
# Date 1193849565 18000
# Node ID 610dda45359f71e5d047867b33f5b8912aa30884
# Parent  30414641dae8853149da869e7ddb86964c788118
Move kvm_show_code to kvmctl-x86.c

Signed-off-by: Jerone Young <[EMAIL PROTECTED]>

diff --git a/libkvm/libkvm-x86.c b/libkvm/libkvm-x86.c
--- a/libkvm/libkvm-x86.c
+++ b/libkvm/libkvm-x86.c
@@ -756,3 +756,42 @@ int kvm_setup_cpuid(kvm_context_t kvm, i
        return r;
 }
 
+void kvm_show_code(kvm_context_t kvm, int vcpu)
+{
+#define CR0_PE_MASK    (1ULL<<0)
+       int fd = kvm->vcpu_fd[vcpu];
+       struct kvm_regs regs;
+       struct kvm_sregs sregs;
+       int r;
+       unsigned char code[50];
+       int back_offset;
+       char code_str[sizeof(code) * 3 + 1];
+       unsigned long rip;
+
+       r = ioctl(fd, KVM_GET_SREGS, &sregs);
+       if (r == -1) {
+               perror("KVM_GET_SREGS");
+               return;
+       }
+       if (sregs.cr0 & CR0_PE_MASK)
+               return;
+
+       r = ioctl(fd, KVM_GET_REGS, &regs);
+       if (r == -1) {
+               perror("KVM_GET_REGS");
+               return;
+       }
+       rip = sregs.cs.base + regs.rip;
+       back_offset = regs.rip;
+       if (back_offset > 20)
+           back_offset = 20;
+       memcpy(code, kvm->physical_memory + rip - back_offset, sizeof code);
+       *code_str = 0;
+       for (r = 0; r < sizeof code; ++r) {
+               if (r == back_offset)
+                       strcat(code_str, " -->");
+               sprintf(code_str + strlen(code_str), " %02x", code[r]);
+       }
+       fprintf(stderr, "code:%s\n", code_str);
+}
+
diff --git a/libkvm/libkvm-x86.h b/libkvm/libkvm-x86.h
--- a/libkvm/libkvm-x86.h
+++ b/libkvm/libkvm-x86.h
@@ -124,5 +124,6 @@ int kvm_setup_cpuid(kvm_context_t kvm, i
 int kvm_setup_cpuid(kvm_context_t kvm, int vcpu, int nent,
                    struct kvm_cpuid_entry *entries);
 
+void kvm_show_code(kvm_context_t kvm, int vcpu);
 
 #endif
diff --git a/libkvm/libkvm.c b/libkvm/libkvm.c
--- a/libkvm/libkvm.c
+++ b/libkvm/libkvm.c
@@ -628,45 +628,6 @@ int kvm_set_sregs(kvm_context_t kvm, int
     return ioctl(kvm->vcpu_fd[vcpu], KVM_SET_SREGS, sregs);
 }
 
-static void kvm_show_code(kvm_context_t kvm, int vcpu)
-{
-#define CR0_PE_MASK    (1ULL<<0)
-       int fd = kvm->vcpu_fd[vcpu];
-       struct kvm_regs regs;
-       struct kvm_sregs sregs;
-       int r;
-       unsigned char code[50];
-       int back_offset;
-       char code_str[sizeof(code) * 3 + 1];
-       unsigned long rip;
-
-       r = ioctl(fd, KVM_GET_SREGS, &sregs);
-       if (r == -1) {
-               perror("KVM_GET_SREGS");
-               return;
-       }
-       if (sregs.cr0 & CR0_PE_MASK)
-               return;
-
-       r = ioctl(fd, KVM_GET_REGS, &regs);
-       if (r == -1) {
-               perror("KVM_GET_REGS");
-               return;
-       }
-       rip = sregs.cs.base + regs.rip;
-       back_offset = regs.rip;
-       if (back_offset > 20)
-           back_offset = 20;
-       memcpy(code, kvm->physical_memory + rip - back_offset, sizeof code);
-       *code_str = 0;
-       for (r = 0; r < sizeof code; ++r) {
-               if (r == back_offset)
-                       strcat(code_str, " -->");
-               sprintf(code_str + strlen(code_str), " %02x", code[r]);
-       }
-       fprintf(stderr, "code:%s\n", code_str);
-}
-
 static int handle_mmio(kvm_context_t kvm, struct kvm_run *kvm_run)
 {
        unsigned long addr = kvm_run->mmio.phys_addr;

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to