Commit f4b1a842d71ced24fb6b9145b9d1eadc48d64291
1 parent
48585ec5
Rearrange tick functions
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5408 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
4 changed files
with
46 additions
and
31 deletions
hw/sun4u.c
| @@ -309,6 +309,21 @@ static void hstick_irq(void *opaque) | @@ -309,6 +309,21 @@ static void hstick_irq(void *opaque) | ||
| 309 | cpu_interrupt(env, CPU_INTERRUPT_TIMER); | 309 | cpu_interrupt(env, CPU_INTERRUPT_TIMER); |
| 310 | } | 310 | } |
| 311 | 311 | ||
| 312 | +void cpu_tick_set_count(void *opaque, uint64_t count) | ||
| 313 | +{ | ||
| 314 | + ptimer_set_count(opaque, -count); | ||
| 315 | +} | ||
| 316 | + | ||
| 317 | +uint64_t cpu_tick_get_count(void *opaque) | ||
| 318 | +{ | ||
| 319 | + return -ptimer_get_count(opaque); | ||
| 320 | +} | ||
| 321 | + | ||
| 322 | +void cpu_tick_set_limit(void *opaque, uint64_t limit) | ||
| 323 | +{ | ||
| 324 | + ptimer_set_limit(opaque, -limit, 0); | ||
| 325 | +} | ||
| 326 | + | ||
| 312 | static const int ide_iobase[2] = { 0x1f0, 0x170 }; | 327 | static const int ide_iobase[2] = { 0x1f0, 0x170 }; |
| 313 | static const int ide_iobase2[2] = { 0x3f6, 0x376 }; | 328 | static const int ide_iobase2[2] = { 0x3f6, 0x376 }; |
| 314 | static const int ide_irq[2] = { 14, 15 }; | 329 | static const int ide_irq[2] = { 14, 15 }; |
target-sparc/cpu.h
| @@ -501,4 +501,11 @@ static inline void cpu_clone_regs(CPUState *env, target_ulong newsp) | @@ -501,4 +501,11 @@ static inline void cpu_clone_regs(CPUState *env, target_ulong newsp) | ||
| 501 | /* sum4m.c, sun4u.c */ | 501 | /* sum4m.c, sun4u.c */ |
| 502 | void cpu_check_irqs(CPUSPARCState *env); | 502 | void cpu_check_irqs(CPUSPARCState *env); |
| 503 | 503 | ||
| 504 | +#ifdef TARGET_SPARC64 | ||
| 505 | +/* sun4u.c */ | ||
| 506 | +void cpu_tick_set_count(void *opaque, uint64_t count); | ||
| 507 | +uint64_t cpu_tick_get_count(void *opaque); | ||
| 508 | +void cpu_tick_set_limit(void *opaque, uint64_t limit); | ||
| 509 | +#endif | ||
| 510 | + | ||
| 504 | #endif | 511 | #endif |
target-sparc/helper.c
| @@ -1412,34 +1412,3 @@ void cpu_dump_state(CPUState *env, FILE *f, | @@ -1412,34 +1412,3 @@ void cpu_dump_state(CPUState *env, FILE *f, | ||
| 1412 | #endif | 1412 | #endif |
| 1413 | cpu_fprintf(f, "fsr: 0x%08x\n", env->fsr); | 1413 | cpu_fprintf(f, "fsr: 0x%08x\n", env->fsr); |
| 1414 | } | 1414 | } |
| 1415 | - | ||
| 1416 | -#ifdef TARGET_SPARC64 | ||
| 1417 | -#if !defined(CONFIG_USER_ONLY) | ||
| 1418 | -#include "qemu-common.h" | ||
| 1419 | -#include "hw/irq.h" | ||
| 1420 | -#include "qemu-timer.h" | ||
| 1421 | -#endif | ||
| 1422 | - | ||
| 1423 | -void helper_tick_set_count(void *opaque, uint64_t count) | ||
| 1424 | -{ | ||
| 1425 | -#if !defined(CONFIG_USER_ONLY) | ||
| 1426 | - ptimer_set_count(opaque, -count); | ||
| 1427 | -#endif | ||
| 1428 | -} | ||
| 1429 | - | ||
| 1430 | -uint64_t helper_tick_get_count(void *opaque) | ||
| 1431 | -{ | ||
| 1432 | -#if !defined(CONFIG_USER_ONLY) | ||
| 1433 | - return -ptimer_get_count(opaque); | ||
| 1434 | -#else | ||
| 1435 | - return 0; | ||
| 1436 | -#endif | ||
| 1437 | -} | ||
| 1438 | - | ||
| 1439 | -void helper_tick_set_limit(void *opaque, uint64_t limit) | ||
| 1440 | -{ | ||
| 1441 | -#if !defined(CONFIG_USER_ONLY) | ||
| 1442 | - ptimer_set_limit(opaque, -limit, 0); | ||
| 1443 | -#endif | ||
| 1444 | -} | ||
| 1445 | -#endif |
target-sparc/op_helper.c
| @@ -3086,3 +3086,27 @@ void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec, | @@ -3086,3 +3086,27 @@ void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec, | ||
| 3086 | } | 3086 | } |
| 3087 | #endif | 3087 | #endif |
| 3088 | 3088 | ||
| 3089 | +#ifdef TARGET_SPARC64 | ||
| 3090 | +void helper_tick_set_count(void *opaque, uint64_t count) | ||
| 3091 | +{ | ||
| 3092 | +#if !defined(CONFIG_USER_ONLY) | ||
| 3093 | + cpu_tick_set_count(opaque, count); | ||
| 3094 | +#endif | ||
| 3095 | +} | ||
| 3096 | + | ||
| 3097 | +uint64_t helper_tick_get_count(void *opaque) | ||
| 3098 | +{ | ||
| 3099 | +#if !defined(CONFIG_USER_ONLY) | ||
| 3100 | + return cpu_tick_get_count(opaque); | ||
| 3101 | +#else | ||
| 3102 | + return 0; | ||
| 3103 | +#endif | ||
| 3104 | +} | ||
| 3105 | + | ||
| 3106 | +void helper_tick_set_limit(void *opaque, uint64_t limit) | ||
| 3107 | +{ | ||
| 3108 | +#if !defined(CONFIG_USER_ONLY) | ||
| 3109 | + cpu_tick_set_limit(opaque, limit); | ||
| 3110 | +#endif | ||
| 3111 | +} | ||
| 3112 | +#endif |