Commit 2d7a3b9d7bf8959077ad19951d7f30dc87da9838

Authored by bellard
1 parent 7c206a75

qruncom compile fixes (initial patch by Even Rouault)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1722 c046a42c-6fe2-441c-8c8c-71466251a162
tests/Makefile
@@ -71,7 +71,7 @@ runcom: runcom.c @@ -71,7 +71,7 @@ runcom: runcom.c
71 71
72 # NOTE: -fomit-frame-pointer is currently needed : this is a bug in libqemu 72 # NOTE: -fomit-frame-pointer is currently needed : this is a bug in libqemu
73 qruncom: qruncom.c ../i386-user/libqemu.a 73 qruncom: qruncom.c ../i386-user/libqemu.a
74 - $(CC) $(CFLAGS) -fomit-frame-pointer $(LDFLAGS) -I../target-i386 -I.. -I../i386-user \ 74 + $(CC) $(CFLAGS) -fomit-frame-pointer $(LDFLAGS) -I../target-i386 -I.. -I../i386-user -I../fpu \
75 -o $@ $< -L../i386-user -lqemu -lm 75 -o $@ $< -L../i386-user -lqemu -lm
76 76
77 # arm test 77 # arm test
tests/qruncom.c
@@ -10,6 +10,7 @@ @@ -10,6 +10,7 @@
10 #include <fcntl.h> 10 #include <fcntl.h>
11 #include <sys/mman.h> 11 #include <sys/mman.h>
12 #include <signal.h> 12 #include <signal.h>
  13 +#include <malloc.h>
13 14
14 #include "cpu.h" 15 #include "cpu.h"
15 16
@@ -86,6 +87,26 @@ void *qemu_malloc(size_t size) @@ -86,6 +87,26 @@ void *qemu_malloc(size_t size)
86 return malloc(size); 87 return malloc(size);
87 } 88 }
88 89
  90 +void *qemu_mallocz(size_t size)
  91 +{
  92 + void *ptr;
  93 + ptr = qemu_malloc(size);
  94 + if (!ptr)
  95 + return NULL;
  96 + memset(ptr, 0, size);
  97 + return ptr;
  98 +}
  99 +
  100 +void *qemu_vmalloc(size_t size)
  101 +{
  102 + return memalign(4096, size);
  103 +}
  104 +
  105 +void qemu_vfree(void *ptr)
  106 +{
  107 + free(ptr);
  108 +}
  109 +
89 void qemu_printf(const char *fmt, ...) 110 void qemu_printf(const char *fmt, ...)
90 { 111 {
91 va_list ap; 112 va_list ap;
@@ -204,20 +225,20 @@ int main(int argc, char **argv) @@ -204,20 +225,20 @@ int main(int argc, char **argv)
204 seg = (COM_BASE_ADDR - 0x100) >> 4; 225 seg = (COM_BASE_ADDR - 0x100) >> 4;
205 226
206 cpu_x86_load_seg_cache(env, R_CS, seg, 227 cpu_x86_load_seg_cache(env, R_CS, seg,
207 - (uint8_t *)(seg << 4), 0xffff, 0); 228 + (seg << 4), 0xffff, 0);
208 cpu_x86_load_seg_cache(env, R_SS, seg, 229 cpu_x86_load_seg_cache(env, R_SS, seg,
209 - (uint8_t *)(seg << 4), 0xffff, 0); 230 + (seg << 4), 0xffff, 0);
210 cpu_x86_load_seg_cache(env, R_DS, seg, 231 cpu_x86_load_seg_cache(env, R_DS, seg,
211 - (uint8_t *)(seg << 4), 0xffff, 0); 232 + (seg << 4), 0xffff, 0);
212 cpu_x86_load_seg_cache(env, R_ES, seg, 233 cpu_x86_load_seg_cache(env, R_ES, seg,
213 - (uint8_t *)(seg << 4), 0xffff, 0); 234 + (seg << 4), 0xffff, 0);
214 cpu_x86_load_seg_cache(env, R_FS, seg, 235 cpu_x86_load_seg_cache(env, R_FS, seg,
215 - (uint8_t *)(seg << 4), 0xffff, 0); 236 + (seg << 4), 0xffff, 0);
216 cpu_x86_load_seg_cache(env, R_GS, seg, 237 cpu_x86_load_seg_cache(env, R_GS, seg,
217 - (uint8_t *)(seg << 4), 0xffff, 0); 238 + (seg << 4), 0xffff, 0);
218 239
219 /* exception support */ 240 /* exception support */
220 - env->idt.base = (void *)idt_table; 241 + env->idt.base = (unsigned long)idt_table;
221 env->idt.limit = sizeof(idt_table) - 1; 242 env->idt.limit = sizeof(idt_table) - 1;
222 set_idt(0, 0); 243 set_idt(0, 0);
223 set_idt(1, 0); 244 set_idt(1, 0);
@@ -263,7 +284,7 @@ int main(int argc, char **argv) @@ -263,7 +284,7 @@ int main(int argc, char **argv)
263 case EXCP0D_GPF: 284 case EXCP0D_GPF:
264 { 285 {
265 int int_num, ah; 286 int int_num, ah;
266 - int_num = *(env->segs[R_CS].base + env->eip + 1); 287 + int_num = *(uint8_t *)(env->segs[R_CS].base + env->eip + 1);
267 if (int_num != 0x21) 288 if (int_num != 0x21)
268 goto unknown_int; 289 goto unknown_int;
269 ah = (env->regs[R_EAX] >> 8) & 0xff; 290 ah = (env->regs[R_EAX] >> 8) & 0xff;
@@ -291,7 +312,7 @@ int main(int argc, char **argv) @@ -291,7 +312,7 @@ int main(int argc, char **argv)
291 default: 312 default:
292 unknown_int: 313 unknown_int:
293 fprintf(stderr, "unsupported int 0x%02x\n", int_num); 314 fprintf(stderr, "unsupported int 0x%02x\n", int_num);
294 - cpu_dump_state(env, stderr, 0); 315 + cpu_dump_state(env, stderr, fprintf, 0);
295 // exit(1); 316 // exit(1);
296 } 317 }
297 env->eip += 2; 318 env->eip += 2;
@@ -299,7 +320,7 @@ int main(int argc, char **argv) @@ -299,7 +320,7 @@ int main(int argc, char **argv)
299 break; 320 break;
300 default: 321 default:
301 fprintf(stderr, "unhandled cpu_exec return code (0x%x)\n", ret); 322 fprintf(stderr, "unhandled cpu_exec return code (0x%x)\n", ret);
302 - cpu_dump_state(env, stderr, 0); 323 + cpu_dump_state(env, stderr, fprintf, 0);
303 exit(1); 324 exit(1);
304 } 325 }
305 } 326 }