int qemu_savevm_state_complete(Monitor *mon, QEMUFile *f)
{
    SaveStateEntry *se;
    QTAILQ_FOREACH(se, &savevm_handlers, entry) {
        if (se->save_live_state == NULL)
            continue;
        /* Section type */
        qemu_put_byte(f, QEMU_VM_SECTION_END);
        qemu_put_be32(f, se->section_id);
        se->save_live_state(mon, f, QEMU_VM_SECTION_END, se->opaque);
    }
    QTAILQ_FOREACH(se, &savevm_handlers, entry) {
        int len;
	if (se->save_state == NULL && se->vmsd == NULL)
	    continue;
        /* Section type */
        qemu_put_byte(f, QEMU_VM_SECTION_FULL);
        qemu_put_be32(f, se->section_id);
        /* ID string */
        len = strlen(se->idstr);
        qemu_put_byte(f, len);
        qemu_put_buffer(f, (uint8_t *)se->idstr, len);
        qemu_put_be32(f, se->instance_id);
        qemu_put_be32(f, se->version_id);
        vmstate_save(f, se);
    }
    qemu_put_byte(f, QEMU_VM_EOF);
    if (qemu_file_has_error(f))
        return -EIO;
    return 0;
}
int qemu_savevm_state_complete(Monitor *mon, QEMUFile *f)
{
    SaveStateEntry *se;
    QTAILQ_FOREACH(se, &savevm_handlers, entry) {
        if (se->save_live_state == NULL)
            continue;
        
        qemu_put_byte(f, QEMU_VM_SECTION_END);
        qemu_put_be32(f, se->section_id);
        se->save_live_state(mon, f, QEMU_VM_SECTION_END, se->opaque);
    }
    QTAILQ_FOREACH(se, &savevm_handlers, entry) {
        int len;
	if (se->save_state == NULL && se->vmsd == NULL)
	    continue;
        
        qemu_put_byte(f, QEMU_VM_SECTION_FULL);
        qemu_put_be32(f, se->section_id);
        
        len = strlen(se->idstr);
        qemu_put_byte(f, len);
        qemu_put_buffer(f, (uint8_t *)se->idstr, len);
        qemu_put_be32(f, se->instance_id);
        qemu_put_be32(f, se->version_id);
        vmstate_save(f, se);
    }
    qemu_put_byte(f, QEMU_VM_EOF);
    if (qemu_file_has_error(f))
        return -EIO;
    return 0;
}
    return 0;     return 0;
int FUNC_0(Monitor *VAR_0, QEMUFile *VAR_1)
{
    SaveStateEntry *se;
    QTAILQ_FOREACH(se, &savevm_handlers, entry) {
        if (se->save_live_state == NULL)
            continue;
        
        qemu_put_byte(VAR_1, QEMU_VM_SECTION_END);
        qemu_put_be32(VAR_1, se->section_id);
        se->save_live_state(VAR_0, VAR_1, QEMU_VM_SECTION_END, se->opaque);
    }
    QTAILQ_FOREACH(se, &savevm_handlers, entry) {
        int len;
	if (se->save_state == NULL && se->vmsd == NULL)
	    continue;
        
        qemu_put_byte(VAR_1, QEMU_VM_SECTION_FULL);
        qemu_put_be32(VAR_1, se->section_id);
        
        len = strlen(se->idstr);
        qemu_put_byte(VAR_1, len);
        qemu_put_buffer(VAR_1, (uint8_t *)se->idstr, len);
        qemu_put_be32(VAR_1, se->instance_id);
        qemu_put_be32(VAR_1, se->version_id);
        vmstate_save(VAR_1, se);
    }
    qemu_put_byte(VAR_1, QEMU_VM_EOF);
    if (qemu_file_has_error(VAR_1))
        return -EIO;
    return 0;
}
int FUNC_0(Monitor *VAR_0, QEMUFile *VAR_1)
{ SaveStateEntry *se; QTAILQ_FOREACH(se, &savevm_handlers, entry) { if (se->save_live_state == NULL)
continue; qemu_put_byte(VAR_1, QEMU_VM_SECTION_END); qemu_put_be32(VAR_1, se->section_id); se->save_live_state(VAR_0, VAR_1, QEMU_VM_SECTION_END, se->opaque); } QTAILQ_FOREACH(se, &savevm_handlers, entry) { int len; if (se->save_state == NULL && se->vmsd == NULL)
continue; qemu_put_byte(VAR_1, QEMU_VM_SECTION_FULL); qemu_put_be32(VAR_1, se->section_id); len = strlen(se->idstr); qemu_put_byte(VAR_1, len); qemu_put_buffer(VAR_1, (uint8_t *)se->idstr, len); qemu_put_be32(VAR_1, se->instance_id); qemu_put_be32(VAR_1, se->version_id); vmstate_save(VAR_1, se); } qemu_put_byte(VAR_1, QEMU_VM_EOF); if (qemu_file_has_error(VAR_1))
return -EIO; return 0; }