Annotation of qemu/target-ppc/machine.c, revision 1.1.1.3

1.1       root        1: #include "hw/hw.h"
                      2: #include "hw/boards.h"
1.1.1.2   root        3: #include "kvm.h"
1.1       root        4: 
                      5: void cpu_save(QEMUFile *f, void *opaque)
                      6: {
                      7:     CPUState *env = (CPUState *)opaque;
                      8:     unsigned int i, j;
                      9: 
1.1.1.3 ! root       10:     cpu_synchronize_state(env);
1.1.1.2   root       11: 
1.1       root       12:     for (i = 0; i < 32; i++)
                     13:         qemu_put_betls(f, &env->gpr[i]);
                     14: #if !defined(TARGET_PPC64)
                     15:     for (i = 0; i < 32; i++)
                     16:         qemu_put_betls(f, &env->gprh[i]);
                     17: #endif
                     18:     qemu_put_betls(f, &env->lr);
                     19:     qemu_put_betls(f, &env->ctr);
                     20:     for (i = 0; i < 8; i++)
                     21:         qemu_put_be32s(f, &env->crf[i]);
                     22:     qemu_put_betls(f, &env->xer);
1.1.1.3 ! root       23:     qemu_put_betls(f, &env->reserve_addr);
1.1       root       24:     qemu_put_betls(f, &env->msr);
                     25:     for (i = 0; i < 4; i++)
                     26:         qemu_put_betls(f, &env->tgpr[i]);
                     27:     for (i = 0; i < 32; i++) {
                     28:         union {
                     29:             float64 d;
                     30:             uint64_t l;
                     31:         } u;
                     32:         u.d = env->fpr[i];
                     33:         qemu_put_be64(f, u.l);
                     34:     }
                     35:     qemu_put_be32s(f, &env->fpscr);
                     36:     qemu_put_sbe32s(f, &env->access_type);
                     37: #if !defined(CONFIG_USER_ONLY)
                     38: #if defined(TARGET_PPC64)
                     39:     qemu_put_betls(f, &env->asr);
                     40:     qemu_put_sbe32s(f, &env->slb_nr);
                     41: #endif
                     42:     qemu_put_betls(f, &env->sdr1);
                     43:     for (i = 0; i < 32; i++)
                     44:         qemu_put_betls(f, &env->sr[i]);
                     45:     for (i = 0; i < 2; i++)
                     46:         for (j = 0; j < 8; j++)
                     47:             qemu_put_betls(f, &env->DBAT[i][j]);
                     48:     for (i = 0; i < 2; i++)
                     49:         for (j = 0; j < 8; j++)
                     50:             qemu_put_betls(f, &env->IBAT[i][j]);
                     51:     qemu_put_sbe32s(f, &env->nb_tlb);
                     52:     qemu_put_sbe32s(f, &env->tlb_per_way);
                     53:     qemu_put_sbe32s(f, &env->nb_ways);
                     54:     qemu_put_sbe32s(f, &env->last_way);
                     55:     qemu_put_sbe32s(f, &env->id_tlbs);
                     56:     qemu_put_sbe32s(f, &env->nb_pids);
                     57:     if (env->tlb) {
                     58:         // XXX assumes 6xx
                     59:         for (i = 0; i < env->nb_tlb; i++) {
                     60:             qemu_put_betls(f, &env->tlb[i].tlb6.pte0);
                     61:             qemu_put_betls(f, &env->tlb[i].tlb6.pte1);
                     62:             qemu_put_betls(f, &env->tlb[i].tlb6.EPN);
                     63:         }
                     64:     }
                     65:     for (i = 0; i < 4; i++)
                     66:         qemu_put_betls(f, &env->pb[i]);
                     67: #endif
                     68:     for (i = 0; i < 1024; i++)
                     69:         qemu_put_betls(f, &env->spr[i]);
                     70:     qemu_put_be32s(f, &env->vscr);
                     71:     qemu_put_be64s(f, &env->spe_acc);
                     72:     qemu_put_be32s(f, &env->spe_fscr);
                     73:     qemu_put_betls(f, &env->msr_mask);
                     74:     qemu_put_be32s(f, &env->flags);
                     75:     qemu_put_sbe32s(f, &env->error_code);
                     76:     qemu_put_be32s(f, &env->pending_interrupts);
                     77: #if !defined(CONFIG_USER_ONLY)
                     78:     qemu_put_be32s(f, &env->irq_input_state);
                     79:     for (i = 0; i < POWERPC_EXCP_NB; i++)
                     80:         qemu_put_betls(f, &env->excp_vectors[i]);
                     81:     qemu_put_betls(f, &env->excp_prefix);
1.1.1.2   root       82:     qemu_put_betls(f, &env->hreset_excp_prefix);
1.1       root       83:     qemu_put_betls(f, &env->ivor_mask);
                     84:     qemu_put_betls(f, &env->ivpr_mask);
                     85:     qemu_put_betls(f, &env->hreset_vector);
                     86: #endif
                     87:     qemu_put_betls(f, &env->nip);
                     88:     qemu_put_betls(f, &env->hflags);
                     89:     qemu_put_betls(f, &env->hflags_nmsr);
                     90:     qemu_put_sbe32s(f, &env->mmu_idx);
                     91:     qemu_put_sbe32s(f, &env->power_mode);
                     92: }
                     93: 
                     94: int cpu_load(QEMUFile *f, void *opaque, int version_id)
                     95: {
                     96:     CPUState *env = (CPUState *)opaque;
                     97:     unsigned int i, j;
                     98: 
1.1.1.3 ! root       99:     cpu_synchronize_state(env);
        !           100: 
1.1       root      101:     for (i = 0; i < 32; i++)
                    102:         qemu_get_betls(f, &env->gpr[i]);
                    103: #if !defined(TARGET_PPC64)
                    104:     for (i = 0; i < 32; i++)
                    105:         qemu_get_betls(f, &env->gprh[i]);
                    106: #endif
                    107:     qemu_get_betls(f, &env->lr);
                    108:     qemu_get_betls(f, &env->ctr);
                    109:     for (i = 0; i < 8; i++)
                    110:         qemu_get_be32s(f, &env->crf[i]);
                    111:     qemu_get_betls(f, &env->xer);
1.1.1.3 ! root      112:     qemu_get_betls(f, &env->reserve_addr);
1.1       root      113:     qemu_get_betls(f, &env->msr);
                    114:     for (i = 0; i < 4; i++)
                    115:         qemu_get_betls(f, &env->tgpr[i]);
                    116:     for (i = 0; i < 32; i++) {
                    117:         union {
                    118:             float64 d;
                    119:             uint64_t l;
                    120:         } u;
                    121:         u.l = qemu_get_be64(f);
                    122:         env->fpr[i] = u.d;
                    123:     }
                    124:     qemu_get_be32s(f, &env->fpscr);
                    125:     qemu_get_sbe32s(f, &env->access_type);
                    126: #if !defined(CONFIG_USER_ONLY)
                    127: #if defined(TARGET_PPC64)
                    128:     qemu_get_betls(f, &env->asr);
                    129:     qemu_get_sbe32s(f, &env->slb_nr);
                    130: #endif
                    131:     qemu_get_betls(f, &env->sdr1);
                    132:     for (i = 0; i < 32; i++)
                    133:         qemu_get_betls(f, &env->sr[i]);
                    134:     for (i = 0; i < 2; i++)
                    135:         for (j = 0; j < 8; j++)
                    136:             qemu_get_betls(f, &env->DBAT[i][j]);
                    137:     for (i = 0; i < 2; i++)
                    138:         for (j = 0; j < 8; j++)
                    139:             qemu_get_betls(f, &env->IBAT[i][j]);
                    140:     qemu_get_sbe32s(f, &env->nb_tlb);
                    141:     qemu_get_sbe32s(f, &env->tlb_per_way);
                    142:     qemu_get_sbe32s(f, &env->nb_ways);
                    143:     qemu_get_sbe32s(f, &env->last_way);
                    144:     qemu_get_sbe32s(f, &env->id_tlbs);
                    145:     qemu_get_sbe32s(f, &env->nb_pids);
                    146:     if (env->tlb) {
                    147:         // XXX assumes 6xx
                    148:         for (i = 0; i < env->nb_tlb; i++) {
                    149:             qemu_get_betls(f, &env->tlb[i].tlb6.pte0);
                    150:             qemu_get_betls(f, &env->tlb[i].tlb6.pte1);
                    151:             qemu_get_betls(f, &env->tlb[i].tlb6.EPN);
                    152:         }
                    153:     }
                    154:     for (i = 0; i < 4; i++)
                    155:         qemu_get_betls(f, &env->pb[i]);
                    156: #endif
                    157:     for (i = 0; i < 1024; i++)
                    158:         qemu_get_betls(f, &env->spr[i]);
                    159:     qemu_get_be32s(f, &env->vscr);
                    160:     qemu_get_be64s(f, &env->spe_acc);
                    161:     qemu_get_be32s(f, &env->spe_fscr);
                    162:     qemu_get_betls(f, &env->msr_mask);
                    163:     qemu_get_be32s(f, &env->flags);
                    164:     qemu_get_sbe32s(f, &env->error_code);
                    165:     qemu_get_be32s(f, &env->pending_interrupts);
                    166: #if !defined(CONFIG_USER_ONLY)
                    167:     qemu_get_be32s(f, &env->irq_input_state);
                    168:     for (i = 0; i < POWERPC_EXCP_NB; i++)
                    169:         qemu_get_betls(f, &env->excp_vectors[i]);
                    170:     qemu_get_betls(f, &env->excp_prefix);
1.1.1.2   root      171:     qemu_get_betls(f, &env->hreset_excp_prefix);
1.1       root      172:     qemu_get_betls(f, &env->ivor_mask);
                    173:     qemu_get_betls(f, &env->ivpr_mask);
                    174:     qemu_get_betls(f, &env->hreset_vector);
                    175: #endif
                    176:     qemu_get_betls(f, &env->nip);
                    177:     qemu_get_betls(f, &env->hflags);
                    178:     qemu_get_betls(f, &env->hflags_nmsr);
                    179:     qemu_get_sbe32s(f, &env->mmu_idx);
                    180:     qemu_get_sbe32s(f, &env->power_mode);
                    181: 
                    182:     return 0;
                    183: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.