⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 machine.c

📁 xen虚拟机源代码安装包
💻 C
字号:
#include "hw/hw.h"#include "hw/boards.h"#include "exec-all.h"void register_machines(void){#ifdef TARGET_SPARC64    qemu_register_machine(&sun4u_machine);#else    qemu_register_machine(&ss5_machine);    qemu_register_machine(&ss10_machine);    qemu_register_machine(&ss600mp_machine);    qemu_register_machine(&ss20_machine);    qemu_register_machine(&ss2_machine);    qemu_register_machine(&voyager_machine);    qemu_register_machine(&ss_lx_machine);    qemu_register_machine(&ss4_machine);    qemu_register_machine(&scls_machine);    qemu_register_machine(&sbook_machine);    qemu_register_machine(&ss1000_machine);    qemu_register_machine(&ss2000_machine);#endif}void cpu_save(QEMUFile *f, void *opaque){    CPUState *env = opaque;    int i;    uint32_t tmp;    for(i = 0; i < 8; i++)        qemu_put_betls(f, &env->gregs[i]);    for(i = 0; i < NWINDOWS * 16; i++)        qemu_put_betls(f, &env->regbase[i]);    /* FPU */    for(i = 0; i < TARGET_FPREGS; i++) {        union {            float32 f;            uint32_t i;        } u;        u.f = env->fpr[i];        qemu_put_be32(f, u.i);    }    qemu_put_betls(f, &env->pc);    qemu_put_betls(f, &env->npc);    qemu_put_betls(f, &env->y);    tmp = GET_PSR(env);    qemu_put_be32(f, tmp);    qemu_put_betls(f, &env->fsr);    qemu_put_betls(f, &env->tbr);#ifndef TARGET_SPARC64    qemu_put_be32s(f, &env->wim);    /* MMU */    for(i = 0; i < 16; i++)        qemu_put_be32s(f, &env->mmuregs[i]);#endif}int cpu_load(QEMUFile *f, void *opaque, int version_id){    CPUState *env = opaque;    int i;    uint32_t tmp;    for(i = 0; i < 8; i++)        qemu_get_betls(f, &env->gregs[i]);    for(i = 0; i < NWINDOWS * 16; i++)        qemu_get_betls(f, &env->regbase[i]);    /* FPU */    for(i = 0; i < TARGET_FPREGS; i++) {        union {            float32 f;            uint32_t i;        } u;        u.i = qemu_get_be32(f);        env->fpr[i] = u.f;    }    qemu_get_betls(f, &env->pc);    qemu_get_betls(f, &env->npc);    qemu_get_betls(f, &env->y);    tmp = qemu_get_be32(f);    env->cwp = 0; /* needed to ensure that the wrapping registers are                     correctly updated */    PUT_PSR(env, tmp);    qemu_get_betls(f, &env->fsr);    qemu_get_betls(f, &env->tbr);#ifndef TARGET_SPARC64    qemu_get_be32s(f, &env->wim);    /* MMU */    for(i = 0; i < 16; i++)        qemu_get_be32s(f, &env->mmuregs[i]);#endif    tlb_flush(env, 1);    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -