extern const VMStateInfo vmstate_info_qtailq;
extern const VMStateInfo vmstate_info_gtree;
extern const VMStateInfo vmstate_info_qlist;
+extern const VMStateInfo vmstate_info_g_byte_array;
#define type_check_2darray(t1,t2,n,m) ((t1(*)[n][m])0 - (t2*)0)
/*
.start = offsetof(_type, _next), \
}
+#define VMSTATE_GBYTEARRAY(_field, _state, _version) { \
+ .name = (stringify(_field)), \
+ .version_id = (_version), \
+ .size = sizeof(GByteArray), \
+ .info = &vmstate_info_g_byte_array, \
+ .flags = VMS_SINGLE, \
+ .offset = vmstate_offset_pointer(_state, _field, GByteArray), \
+}
+
/* _f : field name
_f_n : num of elements field_name
_n : num of elements
.load = load_qlist,
.save = save_qlist,
};
+
+static int get_g_byte_array(QEMUFile *f, void *pv, size_t size,
+ const VMStateField *field)
+{
+ GByteArray *byte_array = *(GByteArray **)pv;
+ uint32_t len = qemu_get_be32(f);
+
+ g_byte_array_set_size(byte_array, len);
+ qemu_get_buffer(f, byte_array->data, len);
+ return 0;
+}
+
+static int put_g_byte_array(QEMUFile *f, void *pv, size_t size,
+ const VMStateField *field, JSONWriter *vmdesc)
+{
+ GByteArray *byte_array = *(GByteArray **)pv;
+
+ qemu_put_be32(f, byte_array->len);
+ qemu_put_buffer(f, byte_array->data, byte_array->len);
+
+ return 0;
+}
+
+const VMStateInfo vmstate_info_g_byte_array = {
+ .name = "GByteArray",
+ .get = get_g_byte_array,
+ .put = put_g_byte_array,
+};