#ifndef __VMM_EXECVE_HOOK_H__
#define __VMM_EXECVE_HOOK_H__
+#ifdef __V3VEE__
+
struct v3_exec_hooks {
struct list_head hook_list;
#endif
+
+
+#endif
#ifndef __VMM_LINUX_SYSCALL_MAP_H__
#define __VMM_LINUX_SYSCALL_MAP_H__
+#ifdef __V3VEE__
+
#include <palacios/vmm_types.h>
-char * get_linux_syscall_name32(uint_t syscall_nr);
-char * get_linux_syscall_name64(uint_t syscall_nr);
+char * get_linux_syscall_name32 (uint_t syscall_nr);
+char * get_linux_syscall_name64 (uint_t syscall_nr);
+#endif
#endif
#ifndef __VMM_PROCESS_ENVIRONMENT_H__
#define __VMM_PROCESS_ENVIRONMENT_H__
+#ifdef __V3VEE__
+
#include <palacios/vmm.h>
#include <palacios/vmm_types.h>
addr_t v3_prepare_guest_stack (struct guest_info * core, uint_t bytes_needed);
+#endif
+
#endif
core);
#ifdef CONFIG_HIJACK_MSR
- /* KCH: for syscall hijacking */
+ /* KCH: for SYSCALL and SYSENTER interception */
v3_hook_msr(core->vm_info, STAR_MSR,
&v3_handle_star_read,
&v3_handle_star_write,
void * priv_data)
{
struct v3_syscall_hook * hook = (struct v3_syscall_hook *)V3_Malloc(sizeof(struct v3_syscall_hook));
+
+ // TODO: ensure that software interrupts & SYSENTER are hooked
if (hook == NULL) {
return -1;