mirror of
https://github.com/clearlinux/kvmtool.git
synced 2026-04-28 10:53:40 +00:00
kvm tools: Use kvm__get_dir() helper function
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>
This commit is contained in:
committed by
Will Deacon
parent
127b84f7ed
commit
9667701c38
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
31
kvm.c
31
kvm.c
@@ -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) {
|
||||
|
||||
5
main.c
5
main.c
@@ -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]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user