libsel4vmm: cmake build definitions
diff --git a/CMakeLists.txt b/CMakeLists.txt index cd6f8b5..f00e268 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -25,3 +25,4 @@ add_subdirectory(libsel4sync) add_subdirectory(libsel4muslcsys) add_subdirectory(libsel4bench) +add_subdirectory(libsel4vmm)
diff --git a/libsel4vmm/CMakeLists.txt b/libsel4vmm/CMakeLists.txt new file mode 100644 index 0000000..700c39b --- /dev/null +++ b/libsel4vmm/CMakeLists.txt
@@ -0,0 +1,78 @@ +# +# Copyright 2018, Data61 +# Commonwealth Scientific and Industrial Research Organisation (CSIRO) +# ABN 41 687 119 230. +# +# This software may be distributed and modified according to the terms of +# the BSD 2-Clause license. Note that NO WARRANTY is provided. +# See "LICENSE_BSD2.txt" for details. +# +# @TAG(DATA61_BSD) +# + +cmake_minimum_required(VERSION 3.8.2) + +project(libsel4vmm C) + +set(configure_string "") + +config_option(LibSel4VMMVESAFrameBuffer VMM_VESA_FRAMEBUFFER + "Expose VESA Frame Buffer + Support for mapping the VESA frame buffer frames into the guest OS. + This option is useful for working around non-working video drivers otherwise, + due to missing features or such." + DEFAULT ON +) + +config_option(LibSel4VMMDebug LIB_VMM_DEBUG + "Enable VMM debug output" + DEFAULT ON +) + +config_string(LibSel4VMMDebugLevel LIB_VMM_DEBUG_LEVEL + "VMM Debug Output + Debug verbosity level. + 5 levels for debug messages: + 0: Always printout + 1: Main entry point in a module + 2: 2nd level entry point in a module + 3: Main entry point of a function + 4: Details inside a function" + DEFAULT 3 + UNQUOTE +) + +config_option(LibSel4VMMVMXTimerDebug LIB_VMM_VMX_TIMER_DEBUG + "Use VMX Pre-Emption timer for debugging + Will cause a regular vmexit to happen based on VMX pre-emption + timer. At each exit the guest state will be printed out. This + can be used to aid debugging when running a guest causes nothing + to appear to happen" + DEFAULT OFF +) + +config_string(LibSel4VMMVMXTimerTimeout LIB_VMM_VMX_TIMER_TIMEOUT + "Cycles between VMX timer pre-emptions + Cycles between timer exits. Time spent loading the VMCS context + count, so setting this too low may result in the guest making + no progress" + DEFAULT 4000 + DEPENDS "LibSel4VMMVMXTimerDebug" +) + +config_option(LibSel4VMMIgnoreEPTViolation VMM_IGNORE_EPT_VIOLATION + "Ignore EPT Violations + If set then EPT faults will be ignored and the guest will be resumed" + DEFAULT OFF +) + +add_config_library(sel4vmm "${configure_string}") + +add_compile_options(-std=gnu99) + +file(GLOB sources src/vmm/*.c src/platform/*.c src/driver/*.c src/manager/*.c src/processor/*.c) + +add_library(sel4vmm STATIC EXCLUDE_FROM_ALL ${sources}) + +target_include_directories(sel4vmm PUBLIC include) +target_link_libraries(sel4vmm Configuration muslc sel4 sel4utils pci sel4allocman ethdrivers platsupport)