void vmstate_save_state(QEMUFile *f, const VMStateDescription *vmsd,

                        void *opaque)

{

    VMStateField *field = vmsd->fields;



    if (vmsd->pre_save) {

        vmsd->pre_save(opaque);


    while (field->name) {

        if (!field->field_exists ||

            field->field_exists(opaque, vmsd->version_id)) {

            void *base_addr = vmstate_base_addr(opaque, field);

            int i, n_elems = vmstate_n_elems(opaque, field);

            int size = vmstate_size(opaque, field);



            for (i = 0; i < n_elems; i++) {

                void *addr = base_addr + size * i;



                if (field->flags & VMS_ARRAY_OF_POINTER) {

                    addr = *(void **)addr;


                if (field->flags & VMS_STRUCT) {

                    vmstate_save_state(f, field->vmsd, addr);


                    field->info->put(f, addr, size);










        field++;


    vmstate_subsection_save(f, vmsd, opaque);

void vmstate_save_state(QEMUFile *f, const VMStateDescription *vmsd,

                        void *opaque)

{

    VMStateField *field = vmsd->fields;



    if (vmsd->pre_save) {

        vmsd->pre_save(opaque);


    while (field->name) {

        if (!field->field_exists ||

            field->field_exists(opaque, vmsd->version_id)) {

            void *base_addr = vmstate_base_addr(opaque, field);

            int i, n_elems = vmstate_n_elems(opaque, field);

            int size = vmstate_size(opaque, field);



            for (i = 0; i < n_elems; i++) {

                void *addr = base_addr + size * i;



                if (field->flags & VMS_ARRAY_OF_POINTER) {

                    addr = *(void **)addr;


                if (field->flags & VMS_STRUCT) {

                    vmstate_save_state(f, field->vmsd, addr);


                    field->info->put(f, addr, size);










        field++;


    vmstate_subsection_save(f, vmsd, opaque);

void FUNC_0(QEMUFile *VAR_0, const VMStateDescription *VAR_1,

                        void *VAR_2)

{

    VMStateField *field = VAR_1->fields;



    if (VAR_1->pre_save) {

        VAR_1->pre_save(VAR_2);


    while (field->name) {

        if (!field->field_exists ||

            field->field_exists(VAR_2, VAR_1->version_id)) {

            void *VAR_3 = vmstate_base_addr(VAR_2, field);

            int VAR_4, VAR_5 = vmstate_n_elems(VAR_2, field);

            int VAR_6 = vmstate_size(VAR_2, field);



            for (VAR_4 = 0; VAR_4 < VAR_5; VAR_4++) {

                void *VAR_7 = VAR_3 + VAR_6 * VAR_4;



                if (field->flags & VMS_ARRAY_OF_POINTER) {

                    VAR_7 = *(void **)VAR_7;


                if (field->flags & VMS_STRUCT) {

                    FUNC_0(VAR_0, field->VAR_1, VAR_7);


                    field->info->put(VAR_0, VAR_7, VAR_6);










        field++;


    vmstate_subsection_save(VAR_0, VAR_1, VAR_2);

void FUNC_0(QEMUFile *VAR_0, const VMStateDescription *VAR_1,
void *VAR_2)
{ VMStateField *field = VAR_1->fields; if (VAR_1->pre_save) { VAR_1->pre_save(VAR_2); while (field->name) { if (!field->field_exists ||
field->field_exists(VAR_2, VAR_1->version_id)) { void *VAR_3 = vmstate_base_addr(VAR_2, field); int VAR_4, VAR_5 = vmstate_n_elems(VAR_2, field); int VAR_6 = vmstate_size(VAR_2, field); for (VAR_4 = 0; VAR_4 < VAR_5; VAR_4++) { void *VAR_7 = VAR_3 + VAR_6 * VAR_4; if (field->flags & VMS_ARRAY_OF_POINTER) { VAR_7 = *(void **)VAR_7; if (field->flags & VMS_STRUCT) { FUNC_0(VAR_0, field->VAR_1, VAR_7); field->info->put(VAR_0, VAR_7, VAR_6); field++; vmstate_subsection_save(VAR_0, VAR_1, VAR_2);