linux/drivers/xen/features.c
<<
>>
Prefs
   1/******************************************************************************
   2 * features.c
   3 *
   4 * Xen feature flags.
   5 *
   6 * Copyright (c) 2006, Ian Campbell, XenSource Inc.
   7 */
   8#include <linux/types.h>
   9#include <linux/cache.h>
  10#include <linux/module.h>
  11
  12#include <asm/xen/hypercall.h>
  13
  14#include <xen/interface/xen.h>
  15#include <xen/interface/version.h>
  16#include <xen/features.h>
  17
  18u8 xen_features[XENFEAT_NR_SUBMAPS * 32] __read_mostly;
  19EXPORT_SYMBOL_GPL(xen_features);
  20
  21void xen_setup_features(void)
  22{
  23        struct xen_feature_info fi;
  24        int i, j;
  25
  26        for (i = 0; i < XENFEAT_NR_SUBMAPS; i++) {
  27                fi.submap_idx = i;
  28                if (HYPERVISOR_xen_version(XENVER_get_features, &fi) < 0)
  29                        break;
  30                for (j = 0; j < 32; j++)
  31                        xen_features[i * 32 + j] = !!(fi.submap & 1<<j);
  32        }
  33}
  34