268 |
} |
} |
269 |
} |
} |
270 |
|
|
271 |
|
/***********************************************************/ |
272 |
|
|
273 |
void pstrcpy(char *buf, int buf_size, const char *str) |
void pstrcpy(char *buf, int buf_size, const char *str) |
274 |
{ |
{ |
275 |
int c; |
int c; |
2066 |
static void cpu_put_seg(QEMUFile *f, SegmentCache *dt) |
static void cpu_put_seg(QEMUFile *f, SegmentCache *dt) |
2067 |
{ |
{ |
2068 |
qemu_put_be32(f, dt->selector); |
qemu_put_be32(f, dt->selector); |
2069 |
qemu_put_be32(f, (uint32_t)dt->base); |
qemu_put_betl(f, dt->base); |
2070 |
qemu_put_be32(f, dt->limit); |
qemu_put_be32(f, dt->limit); |
2071 |
qemu_put_be32(f, dt->flags); |
qemu_put_be32(f, dt->flags); |
2072 |
} |
} |
2074 |
static void cpu_get_seg(QEMUFile *f, SegmentCache *dt) |
static void cpu_get_seg(QEMUFile *f, SegmentCache *dt) |
2075 |
{ |
{ |
2076 |
dt->selector = qemu_get_be32(f); |
dt->selector = qemu_get_be32(f); |
2077 |
dt->base = (uint8_t *)qemu_get_be32(f); |
dt->base = qemu_get_betl(f); |
2078 |
dt->limit = qemu_get_be32(f); |
dt->limit = qemu_get_be32(f); |
2079 |
dt->flags = qemu_get_be32(f); |
dt->flags = qemu_get_be32(f); |
2080 |
} |
} |
2086 |
uint32_t hflags; |
uint32_t hflags; |
2087 |
int i; |
int i; |
2088 |
|
|
2089 |
for(i = 0; i < 8; i++) |
for(i = 0; i < CPU_NB_REGS; i++) |
2090 |
qemu_put_be32s(f, &env->regs[i]); |
qemu_put_betls(f, &env->regs[i]); |
2091 |
qemu_put_be32s(f, &env->eip); |
qemu_put_betls(f, &env->eip); |
2092 |
qemu_put_be32s(f, &env->eflags); |
qemu_put_betls(f, &env->eflags); |
2093 |
qemu_put_be32s(f, &env->eflags); |
qemu_put_betl(f, 0); /* XXX: suppress that */ |
2094 |
hflags = env->hflags; /* XXX: suppress most of the redundant hflags */ |
hflags = env->hflags; /* XXX: suppress most of the redundant hflags */ |
2095 |
qemu_put_be32s(f, &hflags); |
qemu_put_be32s(f, &hflags); |
2096 |
|
|
2128 |
qemu_put_be32s(f, &env->sysenter_esp); |
qemu_put_be32s(f, &env->sysenter_esp); |
2129 |
qemu_put_be32s(f, &env->sysenter_eip); |
qemu_put_be32s(f, &env->sysenter_eip); |
2130 |
|
|
2131 |
qemu_put_be32s(f, &env->cr[0]); |
qemu_put_betls(f, &env->cr[0]); |
2132 |
qemu_put_be32s(f, &env->cr[2]); |
qemu_put_betls(f, &env->cr[2]); |
2133 |
qemu_put_be32s(f, &env->cr[3]); |
qemu_put_betls(f, &env->cr[3]); |
2134 |
qemu_put_be32s(f, &env->cr[4]); |
qemu_put_betls(f, &env->cr[4]); |
2135 |
|
|
2136 |
for(i = 0; i < 8; i++) |
for(i = 0; i < 8; i++) |
2137 |
qemu_put_be32s(f, &env->dr[i]); |
qemu_put_betls(f, &env->dr[i]); |
2138 |
|
|
2139 |
/* MMU */ |
/* MMU */ |
2140 |
qemu_put_be32s(f, &env->a20_mask); |
qemu_put_be32s(f, &env->a20_mask); |
2149 |
|
|
2150 |
if (version_id != 2) |
if (version_id != 2) |
2151 |
return -EINVAL; |
return -EINVAL; |
2152 |
for(i = 0; i < 8; i++) |
for(i = 0; i < CPU_NB_REGS; i++) |
2153 |
qemu_get_be32s(f, &env->regs[i]); |
qemu_get_betls(f, &env->regs[i]); |
2154 |
qemu_get_be32s(f, &env->eip); |
qemu_get_betls(f, &env->eip); |
2155 |
qemu_get_be32s(f, &env->eflags); |
qemu_get_betls(f, &env->eflags); |
2156 |
qemu_get_be32s(f, &env->eflags); |
qemu_get_betl(f); /* XXX: suppress that */ |
2157 |
qemu_get_be32s(f, &hflags); |
qemu_get_be32s(f, &hflags); |
2158 |
|
|
2159 |
qemu_get_be16s(f, &fpuc); |
qemu_get_be16s(f, &fpuc); |
2187 |
qemu_get_be32s(f, &env->sysenter_esp); |
qemu_get_be32s(f, &env->sysenter_esp); |
2188 |
qemu_get_be32s(f, &env->sysenter_eip); |
qemu_get_be32s(f, &env->sysenter_eip); |
2189 |
|
|
2190 |
qemu_get_be32s(f, &env->cr[0]); |
qemu_get_betls(f, &env->cr[0]); |
2191 |
qemu_get_be32s(f, &env->cr[2]); |
qemu_get_betls(f, &env->cr[2]); |
2192 |
qemu_get_be32s(f, &env->cr[3]); |
qemu_get_betls(f, &env->cr[3]); |
2193 |
qemu_get_be32s(f, &env->cr[4]); |
qemu_get_betls(f, &env->cr[4]); |
2194 |
|
|
2195 |
for(i = 0; i < 8; i++) |
for(i = 0; i < 8; i++) |
2196 |
qemu_get_be32s(f, &env->dr[i]); |
qemu_get_betls(f, &env->dr[i]); |
2197 |
|
|
2198 |
/* MMU */ |
/* MMU */ |
2199 |
qemu_get_be32s(f, &env->a20_mask); |
qemu_get_be32s(f, &env->a20_mask); |