# Enable XSM security module (by default, Flask).
XSM_ENABLE ?= n
-FLASK_ENABLE ?= $(XSM_ENABLE)
XEN_EXTFILES_URL ?= http://xenbits.xen.org/xen-extfiles
# All the files at that location were downloaded from elsewhere on
The hypervisor may be build with XSM support, which can be changed with
the following variables.
XSM_ENABLE=y
-FLASK_ENABLE=y
+
+The hypervisor may be build with Flask support, which can be changed
+by running:
+make -C xen menuconfig
+and enabling Flask in the 'Common Features' menu.
Do a build for coverage.
coverage=y
----------------
Xen must be compiled with XSM and FLASK enabled; by default, the security
-framework is disabled. Edit Config.mk or the .config file to set XSM_ENABLE and
-FLASK_ENABLE to "y"; this change requires a make clean and rebuild.
+framework is disabled. Edit Config.mk or the .config file to set XSM_ENABLE to
+"y" and running 'make -C xen menuconfig' and enabling FLASK inside 'Common
+Features'; this change requires a make clean and rebuild.
FLASK uses only one domain configuration parameter (seclabel) defining the
full security label of the newly created domain. If using the example policy,
CFLAGS += '-D__OBJECT_FILE__="$@"'
CFLAGS-$(XSM_ENABLE) += -DXSM_ENABLE
-CFLAGS-$(FLASK_ENABLE) += -DFLASK_ENABLE
CFLAGS-$(verbose) += -DVERBOSE
CFLAGS-$(crash_debug) += -DCRASH_DEBUG
CFLAGS-$(perfc) += -DPERF_COUNTERS
HVM and PV guests. HVMLoader makes 32-bit hypercalls irrespective
of the destination runmode of the guest.
+config FLASK
+ bool "FLux Advanced Security Kernel support"
+ default n
+ ---help---
+ Enables the FLASK (FLux Advanced Security Kernel) support which
+ provides a mandatory access control framework by which security
+ enforcement, isolation, and auditing can be achieved with fine
+ granular control via a security policy.
+
+ If unsure, say N.
+
# Select HAS_DEVICE_TREE if device tree is supported
config HAS_DEVICE_TREE
bool
headers-$(CONFIG_X86) += compat/arch-x86/xen-$(compat-arch-y).h
headers-$(CONFIG_X86) += compat/hvm/hvm_vcpu.h
headers-y += compat/arch-$(compat-arch-y).h compat/pmu.h compat/xlat.h
-headers-$(FLASK_ENABLE) += compat/xsm/flask_op.h
+headers-$(CONFIG_FLASK) += compat/xsm/flask_op.h
cppflags-y := -include public/xen-compat.h
cppflags-$(CONFIG_X86) += -m32
#define mk_unsigned_long(x) x
#endif /* !__ASSEMBLY__ */
-#ifdef FLASK_ENABLE
+#ifdef CONFIG_FLASK
#define XSM_MAGIC 0xf97cff8c
/* Maintain statistics on the access vector cache */
#define FLASK_AVC_STATS 1
*/
void *generic;
#endif
-#ifdef FLASK_ENABLE
+#ifdef CONFIG_FLASK
/*
* Inlining the contents of the structure for FLASK avoids unneeded
* allocations, and on 64-bit platforms with only FLASK enabled,
obj-y += dummy.o
endif
-subdir-$(FLASK_ENABLE) += flask
+subdir-$(CONFIG_FLASK) += flask