features.c (178c2c7969e33c2987813d113278beb33c48e6a3) features.c (3a6d1fcf9c8ed864c98e449a0b7696be6c838aea)
1#include <sys/cdefs.h>
2__FBSDID("$FreeBSD$");
3
4#include <sys/types.h>
5#include <machine/xen/xen-os.h>
1#include <sys/cdefs.h>
2__FBSDID("$FreeBSD$");
3
4#include <sys/types.h>
5#include <machine/xen/xen-os.h>
6#include <machine/xen/hypervisor.h>
6#include <xen/hypervisor.h>
7#include <machine/xen/features.h>
8
9uint8_t xen_features[XENFEAT_NR_SUBMAPS * 32] /* __read_mostly */;
10
11void
12setup_xen_features(void)
13{
14 xen_feature_info_t fi;
15 int i, j;
16
17 for (i = 0; i < XENFEAT_NR_SUBMAPS; i++) {
18 fi.submap_idx = i;
19 if (HYPERVISOR_xen_version(XENVER_get_features, &fi) < 0)
20 break;
21 for (j = 0; j < 32; j++)
22 xen_features[i*32 + j] = !!(fi.submap & 1<<j);
23 }
24}
7#include <machine/xen/features.h>
8
9uint8_t xen_features[XENFEAT_NR_SUBMAPS * 32] /* __read_mostly */;
10
11void
12setup_xen_features(void)
13{
14 xen_feature_info_t fi;
15 int i, j;
16
17 for (i = 0; i < XENFEAT_NR_SUBMAPS; i++) {
18 fi.submap_idx = i;
19 if (HYPERVISOR_xen_version(XENVER_get_features, &fi) < 0)
20 break;
21 for (j = 0; j < 32; j++)
22 xen_features[i*32 + j] = !!(fi.submap & 1<<j);
23 }
24}