diff options
author | Olaf Hering <olaf@aepfle.de> | 2011-06-10 10:47:03 +0200 |
---|---|---|
committer | Olaf Hering <olaf@aepfle.de> | 2011-06-10 10:47:03 +0200 |
commit | aa1355f971287932e2ba09dfb04a6122ecc3951f (patch) | |
tree | b84ec9861d1b3409fed90ebaa7e6b8d857af4a3b /tools/xenpaging/xenpaging.h | |
parent | 9c1ebbba309d04e15c8bc768843127c2c8b84c5f (diff) | |
download | xen-aa1355f971287932e2ba09dfb04a6122ecc3951f.tar.gz xen-aa1355f971287932e2ba09dfb04a6122ecc3951f.tar.bz2 xen-aa1355f971287932e2ba09dfb04a6122ecc3951f.zip |
tools: merge several bitop functions into xc_bitops.h
Bitmaps are used in save/restore, xenpaging and blktap2. Merge the code into a
private xc_bitops.h file. All users are single threaded, so locking is not an
issue. The array of bits is handled as volatile because the x86 save/restore
code passes the bitmap to the hypervisor which in turn modifies the bitmap.
blktap2 uses a private bitmap. There was a possible overflow in the
bitmap_size() function, the remainder was not considered.
ia64 save/restore uses a bitmap to send the number of vcpus to the host.
x86 save/restore uses a bitmap to track dirty pages. This bitmap is shared with
the hypervisor. An unused function count_bits() was removed and a new
bitmap_size() function is now used.
xenpaging uses 3 private bitmaps to track the gfns which are in paged-out
state. It had a copy of some Linux bitops.h, which is now obsolete. Also the
BITS_PER_LONG macro was hardcoded to 64 which made it impossible to run 32bit
tools on a 64bit host. Wether this works at all has to be tested, yet.
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
Diffstat (limited to 'tools/xenpaging/xenpaging.h')
-rw-r--r-- | tools/xenpaging/xenpaging.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/tools/xenpaging/xenpaging.h b/tools/xenpaging/xenpaging.h index d521b9ece1..855966772a 100644 --- a/tools/xenpaging/xenpaging.h +++ b/tools/xenpaging/xenpaging.h @@ -40,7 +40,6 @@ typedef struct xenpaging { xc_platform_info_t *platform_info; xc_domaininfo_t *domain_info; - unsigned long bitmap_size; unsigned long *bitmap; mem_event_t mem_event; |