Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Add guarded module infrastructure
[palacios.git] / palacios / src / gears / Kconfig
1 menu GEARS
2
3 config GEARS
4     bool "Enable GEARS in Palacios"
5     default n
6     help
7       This is the Guest Examination and Revision Services, an extension used
8       to modify guest code and implement guest-context VMM services in Palacios
9
10
11 config EXT_SW_INTERRUPTS
12     bool "Enable interception and hooking of software interrupts"
13     depends on GEARS
14     default n
15     help
16       This feature will cause the VMM to intercept the execution
17       of software interrupts (i.e. the INTn instruction) and enable
18       any INT vector to be hooked. Extension name is "swintr_intercept"
19
20 config DEBUG_EXT_SW_INTERRUPTS
21     bool "Enable debugging of software interrupt interception code"
22     depends on GEARS
23     depends on EXT_SW_INTERRUPTS
24     default n
25     help
26       This will enable useful debugging printouts for software
27       intercept code
28
29 config EXT_SWINTR_PASSTHROUGH
30     bool "Hook all unhandled sofware interrupts for passthrough"
31     depends on GEARS
32     depends on EXT_SW_INTERRUPTS
33     default n
34     help
35       If enabled, this will cause all software interrupts 
36       (INT instruction vectors) to be hooked for passthrough.
37       May reduce performance but useful for debugging.
38
39 config EXT_SYSCALL_HIJACK
40     bool "Enable System Call Hijacking"
41     default n
42     depends on GEARS
43     depends on EXT_SW_INTERRUPTS
44     help
45       Enable the VMM to hijack system calls executed by the guest.
46       If enabled, the VMM will hook execution of INT 80
47
48
49 config EXT_SELECTIVE_SYSCALL_EXIT
50     bool "Enable dynamic selective exiting of system calls"
51     default n
52     depends on GEARS
53     depends on EXT_SYSCALL_HIJACK
54     help
55       If enabled, this option will allow the VMM to selectively
56       enable and disable exiting on specific system calls.
57
58 config DEBUG_EXT_SYSCALL_HIJACK
59     bool "Enable Syscall Hijack Debug in Palacios"
60     depends on GEARS
61     depends on EXT_SYSCALL_HIJACK
62     default n
63     help 
64       Enable Debugging printouts for syscall hijacking code
65       in Palacios
66
67
68 config EXT_SYSCALL_PASSTHROUGH
69     bool "Hook all unhandled system calls for passthrough"
70     depends on GEARS
71     depends on EXT_SYSCALL_HIJACK
72     default n
73     help
74       If enabled, this option will cause all system calls
75       that are not explicitly hooked to be hooked for 
76       passthrough. This is useful for debugging.
77
78 config EXT_EXECVE_HOOK
79     bool "Hook calls to execve"
80     depends on GEARS
81     depends on EXT_SYSCALL_HIJACK
82     default n
83     help
84       This option will cause the interception of all calls
85       to the execve system call
86
87 config EXT_ENV_INJECT
88         bool "Enable environment variable injection"
89     depends on GEARS
90         depends on EXT_EXECVE_HOOK
91         default n
92         help
93           Enables development extension for overriding env vars 
94           for certain executables
95
96 config EXT_CODE_INJECT
97         bool "Allow code injection"
98     depends on GEARS
99         depends on EXT_SYSCALL_HIJACK
100         default n
101         help
102           This option will allow code to be injected and run in the
103           guest context
104
105 config EXT_PRIV
106     bool "Allow privileges to be given to code modules"
107     depends on GEARS
108     default n
109     help
110       This option allows different code modules in the guest to be
111       given privileges such as uninhibited access to devices etc.
112
113 config DEBUG_EXT_PRIV
114     bool "Allow privileged module debugging"
115     depends on EXT_PRIV
116     default n
117     help
118       Turns on debugging output for privilege extension
119
120 config EXT_GUARD_MODULES
121     bool "Allow guarded execution of guest modules"
122     depends on GEARS
123     depends on EXT_PRIV
124     default n
125     help
126       This option allows priveledge hardware access to kernel drivers/modules
127       in the guest. Requires instrumentation of guest driver/module.
128
129 config DEBUG_EXT_GUARD_MODS
130     bool "Allow guarded module debugging"
131     depends on EXT_GUARD_MODULES
132     default n
133     help
134       Turns on debugging output for guarded modules extension
135
136 endmenu