Hi Dave, thank you for looking. > Can you give me an example of where you would use it?
We use it in our host memory sharing device. I used the existing macros for all fields I could, but unfortunately some state does not fit into them. We use this new macro to save/load memory allocators (for now we have malloc, but we are working on adding Vulkan calls). For now the state looks this way: class Allocator; unordered_map<int, Allocator *> state; class MallocAllocator: public Allocator { unordered_map<int, vector<char>> state; }; class VulkanAllocator: public Allocator { // TBD }; > I've been trying to get rid as many of the open-coded cases as possible I saw this in the migration document. I used VMSTATE_INT32, VMSTATE_STRUCT and VMSTATE_STRUCT_VARRAY_ALLOC where I could. > Having said that; would it be easier to pass the get/put functions > rather than the info ? Sure, function pointer will be even better, but since VMStateField takes "const VMStateInfo *", I added this way. Regards, Roman.