]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: Add 'kvm list' command
authorSasha Levin <levinsasha928@gmail.com>
Sun, 3 Jul 2011 15:38:09 +0000 (18:38 +0300)
committerPekka Enberg <penberg@kernel.org>
Sun, 3 Jul 2011 18:07:46 +0000 (21:07 +0300)
Use 'kvm list' to list running virtual guest.

Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/Makefile
tools/kvm/include/kvm/kvm-list.h [new file with mode: 0644]
tools/kvm/include/kvm/kvm.h
tools/kvm/kvm-cmd.c
tools/kvm/kvm-list.c [new file with mode: 0644]

index 90ad708bf3959195fff6e9f7524e7e372c3327d1..51a3d1abe489a158c5b03c2fe6a5c475e0dc187a 100644 (file)
@@ -57,8 +57,9 @@ OBJS  += uip/csum.o
 OBJS   += kvm-cmd.o
 OBJS   += kvm-debug.o
 OBJS   += kvm-help.o
-OBJS    += kvm-pause.o
-OBJS    += kvm-balloon.o
+OBJS   += kvm-pause.o
+OBJS   += kvm-balloon.o
+OBJS   += kvm-list.o
 OBJS   += kvm-run.o
 OBJS   += mptable.o
 OBJS   += rbtree.o
diff --git a/tools/kvm/include/kvm/kvm-list.h b/tools/kvm/include/kvm/kvm-list.h
new file mode 100644 (file)
index 0000000..eba9cfd
--- /dev/null
@@ -0,0 +1,6 @@
+#ifndef KVM__LIST_H
+#define KVM__LIST_H
+
+int kvm_cmd_list(int argc, const char **argv, const char *prefix);
+
+#endif
index 1fdfcf7ccc81683092b1d594b015ff2c1cc44ff7..da9e12c3faa4e71c4f779aff3ded442f47902f2c 100644 (file)
@@ -67,6 +67,7 @@ void kvm__pause(void);
 void kvm__continue(void);
 void kvm__notify_paused(void);
 int kvm__get_pid_by_instance(const char *name);
+int kvm__enumerate_instances(void (*callback)(const char *name, int pid));
 
 /*
  * Debugging
index 1598781f843d333e164bd7426cedd4a940948130..cecf0d051d4cd81ea9f61961cc0ddf6b0cde5775 100644 (file)
@@ -8,6 +8,7 @@
 #include "kvm/kvm-debug.h"
 #include "kvm/kvm-pause.h"
 #include "kvm/kvm-balloon.h"
+#include "kvm/kvm-list.h"
 #include "kvm/kvm-help.h"
 #include "kvm/kvm-cmd.h"
 #include "kvm/kvm-run.h"
@@ -16,6 +17,7 @@ struct cmd_struct kvm_commands[] = {
        { "pause",      kvm_cmd_pause,          NULL,         0 },
        { "debug",      kvm_cmd_debug,          NULL,         0 },
        { "balloon",    kvm_cmd_balloon,        NULL,         0 },
+       { "list",       kvm_cmd_list,           NULL,         0 },
        { "help",       kvm_cmd_help,           NULL,         0 },
        { "run",        kvm_cmd_run,            kvm_run_help, 0 },
        { NULL,         NULL,                   NULL,         0 },
diff --git a/tools/kvm/kvm-list.c b/tools/kvm/kvm-list.c
new file mode 100644 (file)
index 0000000..696c355
--- /dev/null
@@ -0,0 +1,20 @@
+#include <kvm/util.h>
+#include <kvm/kvm-cmd.h>
+#include <kvm/kvm-list.h>
+#include <kvm/kvm.h>
+
+#include <stdio.h>
+#include <string.h>
+#include <signal.h>
+
+static void print_guest(const char *name, int pid)
+{
+       printf("%s (PID: %d)\n", name, pid);
+}
+
+int kvm_cmd_list(int argc, const char **argv, const char *prefix)
+{
+       kvm__enumerate_instances(print_guest);
+
+       return 0;
+}