diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2022-06-22 16:02:39 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2022-06-22 16:02:39 +0000 |
commit | 7132fef2a6b08d270b412d37a4c38b34728993ea (patch) | |
tree | eb37fd68b1514d0517b2de5363f6766bc0a4fc3e | |
parent | cc20d9ac578aec5502dcb26557765d3e9433cb26 (diff) | |
parent | 60967ef1ac6254e710cc913fb8430c86a696dd02 (diff) | |
download | slirp-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.c | 15 | ||||
-rw-r--r-- | src/vmstate.c | 17 |
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 */ |