int qemu_savevm_state_begin(Monitor *mon, QEMUFile *f, int blk_enable,

                            int shared)

{

    SaveStateEntry *se;

    int ret;



    QTAILQ_FOREACH(se, &savevm_handlers, entry) {

        if(se->set_params == NULL) {

            continue;

	}

	se->set_params(blk_enable, shared, se->opaque);

    }

    

    qemu_put_be32(f, QEMU_VM_FILE_MAGIC);

    qemu_put_be32(f, QEMU_VM_FILE_VERSION);



    QTAILQ_FOREACH(se, &savevm_handlers, entry) {

        int len;



        if (se->save_live_state == NULL)

            continue;



        /* Section type */

        qemu_put_byte(f, QEMU_VM_SECTION_START);

        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);



        ret = se->save_live_state(mon, f, QEMU_VM_SECTION_START, se->opaque);

        if (ret < 0) {

            qemu_savevm_state_cancel(mon, f);

            return ret;

        }

    }

    ret = qemu_file_get_error(f);

    if (ret != 0) {

        qemu_savevm_state_cancel(mon, f);

    }



    return ret;



}

int qemu_savevm_state_begin(Monitor *mon, QEMUFile *f, int blk_enable,

                            int shared)

{

    SaveStateEntry *se;

    int ret;



    QTAILQ_FOREACH(se, &savevm_handlers, entry) {

        if(se->set_params == NULL) {

            continue;

	}

	se->set_params(blk_enable, shared, se->opaque);

    }

    

    qemu_put_be32(f, QEMU_VM_FILE_MAGIC);

    qemu_put_be32(f, QEMU_VM_FILE_VERSION);



    QTAILQ_FOREACH(se, &savevm_handlers, entry) {

        int len;



        if (se->save_live_state == NULL)

            continue;



        

        qemu_put_byte(f, QEMU_VM_SECTION_START);

        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);



        ret = se->save_live_state(mon, f, QEMU_VM_SECTION_START, se->opaque);

        if (ret < 0) {

            qemu_savevm_state_cancel(mon, f);

            return ret;

        }

    }

    ret = qemu_file_get_error(f);

    if (ret != 0) {

        qemu_savevm_state_cancel(mon, f);

    }



    return ret;



}

int FUNC_0(Monitor *VAR_0, QEMUFile *VAR_1, int VAR_2,

                            int VAR_3)

{

    SaveStateEntry *se;

    int VAR_4;



    QTAILQ_FOREACH(se, &savevm_handlers, entry) {

        if(se->set_params == NULL) {

            continue;

	}

	se->set_params(VAR_2, VAR_3, se->opaque);

    }

    

    qemu_put_be32(VAR_1, QEMU_VM_FILE_MAGIC);

    qemu_put_be32(VAR_1, QEMU_VM_FILE_VERSION);



    QTAILQ_FOREACH(se, &savevm_handlers, entry) {

        int len;



        if (se->save_live_state == NULL)

            continue;



        

        qemu_put_byte(VAR_1, QEMU_VM_SECTION_START);

        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);



        VAR_4 = se->save_live_state(VAR_0, VAR_1, QEMU_VM_SECTION_START, se->opaque);

        if (VAR_4 < 0) {

            qemu_savevm_state_cancel(VAR_0, VAR_1);

            return VAR_4;

        }

    }

    VAR_4 = qemu_file_get_error(VAR_1);

    if (VAR_4 != 0) {

        qemu_savevm_state_cancel(VAR_0, VAR_1);

    }



    return VAR_4;



}

int FUNC_0(Monitor *VAR_0, QEMUFile *VAR_1, int VAR_2,
int VAR_3)
{ SaveStateEntry *se; int VAR_4; QTAILQ_FOREACH(se, &savevm_handlers, entry) { if(se->set_params == NULL) { continue; } se->set_params(VAR_2, VAR_3, se->opaque); } qemu_put_be32(VAR_1, QEMU_VM_FILE_MAGIC); qemu_put_be32(VAR_1, QEMU_VM_FILE_VERSION); QTAILQ_FOREACH(se, &savevm_handlers, entry) { int len; if (se->save_live_state == NULL)
continue; qemu_put_byte(VAR_1, QEMU_VM_SECTION_START); 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); VAR_4 = se->save_live_state(VAR_0, VAR_1, QEMU_VM_SECTION_START, se->opaque); if (VAR_4 < 0) { qemu_savevm_state_cancel(VAR_0, VAR_1); return VAR_4; } } VAR_4 = qemu_file_get_error(VAR_1); if (VAR_4 != 0) { qemu_savevm_state_cancel(VAR_0, VAR_1); } return VAR_4; }