aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2022-06-22 16:02:39 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2022-06-22 16:02:39 +0000
commit7132fef2a6b08d270b412d37a4c38b34728993ea (patch)
treeeb37fd68b1514d0517b2de5363f6766bc0a4fc3e
parentcc20d9ac578aec5502dcb26557765d3e9433cb26 (diff)
parent60967ef1ac6254e710cc913fb8430c86a696dd02 (diff)
downloadslirp-7132fef2a6b08d270b412d37a4c38b34728993ea.zip
slirp-7132fef2a6b08d270b412d37a4c38b34728993ea.tar.gz
slirp-7132fef2a6b08d270b412d37a4c38b34728993ea.tar.bz2
Merge branch 'vmstate' into 'master'
Fix vmstate regression See merge request slirp/libslirp!127
-rw-r--r--src/state.c15
-rw-r--r--src/vmstate.c17
2 files changed, 7 insertions, 25 deletions
diff --git a/src/state.c b/src/state.c
index d5689ba..f10edf0 100644
--- a/src/state.c
+++ b/src/state.c
@@ -26,8 +26,6 @@
#include "vmstate.h"
#include "stream.h"
-#ifdef HAVE_VMSTATE
-
static int slirp_tcp_post_load(void *opaque, int version)
{
tcp_template((struct tcpcb *)opaque);
@@ -377,19 +375,6 @@ int slirp_state_load(Slirp *slirp, int version_id, SlirpReadCb read_cb,
return slirp_vmstate_load_state(&f, &vmstate_slirp, slirp, version_id);
}
-#else /* HAVE_VMSTATE */
-int slirp_state_save(Slirp *slirp, SlirpWriteCb write_cb, void *opaque)
-{
- return -ENOSYS;
-}
-
-int slirp_state_load(Slirp *slirp, int version_id, SlirpReadCb read_cb,
- void *opaque)
-{
- return -ENOSYS;
-}
-#endif /* HAVE_VMSTATE */
-
int slirp_state_version(void)
{
return 4;
diff --git a/src/vmstate.c b/src/vmstate.c
index c7fc5a3..2c3a727 100644
--- a/src/vmstate.c
+++ b/src/vmstate.c
@@ -45,8 +45,6 @@
#include "stream.h"
#include "vmstate.h"
-#ifdef HAVE_VMSTATE
-
static int get_nullptr(SlirpIStream *f, void *pv, size_t size,
const VMStateField *field)
{
@@ -259,7 +257,7 @@ const VMStateInfo slirp_vmstate_info_buffer = {
.put = put_buffer,
};
-static int vmstate_n_elems(void *opaque, const VMStateField *field)
+static int vmstate_n_elems(char *opaque, const VMStateField *field)
{
int n_elems = 1;
@@ -282,7 +280,7 @@ static int vmstate_n_elems(void *opaque, const VMStateField *field)
return n_elems;
}
-static int vmstate_size(void *opaque, const VMStateField *field)
+static int vmstate_size(char *opaque, const VMStateField *field)
{
int size = field->size;
@@ -297,7 +295,7 @@ static int vmstate_size(void *opaque, const VMStateField *field)
}
static int vmstate_save_state_v(SlirpOStream *f, const VMStateDescription *vmsd,
- void *opaque, int version_id)
+ char *opaque, int version_id)
{
int ret = 0;
const VMStateField *field = vmsd->fields;
@@ -313,7 +311,7 @@ static int vmstate_save_state_v(SlirpOStream *f, const VMStateDescription *vmsd,
while (field->name) {
if ((field->field_exists && field->field_exists(opaque, version_id)) ||
(!field->field_exists && field->version_id <= version_id)) {
- void *first_elem = opaque + field->offset;
+ char *first_elem = opaque + field->offset;
int i, n_elems = vmstate_n_elems(opaque, field);
int size = vmstate_size(opaque, field);
@@ -378,10 +376,11 @@ static void vmstate_handle_alloc(void *ptr, VMStateField *field, void *opaque)
}
int slirp_vmstate_load_state(SlirpIStream *f, const VMStateDescription *vmsd,
- void *opaque, int version_id)
+ void *opaque_, int version_id)
{
VMStateField *field = vmsd->fields;
int ret = 0;
+ char *opaque = opaque_;
if (version_id > vmsd->version_id) {
g_warning("%s: incoming version_id %d is too new "
@@ -398,7 +397,7 @@ int slirp_vmstate_load_state(SlirpIStream *f, const VMStateDescription *vmsd,
while (field->name) {
if ((field->field_exists && field->field_exists(opaque, version_id)) ||
(!field->field_exists && field->version_id <= version_id)) {
- void *first_elem = opaque + field->offset;
+ char *first_elem = opaque + field->offset;
int i, n_elems = vmstate_n_elems(opaque, field);
int size = vmstate_size(opaque, field);
@@ -444,5 +443,3 @@ int slirp_vmstate_load_state(SlirpIStream *f, const VMStateDescription *vmsd,
}
return ret;
}
-
-#endif /* HAVE_VMSTATE */