This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-changelog] Unpack xen_features into an array of u8 'booleans'

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Unpack xen_features into an array of u8 'booleans'
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 02 Feb 2006 15:40:08 +0000
Delivery-date: Thu, 02 Feb 2006 15:51:00 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ian.Campbell@xxxxxxxxxxxxx
# Node ID 0e87a5bd6e8bbfe5e6921e32e0d6cc91d14bded8
# Parent  5a63f675107cd84970e299a291485420d97bc139
Unpack xen_features into an array of u8 'booleans'

This allows us to avoid including bitops.h all over the tree as well
as avoiding any potential endianness issues in the future.

Use __read_mostly on the xen_features array now that the tree is based
on a version of Linux which supports it.

Also export xen_features for use in modules.

Signed-off-by: Ian Campbell <Ian.Campbell@xxxxxxxxxxxxx>

diff -r 5a63f675107c -r 0e87a5bd6e8b 
--- a/linux-2.6-xen-sparse/drivers/xen/core/features.c  Wed Feb  1 18:00:19 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/core/features.c  Wed Feb  1 20:11:18 2006
@@ -7,22 +7,23 @@
 #include <linux/types.h>
 #include <linux/cache.h>
+#include <linux/module.h>
 #include <asm/hypervisor.h>
 #include <xen/features.h>
-/* When we rebase to a more recent Linux we can use __read_mostly here. */
-unsigned long xen_features[XENFEAT_NR_SUBMAPS] __cacheline_aligned;
+u8 xen_features[XENFEAT_NR_SUBMAPS * 32] __read_mostly;
 void setup_xen_features(void)
-       uint32_t *flags = (uint32_t *)&xen_features[0];
        xen_feature_info_t fi;
-       int i;
+       int i, j;
        for (i=0; i<XENFEAT_NR_SUBMAPS; i++) {
                fi.submap_idx = i;
                if (HYPERVISOR_xen_version(XENVER_get_features, &fi) < 0)
-               flags[i] = fi.submap;
+               for (j=0; j<32; j++)
+                       xen_features[i*32+j] = !!(fi.submap & 1<<j);
diff -r 5a63f675107c -r 0e87a5bd6e8b linux-2.6-xen-sparse/include/xen/features.h
--- a/linux-2.6-xen-sparse/include/xen/features.h       Wed Feb  1 18:00:19 2006
+++ b/linux-2.6-xen-sparse/include/xen/features.h       Wed Feb  1 20:11:18 2006
@@ -13,8 +13,8 @@
 extern void setup_xen_features(void);
-extern unsigned long xen_features[XENFEAT_NR_SUBMAPS];
+extern u8 xen_features[XENFEAT_NR_SUBMAPS * 32];
-#define xen_feature(flag)      (test_bit(flag, xen_features))
+#define xen_feature(flag)      (xen_features[flag])
 #endif /* __ASM_XEN_FEATURES_H__ */

Xen-changelog mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Unpack xen_features into an array of u8 'booleans', Xen patchbot -unstable <=