aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xenstore
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-03-18 11:49:26 +0000
committerKeir Fraser <keir.fraser@citrix.com>2009-03-18 11:49:26 +0000
commitcce99fb1320455ab2f67bee05b823f37b33c1afd (patch)
treedee0bcf566e0f40fb204d66e3d867590b7964a7d /tools/xenstore
parent760f973171ab21a4e6049e528e506568255b30bc (diff)
downloadxen-cce99fb1320455ab2f67bee05b823f37b33c1afd.tar.gz
xen-cce99fb1320455ab2f67bee05b823f37b33c1afd.tar.bz2
xen-cce99fb1320455ab2f67bee05b823f37b33c1afd.zip
Move the suspend event channel function to libxc, it will use the
/var/lib/xen/suspend_evtchn_lock.d to protect the access. Signed-off-by: Jiang Yunhong <yunhong.jiang@intel.com>
Diffstat (limited to 'tools/xenstore')
-rw-r--r--tools/xenstore/xs.c25
-rw-r--r--tools/xenstore/xs.h1
2 files changed, 26 insertions, 0 deletions
diff --git a/tools/xenstore/xs.c b/tools/xenstore/xs.c
index 7fef574fbd..9707d19ca2 100644
--- a/tools/xenstore/xs.c
+++ b/tools/xenstore/xs.c
@@ -802,6 +802,31 @@ bool xs_is_domain_introduced(struct xs_handle *h, unsigned int domid)
return rc;
}
+int xs_suspend_evtchn_port(int domid)
+{
+ char path[128];
+ char *portstr;
+ int port;
+ unsigned int plen;
+ struct xs_handle *xs;
+
+ xs = xs_daemon_open();
+ if (!xs)
+ return -1;
+
+ sprintf(path, "/local/domain/%d/device/suspend/event-channel", domid);
+ portstr = xs_read(xs, XBT_NULL, path, &plen);
+ xs_daemon_close(xs);
+
+ if (!portstr || !plen)
+ return -1;
+
+ port = atoi(portstr);
+ free(portstr);
+
+ return port;
+}
+
/* Only useful for DEBUG versions */
char *xs_debug_command(struct xs_handle *h, const char *cmd,
void *data, unsigned int len)
diff --git a/tools/xenstore/xs.h b/tools/xenstore/xs.h
index dd8cbf8c95..629395291a 100644
--- a/tools/xenstore/xs.h
+++ b/tools/xenstore/xs.h
@@ -163,6 +163,7 @@ bool xs_is_domain_introduced(struct xs_handle *h, unsigned int domid);
char *xs_debug_command(struct xs_handle *h, const char *cmd,
void *data, unsigned int len);
+int xs_suspend_evtchn_port(int domid);
#endif /* _XS_H */
/*