Commit 80a9d03503494feffab254d7d366ab55533f5d09
1 parent
75598f61
64 bit target fixes - removed warnings
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1187 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
3 changed files
with
20 additions
and
10 deletions
linux-user/main.c
... | ... | @@ -181,7 +181,7 @@ static void set_idt(int n, unsigned int dpl) |
181 | 181 | void cpu_loop(CPUX86State *env) |
182 | 182 | { |
183 | 183 | int trapnr; |
184 | - uint8_t *pc; | |
184 | + target_ulong pc; | |
185 | 185 | target_siginfo_t info; |
186 | 186 | |
187 | 187 | for(;;) { |
... | ... | @@ -440,6 +440,7 @@ static void restore_window(CPUSPARCState *env) |
440 | 440 | env->wim = new_wim; |
441 | 441 | } |
442 | 442 | |
443 | +#if 0 | |
443 | 444 | static void flush_windows(CPUSPARCState *env) |
444 | 445 | { |
445 | 446 | int offset, cwp1; |
... | ... | @@ -459,6 +460,7 @@ static void flush_windows(CPUSPARCState *env) |
459 | 460 | offset++; |
460 | 461 | } |
461 | 462 | } |
463 | +#endif | |
462 | 464 | |
463 | 465 | void cpu_loop (CPUSPARCState *env) |
464 | 466 | { |
... | ... | @@ -1067,7 +1069,7 @@ int main(int argc, char **argv) |
1067 | 1069 | env->eip = regs->eip; |
1068 | 1070 | |
1069 | 1071 | /* linux interrupt setup */ |
1070 | - env->idt.base = (void *)idt_table; | |
1072 | + env->idt.base = (long)idt_table; | |
1071 | 1073 | env->idt.limit = sizeof(idt_table) - 1; |
1072 | 1074 | set_idt(0, 0); |
1073 | 1075 | set_idt(1, 0); |
... | ... | @@ -1092,7 +1094,7 @@ int main(int argc, char **argv) |
1092 | 1094 | set_idt(0x80, 3); |
1093 | 1095 | |
1094 | 1096 | /* linux segment setup */ |
1095 | - env->gdt.base = (void *)gdt_table; | |
1097 | + env->gdt.base = (long)gdt_table; | |
1096 | 1098 | env->gdt.limit = sizeof(gdt_table) - 1; |
1097 | 1099 | write_dt(&gdt_table[__USER_CS >> 3], 0, 0xfffff, |
1098 | 1100 | DESC_G_MASK | DESC_B_MASK | DESC_P_MASK | DESC_S_MASK | | ... | ... |
linux-user/signal.c
... | ... | @@ -1272,6 +1272,7 @@ badframe: |
1272 | 1272 | } |
1273 | 1273 | |
1274 | 1274 | #elif defined(TARGET_SPARC) |
1275 | + | |
1275 | 1276 | #define __SUNOS_MAXWIN 31 |
1276 | 1277 | |
1277 | 1278 | /* This is what SunOS does, so shall I. */ |
... | ... | @@ -1400,6 +1401,7 @@ setup___siginfo(__siginfo_t *si, CPUState *env, target_ulong mask) |
1400 | 1401 | return err; |
1401 | 1402 | } |
1402 | 1403 | |
1404 | +#if 0 | |
1403 | 1405 | static int |
1404 | 1406 | setup_sigcontext(struct target_sigcontext *sc, /*struct _fpstate *fpstate,*/ |
1405 | 1407 | CPUState *env, unsigned long mask) |
... | ... | @@ -1416,6 +1418,7 @@ setup_sigcontext(struct target_sigcontext *sc, /*struct _fpstate *fpstate,*/ |
1416 | 1418 | |
1417 | 1419 | return err; |
1418 | 1420 | } |
1421 | +#endif | |
1419 | 1422 | #define NF_ALIGNEDSZ (((sizeof(struct target_signal_frame) + 7) & (~7))) |
1420 | 1423 | |
1421 | 1424 | static void setup_frame(int sig, struct emulated_sigaction *ka, |
... | ... | @@ -1483,12 +1486,12 @@ static void setup_frame(int sig, struct emulated_sigaction *ka, |
1483 | 1486 | |
1484 | 1487 | /* Flush instruction space. */ |
1485 | 1488 | //flush_sig_insns(current->mm, (unsigned long) &(sf->insns[0])); |
1486 | - tb_flush(env); | |
1489 | + // tb_flush(env); | |
1487 | 1490 | } |
1488 | 1491 | //cpu_dump_state(env, stderr, fprintf, 0); |
1489 | 1492 | return; |
1490 | 1493 | |
1491 | -sigill_and_return: | |
1494 | + //sigill_and_return: | |
1492 | 1495 | force_sig(TARGET_SIGILL); |
1493 | 1496 | sigsegv: |
1494 | 1497 | //fprintf(stderr, "force_sig\n"); |
... | ... | @@ -1544,12 +1547,14 @@ long do_sigreturn(CPUState *env) |
1544 | 1547 | uint32_t up_psr, pc, npc; |
1545 | 1548 | target_sigset_t set; |
1546 | 1549 | sigset_t host_set; |
1547 | - __siginfo_fpu_t *fpu_save; | |
1550 | + target_ulong fpu_save; | |
1548 | 1551 | int err, i; |
1549 | 1552 | |
1550 | 1553 | sf = (struct target_signal_frame *) env->regwptr[UREG_FP]; |
1554 | +#if 0 | |
1551 | 1555 | fprintf(stderr, "sigreturn\n"); |
1552 | 1556 | fprintf(stderr, "sf: %x pc %x fp %x sp %x\n", sf, env->pc, env->regwptr[UREG_FP], env->regwptr[UREG_SP]); |
1557 | +#endif | |
1553 | 1558 | //cpu_dump_state(env, stderr, fprintf, 0); |
1554 | 1559 | |
1555 | 1560 | /* 1. Make sure we are not getting garbage from the user */ |
... | ... | @@ -1564,7 +1569,7 @@ long do_sigreturn(CPUState *env) |
1564 | 1569 | err = __get_user(pc, &sf->info.si_regs.pc); |
1565 | 1570 | err |= __get_user(npc, &sf->info.si_regs.npc); |
1566 | 1571 | |
1567 | - fprintf(stderr, "pc: %lx npc %lx\n", pc, npc); | |
1572 | + // fprintf(stderr, "pc: %lx npc %lx\n", pc, npc); | |
1568 | 1573 | if ((pc | npc) & 3) |
1569 | 1574 | goto segv_and_exit; |
1570 | 1575 | |
... | ... | @@ -1585,7 +1590,7 @@ long do_sigreturn(CPUState *env) |
1585 | 1590 | err |= __get_user(env->regwptr[i + UREG_I0], &sf->info.si_regs.u_regs[i+8]); |
1586 | 1591 | } |
1587 | 1592 | |
1588 | - err |= __get_user(fpu_save, &sf->fpu_save); | |
1593 | + err |= __get_user(fpu_save, (target_ulong *)&sf->fpu_save); | |
1589 | 1594 | |
1590 | 1595 | //if (fpu_save) |
1591 | 1596 | // err |= restore_fpu_state(env, fpu_save); |
... | ... | @@ -1604,7 +1609,7 @@ long do_sigreturn(CPUState *env) |
1604 | 1609 | if (err) |
1605 | 1610 | goto segv_and_exit; |
1606 | 1611 | |
1607 | - fprintf(stderr, "returning %lx\n", env->regwptr[0]); | |
1612 | + // fprintf(stderr, "returning %lx\n", env->regwptr[0]); | |
1608 | 1613 | return env->regwptr[0]; |
1609 | 1614 | |
1610 | 1615 | segv_and_exit: | ... | ... |
linux-user/syscall.c
... | ... | @@ -1326,7 +1326,7 @@ static int write_ldt(CPUX86State *env, |
1326 | 1326 | if (!ldt_table) |
1327 | 1327 | return -ENOMEM; |
1328 | 1328 | memset(ldt_table, 0, TARGET_LDT_ENTRIES * TARGET_LDT_ENTRY_SIZE); |
1329 | - env->ldt.base = ldt_table; | |
1329 | + env->ldt.base = (long)ldt_table; | |
1330 | 1330 | env->ldt.limit = 0xffff; |
1331 | 1331 | } |
1332 | 1332 | |
... | ... | @@ -2502,6 +2502,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, |
2502 | 2502 | tnamelen = treclen - (2 * sizeof(target_long) + 2); |
2503 | 2503 | if (tnamelen > 256) |
2504 | 2504 | tnamelen = 256; |
2505 | + /* XXX: may not be correct */ | |
2505 | 2506 | strncpy(tde->d_name, de->d_name, tnamelen); |
2506 | 2507 | de = (struct dirent *)((char *)de + reclen); |
2507 | 2508 | len -= reclen; |
... | ... | @@ -3046,7 +3047,9 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, |
3046 | 3047 | default: |
3047 | 3048 | unimplemented: |
3048 | 3049 | gemu_log("qemu: Unsupported syscall: %d\n", num); |
3050 | +#if defined(TARGET_NR_setxattr) || defined(TARGET_NR_set_thread_area) | |
3049 | 3051 | unimplemented_nowarn: |
3052 | +#endif | |
3050 | 3053 | ret = -ENOSYS; |
3051 | 3054 | break; |
3052 | 3055 | } | ... | ... |