diff options
author | Kip Macy <kmacy@FreeBSD.org> | 2008-08-15 21:20:44 +0000 |
---|---|---|
committer | Kip Macy <kmacy@FreeBSD.org> | 2008-08-15 21:20:44 +0000 |
commit | 178c2c7969e33c2987813d113278beb33c48e6a3 (patch) | |
tree | 0fc98cc7b0d554ecd3b3a2b97c91b306838987fc /sys/xen | |
parent | 650fff26e1ac56ac8ca53fb1f2c368bdbb5fbdad (diff) | |
download | src-178c2c7969e33c2987813d113278beb33c48e6a3.tar.gz src-178c2c7969e33c2987813d113278beb33c48e6a3.zip |
Import check for xen features.
MFC after: 1 month
Notes
Notes:
svn path=/head/; revision=181779
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 000000000000..51d68990e98f --- /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); + } +} |