]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: Use kvm__get_dir() helper function
authorPekka Enberg <penberg@kernel.org>
Sun, 16 Oct 2011 18:22:49 +0000 (21:22 +0300)
committerPekka Enberg <penberg@kernel.org>
Sun, 16 Oct 2011 18:22:49 +0000 (21:22 +0300)
This patch adds a kvm__get_dir() helper function that replaces open-coded uses
of HOME_DIR and KVM_PID_FILE_PATH.

Cc: Asias He <asias.hejun@gmail.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/builtin-list.c
tools/kvm/builtin-run.c
tools/kvm/builtin-setup.c
tools/kvm/include/kvm/kvm.h
tools/kvm/kvm.c
tools/kvm/main.c

index 3e116d66491650adbf1b5fdd4711d292dfbc5aca..d80b3fb3f330db65a1e53bb28b4bed0913960f19 100644 (file)
@@ -78,7 +78,7 @@ static int kvm_list_rootfs(void)
        DIR *dir;
        struct dirent *dirent;
 
-       snprintf(name, PATH_MAX, "%s%s", HOME_DIR, KVM_PID_FILE_PATH);
+       snprintf(name, PATH_MAX, "%s", kvm__get_dir());
        dir = opendir(name);
        if (dir == NULL)
                return -1;
index a88503fab964dfb4d04765cb29cec1c3be619a1d..cb5733a6320ffcbc29bc17ee9d54c64a48b3365d 100644 (file)
@@ -121,7 +121,7 @@ static int img_name_parser(const struct option *opt, const char *arg, int unset)
                return 0;
        }
 
-       snprintf(path, PATH_MAX, "%s%s%s", HOME_DIR, KVM_PID_FILE_PATH, arg);
+       snprintf(path, PATH_MAX, "%s%s", kvm__get_dir(), arg);
 
        if (stat(path, &st) == 0 &&
            S_ISDIR(st.st_mode)) {
@@ -842,7 +842,7 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix)
                kvm_setup_create_new("default");
                kvm_setup_resolv("default");
 
-               snprintf(tmp, PATH_MAX, "%s%s%s", HOME_DIR, KVM_PID_FILE_PATH, "default");
+               snprintf(tmp, PATH_MAX, "%s%s", kvm__get_dir(), "default");
                if (virtio_9p__register(kvm, tmp, "/dev/root") < 0)
                        die("Unable to initialize virtio 9p");
                if (virtio_9p__register(kvm, "/", "hostfs") < 0)
index 71a58fb38cc916290f2299204a0c0522ac776140..dce1748f2ef4169025237b1f879e4613817c332a 100644 (file)
@@ -125,7 +125,7 @@ static int copy_init(const char *guestfs_name)
 {
        char path[PATH_MAX];
 
-       snprintf(path, PATH_MAX, "%s%s%s/virt/init", HOME_DIR, KVM_PID_FILE_PATH, guestfs_name);
+       snprintf(path, PATH_MAX, "%s%s/virt/init", kvm__get_dir(), guestfs_name);
 
        return copy_file("guest/init", path);
 }
@@ -135,7 +135,7 @@ static int make_guestfs_symlink(const char *guestfs_name, const char *path)
        char target[PATH_MAX];
        char name[PATH_MAX];
 
-       snprintf(name, PATH_MAX, "%s%s%s%s", HOME_DIR, KVM_PID_FILE_PATH, guestfs_name, path);
+       snprintf(name, PATH_MAX, "%s%s%s", kvm__get_dir(), guestfs_name, path);
 
        snprintf(target, PATH_MAX, "/host%s", path);
 
@@ -146,7 +146,7 @@ static void make_root_dir(void)
 {
        char name[PATH_MAX];
 
-       snprintf(name, PATH_MAX, "%s%s", HOME_DIR, KVM_PID_FILE_PATH);
+       snprintf(name, PATH_MAX, "%s", kvm__get_dir());
 
        mkdir(name, 0777);
 }
@@ -155,7 +155,7 @@ static int make_dir(const char *dir)
 {
        char name[PATH_MAX];
 
-       snprintf(name, PATH_MAX, "%s%s%s", HOME_DIR, KVM_PID_FILE_PATH, dir);
+       snprintf(name, PATH_MAX, "%s%s", kvm__get_dir(), dir);
 
        return mkdir(name, 0777);
 }
@@ -173,7 +173,7 @@ void kvm_setup_resolv(const char *guestfs_name)
 {
        char path[PATH_MAX];
 
-       snprintf(path, PATH_MAX, "%s%s%s/etc/resolv.conf", HOME_DIR, KVM_PID_FILE_PATH, guestfs_name);
+       snprintf(path, PATH_MAX, "%s%s/etc/resolv.conf", kvm__get_dir(), guestfs_name);
 
        copy_file("/etc/resolv.conf", path);
 }
index 79fa97d00111dfca90aa5c6a6efb5943570bad0e..eee99591e2968cd586b702c110a4a72277eb995a 100644 (file)
@@ -57,6 +57,9 @@ struct kvm {
        const char              *name;
 };
 
+void kvm__set_dir(const char *fmt, ...);
+const char *kvm__get_dir(void);
+
 struct kvm *kvm__init(const char *kvm_dev, u64 ram_size, const char *name);
 int kvm__recommended_cpus(struct kvm *kvm);
 int kvm__max_cpus(struct kvm *kvm);
index 199c9b9ba41fb98d2dcb931ac5c421f106e080d1..65feeb7327b298ad1a1c31c7e46e1378e6c2dfd8 100644 (file)
@@ -78,6 +78,27 @@ extern struct kvm_cpu *kvm_cpus[KVM_NR_CPUS];
 static int pause_event;
 static DEFINE_MUTEX(pause_lock);
 
+static char kvm_dir[PATH_MAX];
+
+static void set_dir(const char *fmt, va_list args)
+{
+       vsnprintf(kvm_dir, sizeof(kvm_dir), fmt, args);
+}
+
+void kvm__set_dir(const char *fmt, ...)
+{
+       va_list args;
+
+       va_start(args, fmt);
+       set_dir(fmt, args);
+       va_end(args);
+}
+
+const char *kvm__get_dir(void)
+{
+       return kvm_dir;
+}
+
 static bool kvm__supports_extension(struct kvm *kvm, unsigned int extension)
 {
        int ret;
@@ -122,9 +143,9 @@ static void kvm__create_pidfile(struct kvm *kvm)
        if (!kvm->name)
                return;
 
-       sprintf(full_name, "%s/%s", HOME_DIR, KVM_PID_FILE_PATH);
+       sprintf(full_name, "%s", kvm__get_dir());
        mkdir(full_name, 0777);
-       sprintf(full_name, "%s/%s/%s.pid", HOME_DIR, KVM_PID_FILE_PATH, kvm->name);
+       sprintf(full_name, "%s/%s.pid", kvm__get_dir(), kvm->name);
        fd = open(full_name, O_CREAT | O_WRONLY, 0666);
        sprintf(pid, "%u\n", getpid());
        if (write(fd, pid, strlen(pid)) <= 0)
@@ -136,7 +157,7 @@ void kvm__remove_pidfile(const char *name)
 {
        char full_name[PATH_MAX];
 
-       sprintf(full_name, "%s/%s/%s.pid", HOME_DIR, KVM_PID_FILE_PATH, name);
+       sprintf(full_name, "%s/%s.pid", kvm__get_dir(), name);
        unlink(full_name);
 }
 
@@ -146,7 +167,7 @@ pid_t kvm__get_pid_by_instance(const char *name)
        pid_t pid;
        char pid_str[10], pid_file[PATH_MAX];
 
-       sprintf(pid_file, "%s/%s/%s.pid", HOME_DIR, KVM_PID_FILE_PATH, name);
+       sprintf(pid_file, "%s/%s.pid", kvm__get_dir(), name);
        fd = open(pid_file, O_RDONLY);
        if (fd < 0)
                return -1;
@@ -171,7 +192,7 @@ int kvm__enumerate_instances(int (*callback)(const char *name, int pid))
        struct dirent entry, *result;
        int ret = 0;
 
-       sprintf(full_name, "%s/%s", HOME_DIR, KVM_PID_FILE_PATH);
+       sprintf(full_name, "%s", kvm__get_dir());
        dir = opendir(full_name);
 
        while (dir != NULL) {
index 2138e7b990bb9e355999af777d5a92ae8a36f2a2..05bc82c8c6fa5b05064a8c28e5126f369a02b8b8 100644 (file)
@@ -1,3 +1,6 @@
+#include "kvm/kvm.h"
+
+#include <stdlib.h>
 #include <stdio.h>
 
 /* user defined header files */
@@ -10,5 +13,7 @@ static int handle_kvm_command(int argc, char **argv)
 
 int main(int argc, char *argv[])
 {
+       kvm__set_dir("%s/%s", HOME_DIR, KVM_PID_FILE_PATH);
+
        return handle_kvm_command(argc - 1, &argv[1]);
 }