---
qga/guest-agent-commands.c | 25 ++++++++++++++++++++++++-
1 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/qga/guest-agent-commands.c b/qga/guest-agent-commands.c
index 8c0d67e..918aaa2 100644
--- a/qga/guest-agent-commands.c
+++ b/qga/guest-agent-commands.c
@@ -11,10 +11,12 @@
*/
#include<glib.h>
-#include<mntent.h>
#include<sys/types.h>
#include<sys/ioctl.h>
+#ifdef __linux__
+#include<mntent.h>
#include<linux/fs.h>
+#endif
#include "qga/guest-agent-core.h"
#include "qga-qmp-commands.h"
#include "qerror.h"
@@ -22,6 +24,7 @@
static GAState *ga_state;
+#ifdef __linux__
static void disable_logging(void)
{
ga_disable_logging(ga_state);
@@ -31,6 +34,7 @@ static void enable_logging(void)
{
ga_enable_logging(ga_state);
}
+#endif
/* Note: in some situations, like with the fsfreeze, logging may be
* temporarilly disabled. if it is necessary that a command be able
@@ -323,6 +327,7 @@ static void guest_file_init(void)
QTAILQ_INIT(&guest_file_state.filehandles);
}
+#ifdef __linux__
typedef struct GuestFsfreezeMount {
char *dirname;
char *devtype;
@@ -508,11 +513,29 @@ static void guest_fsfreeze_cleanup(void)
}
}
}
+#else
+GuestFsfreezeStatus qmp_guest_fsfreeze_status(Error **err)
+{
+ return GUEST_FSFREEZE_STATUS_ERROR;
+}
+
+int64_t qmp_guest_fsfreeze_freeze(Error **err)
+{
+ return -1;
+}
+
+int64_t qmp_guest_fsfreeze_thaw(Error **err)
+{
+ return 0;
+}
+#endif
/* register init/cleanup routines for stateful command groups */
void ga_command_state_init(GAState *s, GACommandState *cs)
{
ga_state = s;
+#ifdef __linux__
ga_command_state_add(cs, guest_fsfreeze_init, guest_fsfreeze_cleanup);
+#endif
ga_command_state_add(cs, guest_file_init, NULL);
}