diff options
author | kmacy <kmacy@FreeBSD.org> | 2008-08-15 21:20:44 +0000 |
---|---|---|
committer | kmacy <kmacy@FreeBSD.org> | 2008-08-15 21:20:44 +0000 |
commit | 7f5780e2e4f44512c072ec6976aeb76fbc5c731b (patch) | |
tree | 0fc98cc7b0d554ecd3b3a2b97c91b306838987fc /sys/xen | |
parent | 925bfa43785b9b8c121202f20644087441ecc9b0 (diff) | |
download | FreeBSD-src-7f5780e2e4f44512c072ec6976aeb76fbc5c731b.zip FreeBSD-src-7f5780e2e4f44512c072ec6976aeb76fbc5c731b.tar.gz |
Import check for xen features.
MFC after: 1 month
Diffstat (limited to 'sys/xen')
-rw-r--r-- | sys/xen/features.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/sys/xen/features.c b/sys/xen/features.c new file mode 100644 index 0000000..51d6899 --- /dev/null +++ b/sys/xen/features.c @@ -0,0 +1,24 @@ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/types.h> +#include <machine/xen/xen-os.h> +#include <machine/xen/hypervisor.h> +#include <machine/xen/features.h> + +uint8_t xen_features[XENFEAT_NR_SUBMAPS * 32] /* __read_mostly */; + +void +setup_xen_features(void) +{ + xen_feature_info_t fi; + int i, j; + + for (i = 0; i < XENFEAT_NR_SUBMAPS; i++) { + fi.submap_idx = i; + if (HYPERVISOR_xen_version(XENVER_get_features, &fi) < 0) + break; + for (j = 0; j < 32; j++) + xen_features[i*32 + j] = !!(fi.submap & 1<<j); + } +} |