palacios-dev.o \
palacios-vm.o \
palacios-mm.o \
- palacios-queue.o
+ palacios-queue.o \
+ palacios-hashtable.o
ifdef V3_CONFIG_CONSOLE
v3vee-objs += palacios-console.o
endif
ifdef V3_CONFIG_VNET
- v3vee-objs += palacios-vnet.o
+ v3vee-objs += palacios-vnet.o palacios-vnet-bridge.o
endif
ifdef V3_CONFIG_PACKET
v3vee-objs += palacios-socket.o
endif
+ ifdef V3_CONFIG_KEYED_STREAMS
+ v3vee-objs += palacios-keyed-stream.o
+ endif
+
+ ifdef V3_CONFIG_HOST_DEVICE
+ v3vee-objs += palacios-host-dev.o
+ endif
+
+ ifdef V3_CONFIG_GRAPHICS_CONSOLE
+ v3vee-objs += palacios-graphics-console.o
+ endif
+
+
+
v3vee-objs += ../libv3vee.a
#include <palacios/vmx.h>
#endif
-#ifdef V3_CONFIG_VNET
-#include <vnet/vnet.h>
-#endif
-
v3_cpu_arch_t v3_cpu_types[V3_CONFIG_MAX_CPUS];
struct v3_os_hooks * os_hooks = NULL;
#endif
-#ifdef V3_CONFIG_VNET
- v3_init_vnet();
-#endif
-
#ifdef V3_CONFIG_MULTITHREAD_OS
if ((hooks) && (hooks->call_on_cpu)) {
#endif
-#ifdef V3_CONFIG_VNET
- v3_deinit_vnet();
-#endif
-
#ifdef V3_CONFIG_MULTITHREAD_OS
if ((os_hooks) && (os_hooks->call_on_cpu)) {
for (i = 0; i < V3_CONFIG_MAX_CPUS; i++) {
struct guest_info * core = (struct guest_info *)p;
- PrintDebug("virtual core %u: in start_core (RIP=%p)\n",
- core->cpu_id, (void *)(addr_t)core->rip);
+ PrintDebug("virtual core %u (on logical core %u): in start_core (RIP=%p)\n",
+ core->vcpu_id, core->pcpu_id, (void *)(addr_t)core->rip);
switch (v3_cpu_types[0]) {
#ifdef V3_CONFIG_SVM
i--; // We reset the logical core idx. Not strictly necessary I guess...
} else {
- /* This assumes that the core 0 thread has been mapped to physical core 0 */
if (i == V3_Get_CPU()) {
// We skip the local CPU because it is reserved for vcore 0
continue;
core_idx, start_core, core, core->exec_name);
// TODO: actually manage these threads instead of just launching them
+ core->pcpu_id = core_idx;
core_thread = V3_CREATE_THREAD_ON_CPU(core_idx, start_core, core, core->exec_name);
if (core_thread == NULL) {
sprintf(vm->cores[0].exec_name, "%s", vm->name);
+ vm->cores[0].pcpu_id = V3_Get_CPU();
+
if (start_core(&(vm->cores[0])) != 0) {
PrintError("Error starting VM core 0\n");
v3_stop_vm(vm);