qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

target/hppa: Use env_cpu, env_archcpu

Cleanup in the boilerplate that each target must define.
Replace hppa_env_get_cpu with env_archcpu. The combination
CPU(hppa_env_get_cpu) should have used ENV_GET_CPU to begin;
use env_cpu now.

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

+11 -21
+1 -1
linux-user/hppa/cpu_loop.c
··· 105 105 106 106 void cpu_loop(CPUHPPAState *env) 107 107 { 108 - CPUState *cs = CPU(hppa_env_get_cpu(env)); 108 + CPUState *cs = env_cpu(env); 109 109 target_siginfo_t info; 110 110 abi_ulong ret; 111 111 int trapnr;
-5
target/hppa/cpu.h
··· 222 222 QEMUTimer *alarm_timer; 223 223 }; 224 224 225 - static inline HPPACPU *hppa_env_get_cpu(CPUHPPAState *env) 226 - { 227 - return container_of(env, HPPACPU, env); 228 - } 229 - 230 225 #define ENV_OFFSET offsetof(HPPACPU, env) 231 226 232 227 typedef CPUHPPAState CPUArchState;
+1 -2
target/hppa/helper.c
··· 71 71 /* If PSW_P changes, it affects how we translate addresses. */ 72 72 if ((psw ^ old_psw) & PSW_P) { 73 73 #ifndef CONFIG_USER_ONLY 74 - CPUState *src = CPU(hppa_env_get_cpu(env)); 75 - tlb_flush_by_mmuidx(src, 0xf); 74 + tlb_flush_by_mmuidx(env_cpu(env), 0xf); 76 75 #endif 77 76 } 78 77 }
+2 -2
target/hppa/int_helper.c
··· 77 77 { 78 78 env->cr[CR_EIRR] &= ~val; 79 79 qemu_mutex_lock_iothread(); 80 - eval_interrupt(hppa_env_get_cpu(env)); 80 + eval_interrupt(env_archcpu(env)); 81 81 qemu_mutex_unlock_iothread(); 82 82 } 83 83 ··· 85 85 { 86 86 env->cr[CR_EIEM] = val; 87 87 qemu_mutex_lock_iothread(); 88 - eval_interrupt(hppa_env_get_cpu(env)); 88 + eval_interrupt(env_archcpu(env)); 89 89 qemu_mutex_unlock_iothread(); 90 90 } 91 91 #endif /* !CONFIG_USER_ONLY */
+4 -6
target/hppa/mem_helper.c
··· 56 56 57 57 static void hppa_flush_tlb_ent(CPUHPPAState *env, hppa_tlb_entry *ent) 58 58 { 59 - CPUState *cs = CPU(hppa_env_get_cpu(env)); 59 + CPUState *cs = env_cpu(env); 60 60 unsigned i, n = 1 << (2 * ent->page_size); 61 61 uint64_t addr = ent->va_b; 62 62 ··· 329 329 330 330 void HELPER(ptlb)(CPUHPPAState *env, target_ulong addr) 331 331 { 332 - CPUState *src = CPU(hppa_env_get_cpu(env)); 332 + CPUState *src = env_cpu(env); 333 333 CPUState *cpu; 334 334 trace_hppa_tlb_ptlb(env); 335 335 run_on_cpu_data data = RUN_ON_CPU_TARGET_PTR(addr); ··· 346 346 number of pages/entries (we choose all), and is local to the cpu. */ 347 347 void HELPER(ptlbe)(CPUHPPAState *env) 348 348 { 349 - CPUState *src = CPU(hppa_env_get_cpu(env)); 350 349 trace_hppa_tlb_ptlbe(env); 351 350 memset(env->tlb, 0, sizeof(env->tlb)); 352 - tlb_flush_by_mmuidx(src, 0xf); 351 + tlb_flush_by_mmuidx(env_cpu(env), 0xf); 353 352 } 354 353 355 354 void cpu_hppa_change_prot_id(CPUHPPAState *env) 356 355 { 357 356 if (env->psw & PSW_P) { 358 - CPUState *src = CPU(hppa_env_get_cpu(env)); 359 - tlb_flush_by_mmuidx(src, 0xf); 357 + tlb_flush_by_mmuidx(env_cpu(env), 0xf); 360 358 } 361 359 } 362 360
+3 -5
target/hppa/op_helper.c
··· 29 29 30 30 void QEMU_NORETURN HELPER(excp)(CPUHPPAState *env, int excp) 31 31 { 32 - HPPACPU *cpu = hppa_env_get_cpu(env); 33 - CPUState *cs = CPU(cpu); 32 + CPUState *cs = env_cpu(env); 34 33 35 34 cs->exception_index = excp; 36 35 cpu_loop_exit(cs); ··· 38 37 39 38 void QEMU_NORETURN hppa_dynamic_excp(CPUHPPAState *env, int excp, uintptr_t ra) 40 39 { 41 - HPPACPU *cpu = hppa_env_get_cpu(env); 42 - CPUState *cs = CPU(cpu); 40 + CPUState *cs = env_cpu(env); 43 41 44 42 cs->exception_index = excp; 45 43 cpu_loop_exit_restore(cs, ra); ··· 630 628 #ifndef CONFIG_USER_ONLY 631 629 void HELPER(write_interval_timer)(CPUHPPAState *env, target_ureg val) 632 630 { 633 - HPPACPU *cpu = hppa_env_get_cpu(env); 631 + HPPACPU *cpu = env_archcpu(env); 634 632 uint64_t current = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); 635 633 uint64_t timeout; 636 634