diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-03-18 11:49:26 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-03-18 11:49:26 +0000 |
commit | cce99fb1320455ab2f67bee05b823f37b33c1afd (patch) | |
tree | dee0bcf566e0f40fb204d66e3d867590b7964a7d /tools/xenstore | |
parent | 760f973171ab21a4e6049e528e506568255b30bc (diff) | |
download | xen-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.c | 25 | ||||
-rw-r--r-- | tools/xenstore/xs.h | 1 |
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 */ /* |