• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <unistd.h>
2 #include <string.h>
3 #include <sys/utsname.h>
4 #include "android/utils/debug.h"
5 
6 #define D(...) VERBOSE_PRINT(init,__VA_ARGS__)
7 
8 /* A simple routine used to check that we can run the program under KVM.
9  * We simply want to ensure that the kvm driver is loaded and that the
10  * corresponding device file is accessible by the user.
11  */
12 
13 #ifndef __linux__
14 #error "This file should only be compiled under linux"
15 #endif
16 
17 int
kvm_check_allowed(void)18 kvm_check_allowed(void)
19 {
20     /* Is there a /dev/kvm device file here? */
21     if (access("/dev/kvm",F_OK)) {
22         /* no need to print a warning here */
23         D("No kvm device file detected");
24         return 0;
25     }
26 
27     /* Can we access it? */
28     if (access("/dev/kvm",R_OK)) {
29         D("KVM device file is not readable for this user.");
30         return 0;
31     }
32 
33     D("KVM mode auto-enabled!");
34     return 1;
35 }
36 
37