aboutsummaryrefslogtreecommitdiffstats
path: root/tools/memshr
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-12-17 06:27:57 +0000
committerKeir Fraser <keir.fraser@citrix.com>2009-12-17 06:27:57 +0000
commit57ea955dd313ed5a93c5092dc4a9b22dfcb01949 (patch)
tree047423c7b15849caea6aa3035e780f151527bda1 /tools/memshr
parentab562bd46c7041d82523322dde38d42494fb37ca (diff)
downloadxen-57ea955dd313ed5a93c5092dc4a9b22dfcb01949.tar.gz
xen-57ea955dd313ed5a93c5092dc4a9b22dfcb01949.tar.bz2
xen-57ea955dd313ed5a93c5092dc4a9b22dfcb01949.zip
Adds 'memory_sharing' option to domain config scripts. It passes domain id to
the tapdisk2 process if sharing is enabled (tapdisk2 is not normally aware what domain it is working for). Signed-off-by: Grzegorz Milos <Grzegorz.Milos@citrix.com>
Diffstat (limited to 'tools/memshr')
-rw-r--r--tools/memshr/interface.c16
-rw-r--r--tools/memshr/memshr.h1
2 files changed, 17 insertions, 0 deletions
diff --git a/tools/memshr/interface.c b/tools/memshr/interface.c
index 9ab20c213c..2c2f45423b 100644
--- a/tools/memshr/interface.c
+++ b/tools/memshr/interface.c
@@ -21,6 +21,12 @@
#include "memshr-priv.h"
#include "shm.h"
+typedef struct {
+ int enabled;
+ domid_t domid;
+} memshr_vbd_info_t;
+
+memshr_vbd_info_t vbd_info = {0, DOMID_INVALID};
typedef struct {
struct shared_memshr_info *shared_info;
@@ -32,6 +38,11 @@ private_memshr_info_t memshr;
#define SHARED_INFO (memshr.shared_info)
+void memshr_set_domid(int domid)
+{
+ vbd_info.domid = domid;
+}
+
void memshr_daemon_initialize(void)
{
void *shm_base_addr;
@@ -88,5 +99,10 @@ void memshr_vbd_initialize(void)
DPRINTF("Failed to open blockshr_hash.\n");
return;
}
+
+ if(vbd_info.domid == DOMID_INVALID)
+ return;
+
+ vbd_info.enabled = 1;
}
diff --git a/tools/memshr/memshr.h b/tools/memshr/memshr.h
index 412ddb1a42..351323715c 100644
--- a/tools/memshr/memshr.h
+++ b/tools/memshr/memshr.h
@@ -23,6 +23,7 @@
typedef uint64_t xen_mfn_t;
+extern void memshr_set_domid(int domid);
extern void memshr_daemon_initialize(void);
extern void memshr_vbd_initialize(void);