I was going to just re-send the previous versions of these, but after looking I realized it would have the same misuse of vmstate_register(), and I didn't have a way to work around it. I had already done the VMSTATE_VSTRUCT work earlier, so I merged that in.
Changes from v2: * Added VMSTATE_VSTRUCT types of vmstate macros that allow the specific structure version used to be specified. * Reworked the KCS vmstate code to use the new VMSTATE_VSTRUCT macros. Changes from v1: * Validate the data values in pre_load functions. * For KCS, instead of an old function, create a separate vmstate structure for the new version. The name on the old vmstate structure wasn't specific enough, so a new name was needed, The old structure is set up to never be sent, but it can be received.