|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH 1/3] xenagent: use spec. compliant control/feature-XXX keys
control/feature-shutdown is not documented in Xen's xenstore-paths
documentation. The correct keys are feature-poweroff, feature-reboot,
feature-s3 and feature-s4. Also the values that the toolstack should
write control/shutdown are poweroff, reboot, s3 and s4 so the xenagent
should only respond to these values.
Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
Cc: Owen Smith <owen.smith@xxxxxxxxxx>
---
src/xenagent/messages.mc | 4 ++--
src/xenagent/service.cpp | 22 ++++++++++++++++------
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/src/xenagent/messages.mc b/src/xenagent/messages.mc
index 0289c44..6b60c8d 100644
--- a/src/xenagent/messages.mc
+++ b/src/xenagent/messages.mc
@@ -20,9 +20,9 @@ The tools requested that the local VM reboot.
MessageId=0x0003
Facility=XenUser
Severity=Informational
-SymbolicName=EVENT_XENUSER_HIBERNATE
+SymbolicName=EVENT_XENUSER_S4
Language=English
-The tools requested that the local VM hibernate itself.
+The tools requested that the local VM enter power state S4.
.
MessageId=0x0004
diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp
index 182752f..80aac11 100644
--- a/src/xenagent/service.cpp
+++ b/src/xenagent/service.cpp
@@ -220,7 +220,10 @@ CXenAgent::~CXenAgent()
// shutdown
m_device->StoreAddWatch("control/shutdown", m_evt_shutdown,
&m_ctxt_shutdown);
- m_device->StoreWrite("control/feature-shutdown", "1");
+ m_device->StoreWrite("control/feature-poweroff", "1");
+ m_device->StoreWrite("control/feature-reboot", "1");
+ m_device->StoreWrite("control/feature-s3", "1");
+ m_device->StoreWrite("control/feature-s4", "1");
// suspend
m_device->SuspendRegister(m_evt_suspend, &m_ctxt_suspend);
@@ -241,7 +244,10 @@ CXenAgent::~CXenAgent()
m_ctxt_suspend = NULL;
// shutdown
- m_device->StoreRemove("control/feature-shutdown");
+ m_device->StoreRemove("control/feature-poweroff");
+ m_device->StoreRemove("control/feature-reboot");
+ m_device->StoreRemove("control/feature-s3");
+ m_device->StoreRemove("control/feature-s4");
if (m_ctxt_shutdown)
m_device->StoreRemoveWatch(m_ctxt_shutdown);
m_ctxt_shutdown = NULL;
@@ -451,7 +457,7 @@ void CXenAgent::OnShutdown()
CXenAgent::Log("OnShutdown(%ws) = %s\n", m_device->Path(), type.c_str());
- if (type == "poweroff" || type == "halt") {
+ if (type == "poweroff") {
EventLog(EVENT_XENUSER_POWEROFF);
m_device->StoreWrite("control/shutdown", "");
@@ -473,8 +479,8 @@ void CXenAgent::OnShutdown()
SHTDN_REASON_FLAG_PLANNED)) {
CXenAgent::Log("InitiateSystemShutdownEx failed %08x\n",
GetLastError());
}
- } else if (type == "hibernate") {
- EventLog(EVENT_XENUSER_HIBERNATE);
+ } else if (type == "s4") {
+ EventLog(EVENT_XENUSER_S4);
m_device->StoreWrite("control/shutdown", "");
AcquireShutdownPrivilege();
@@ -507,7 +513,11 @@ void CXenAgent::OnSuspend()
m_ctxt_shutdown = NULL;
m_device->StoreAddWatch("control/shutdown", m_evt_shutdown,
&m_ctxt_shutdown);
- m_device->StoreWrite("control/feature-shutdown", "1");
+ m_device->StoreWrite("control/feature-poweroff", "1");
+ m_device->StoreWrite("control/feature-reboot", "1");
+ m_device->StoreWrite("control/feature-s3", "1");
+ m_device->StoreWrite("control/feature-s4", "1");
+
SetXenTime();
}
--
2.1.1
_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |