1 #include <stdio.h> 2 #include <string.h> 3 #include <signal.h> 4 5 #include <kvm/util.h> 6 #include <kvm/kvm-cmd.h> 7 #include <kvm/kvm-balloon.h> 8 #include <kvm/kvm.h> 9 10 int kvm_cmd_balloon(int argc, const char **argv, const char *prefix) 11 { 12 int pid; 13 int amount, i; 14 int inflate = 0; 15 16 if (argc != 3) 17 die("Usage: kvm balloon [command] [instance name] [amount]\n"); 18 19 pid = kvm__get_pid_by_instance(argv[1]); 20 if (pid < 0) 21 die("Failed locating instance name"); 22 23 if (strcmp(argv[0], "inflate") == 0) 24 inflate = 1; 25 else if (strcmp(argv[0], "deflate")) 26 die("command can be either 'inflate' or 'deflate'"); 27 28 amount = atoi(argv[2]); 29 30 for (i = 0; i < amount; i++) 31 kill(pid, inflate ? SIGKVMADDMEM : SIGKVMDELMEM); 32 33 return 0; 34 } 35