aboutsummaryrefslogtreecommitdiffstats
path: root/tools/memshr
diff options
context:
space:
mode:
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);