TRACEME() helper for oprofile
[akaros.git] / kern / include / smp.h
index 250cdd9..4b17ba1 100644 (file)
@@ -18,6 +18,9 @@
 #include <syscall.h>
 #include <alarm.h>
 #include <trace.h>
+#ifdef CONFIG_X86_64
+#include <arch/vm.h>
+#endif
 
 #ifdef __SHARC__
 typedef sharC_env_t;
@@ -26,6 +29,15 @@ typedef sharC_env_t;
 struct per_cpu_info {
 #ifdef CONFIG_X86_64
        uintptr_t stacktop;
+       /* virtual machines */
+       /* this is all kind of gross, but so it goes. Kmalloc
+        * the vmxarea. It varies in size depending on the architecture.
+        */
+       struct vmcs *vmxarea;
+       struct vmcs *vmcs;
+       pseudodesc_t host_gdt;
+       int vmx_enabled;
+       void *local_vcpu;
 #endif
        spinlock_t lock;
        /* Process management */
@@ -59,6 +71,8 @@ struct per_cpu_info {
        struct kernel_msg_list NTPTV(a0t) NTPTV(a1t) NTPTV(a2t) immed_amsgs;
        spinlock_t routine_amsg_lock;
        struct kernel_msg_list NTPTV(a0t) NTPTV(a1t) NTPTV(a2t) routine_amsgs;
+       /* profiling -- opaque to all but the profiling code. */
+       void *profiling;
 }__attribute__((aligned(ARCH_CL_SIZE)));
 
 /* Allows the kernel to figure out what process is running on this core.  Can be