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.


A bit of cleanup
[palacios.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 00edbc3..29926b0 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -1,14 +1,8 @@
 mainmenu "Palacios VMM Configuration"
 
-config x86_64
-       bool
-       default y
-       help
-         Support for the x86-64 architecture.
-
-
 menu "Target Configuration"
 
+
 config CRAY_XT
         bool "Red Storm (Cray XT3/XT4)"
         help
@@ -25,16 +19,321 @@ config VMX
        default y
        help 
          Compile with support for Intel VMX
-endmenu
 
 
-menu "Virtual Devices"
+config MULTITHREAD_OS
+       bool "Compile for a multi threaded OS"
+       default y
+       help 
+         This allows Palacios to use OS thread mechanisms
+
+
+config MAX_CPUS
+       int "Maximum number of cpus"
+       range 1 255
+       default "16"
+       help 
+         Specifies the maximum number of hardware cpus Palacios can support
+
+         For uniprocessor environments, set this to 1
+
+
+config SOCKET
+       bool "Include Network Socket Support"
+       default n
+       help 
+         Enable networking support in Palacios
+
+
+
+
+config TELEMETRY
+       bool "Enable VMM telemetry support"
+       default y
+       help 
+         Enable the telemetry framework in Palacios
+         -----
+         This is a framwork that allows components of palacios to record 
+         information that is periodically reported to the log output.
+         Telemetry is automatically collected for vmexits. Subsystem telemetry 
+         is configured separately
+
+
+config SHADOW_PAGING_TELEMETRY
+       bool "Enable Shadow Paging Telemetry"
+       default y
+       depends on TELEMETRY
+       help
+         Enable telemetry information for shadow paging 
+
+config SYMBIOTIC_SWAP_TELEMETRY
+       bool "Enable Symbiotic Swap Telemetry"
+       default n
+       depends on TELEMETRY && SYMBIOTIC_SWAP
+       help 
+         Enable the telemetry information for the symbiotic swap subsystem
+
+
+config PASSTHROUGH_VIDEO
+       bool "Enable Passthrough Video"
+       default n
+       help 
+         Configures Palacios to map a guest's framebuffer directly 
+         to the hardware framebuffer (no longer needed)
+
+config INSTRUMENT_VMM
+       bool "Enable VMM instrumentation"
+       default n
+       help 
+         Enable the instrumentation framework
+         --------
+         This is much heavier weight than profiling
+
+config EXPERIMENTAL
+       bool "Enable Experimental options"
+       default n
+       help 
+         This allows the selection of experimental features. This includes incomplete or unreviewed code. 
+         Only enable this feature if you are working on the features in question. 
+         IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features. 
+         Any code that violates this will be immediately deleted without warning. 
+         -- 
+         The purpose of this option is to allow features under development to be committed to the mainline
+         to more easily track changes and provide access to multiple developers
+
+config VNET
+        depends on EXPERIMENTAL
+        bool "Enable Vnet in Palacios"
+        default n
+        help
+          Enable the Vnet in Palacios
+
+config DEBUG_VNET
+        depends on VNET
+        bool "Enable Vnet Debug in Palacios"
+        default n
+        help
+          Enable the Vnet Debug in Palacios
+
+config BUILT_IN_STDLIB
+       bool "Enable Built in versions of stdlib functions"
+       default y
+       help 
+         Not all host OSes provide link targets for stdlib functions
+         Palacios provides internal implementations of these functions, that you can select from this list
+
+config BUILT_IN_MEMSET
+       bool "memset()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of memset
+
+
+config BUILT_IN_MEMCPY
+       bool "memcpy()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of memcpy
+
+config BUILT_IN_MEMMOVE
+       bool "memmove()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of memmove
+
+config BUILT_IN_MEMCMP
+       bool "memcmp()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of memcmp
+
+config BUILT_IN_STRLEN
+       bool "strlen()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of strlen
+
+config BUILT_IN_STRNLEN
+       bool "strnlen()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of strnlen
+
+
+config BUILT_IN_STRCMP
+       bool "strcmp()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of strcmp
+
+
+config BUILT_IN_STRCASECMP
+       bool "strcasecmp()"
+       default y
+       depends on BUILT_IN_STDLIB
+       help
+         This enables Palacios' internal implementation of strcasecmp
+
+config BUILT_IN_STRNCMP
+       bool "strncmp()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of strncmp
+
+config BUILT_IN_STRNCASECMP
+       bool "strncasecmp()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help
+         This enables Palacios' internal implementation of strncasecmp
+
+
+config BUILT_IN_STRCAT
+       bool "strcat()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of strcat
+
+config BUILT_IN_STRNCAT
+       bool "strncat()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of strncat
+
+config BUILT_IN_STRCPY
+       bool "strcpy()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of strcpy
+
+config BUILT_IN_STRNCPY
+       bool "strncpy()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of strncpy
+
+config BUILT_IN_STRDUP
+       bool "strdup()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of strdup
+
+config BUILT_IN_STRSTR
+       bool "strstr()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help
+         This enables Palacios internal implementation of strstr
+
 
-config APIC
-       bool "APIC"
+config BUILT_IN_ATOI
+       bool "atoi()"
        default y
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of atoi
+
+config BUILT_IN_STRCHR
+       bool "strchr()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of strchr
+
+config BUILT_IN_STRRCHR
+       bool "strrchr()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of strrchr
+
+config BUILT_IN_STRPBRK
+       bool "strpbrk()"
+       default n
+       depends on BUILT_IN_STDLIB
+       help 
+         This enables Palacios' internal implementation of strpbrk
+
+
+config BUILT_IN_STDIO
+       bool "Enable Built in versions of stdio functions"
+       default n
+       help 
+         Not all host OSes provide link targets for stdio functions
+         Palacios provides internal implementations of these functions, that you can select from this list
+
+
+
+config BUILT_IN_SPRINTF
+       bool "sprintf()"
+       default n
+       depends on BUILT_IN_STDIO
+       help 
+         This enables Palacios' internal implementation of sprintf
+
+
+config BUILT_IN_SNPRINTF
+       bool "snprintf()"
+       default n
+       depends on BUILT_IN_STDIO
        help 
-         "Includes the Virtual APIC device"
+         This enables Palacios' internal implementation of snprintf
+
+
+config BUILT_IN_VSPRINTF
+       bool "vsprintf()"
+       default n
+       depends on BUILT_IN_STDIO
+       help 
+         This enables Palacios' internal implementation of vsprintf
+
+config BUILT_IN_VSNPRINTF
+       bool "vsnprintf()"
+       default n
+       depends on BUILT_IN_STDIO
+       help 
+         This enables Palacios' internal implementation of vsnprintf
+
+config BUILT_IN_VSNRPRINTF
+       bool "vsnrprintf()"
+       default n
+       depends on BUILT_IN_STDIO
+       help 
+         This enables Palacios' internal implementation of vsnrprintf
+
+endmenu
+
+
+
+
+menu "Symbiotic Functions"
+
+config SYMBIOTIC
+       bool "Enable Symbiotic Functionality"
+       default n
+       help 
+         Enable Symbiotic components of the VMM
+
+
+config SYMBIOTIC_SWAP
+       bool "Symbiotic Swap"
+       default n
+       depends on SYMBIOTIC && EXPERIMENTAL
+       help 
+         This enables the symbiotic swap architecture
 
 endmenu
 
@@ -58,20 +357,75 @@ config DEBUG_ON
          This turns on debugging support
 
 
-       
+config DEBUG_SHADOW_PAGING
+       bool "Shadow paging"
+       default n
+       depends on DEBUG_ON
+       help 
+         This turns on debugging for the shadow paging system
 
 
-config DEBUG_PIC
-       bool "PIC"
+config DEBUG_NESTED_PAGING
+       bool "Nested paging"
+       default n
        depends on DEBUG_ON
        help 
-         Enable debugging for the PIC  
+         This turns on debugging for the nested paging system
+
 
-config DEBUG_APIC
-       bool "APIC"
-       depends on DEBUG_ON && APIC
+config DEBUG_CTRL_REGS
+       bool "Control registers"
+       default n
+       depends on DEBUG_ON
        help 
-         Enable debugging for the APIC
+         This turns on debugging for the control register handlers
+
+
+config DEBUG_INTERRUPTS
+       bool "Interrupts"
+       default n
+       depends on DEBUG_ON
+       help 
+         This turns on debugging for the interrupt system
+
+
+
+config DEBUG_IO
+       bool "IO"
+       default n
+       depends on DEBUG_ON
+       help 
+         This turns on debugging for the IO handlers
+
+
+config DEBUG_EMULATOR
+       bool "Instruction Emulator"
+       default n
+       depends on DEBUG_ON
+       help 
+         This turns on debugging for the Instruction Emulator
+
+
+config DEBUG_XED
+       bool "XED"
+       default n
+       depends on DEBUG_ON
+       help 
+         This turns on debugging for the Xed Decoder
+
+config DEBUG_HALT
+       bool "Halt"
+       default n
+       depends on DEBUG_ON
+       help 
+         This turns on debugging for the halt instruction handler
+
+config DEBUG_DEV_MGR
+       bool "Device Manager"
+       default n
+       depends on DEBUG_ON
+       help 
+         This turns on debugging for the device manager
 
 
 
@@ -93,7 +447,16 @@ config VGABIOS_PATH
        help
          This is the vgabios that will be used for the guests
 
+config VMXASSIST_PATH
+       string "Path to pre-built VMXASSIST binary"
+       depends on VMX
+       default "./bios/vmxassist/vmxassist.bin"
+       help
+         This is vmxassist image to boot real mode guests on 
+         Intel VMX Platforms
+
 endmenu
 
-#source "net/Kconfig"
+
+source "palacios/src/devices/Kconfig"