Lines Matching refs:dst_cpu

38 static void sigp_sense(S390CPU *dst_cpu, SigpInfo *si)  in sigp_sense()  argument
40 uint8_t state = s390_cpu_get_state(dst_cpu); in sigp_sense()
41 bool ext_call = dst_cpu->env.pending_int & INTERRUPT_EXTERNAL_CALL; in sigp_sense()
64 static void sigp_external_call(S390CPU *src_cpu, S390CPU *dst_cpu, SigpInfo *si) in sigp_external_call() argument
74 ret = cpu_inject_external_call(dst_cpu, src_cpu->env.core_id); in sigp_external_call()
82 static void sigp_emergency(S390CPU *src_cpu, S390CPU *dst_cpu, SigpInfo *si) in sigp_emergency() argument
90 cpu_inject_emergency_signal(dst_cpu, src_cpu->env.core_id); in sigp_emergency()
303 static void sigp_cond_emergency(S390CPU *src_cpu, S390CPU *dst_cpu, in sigp_cond_emergency() argument
318 idle = CPU(dst_cpu)->halted; in sigp_cond_emergency()
319 psw_addr = dst_cpu->env.psw.addr; in sigp_cond_emergency()
320 psw_mask = dst_cpu->env.psw.mask; in sigp_cond_emergency()
322 p_asn = dst_cpu->env.cregs[4] & 0xffff; /* Primary ASN */ in sigp_cond_emergency()
323 s_asn = dst_cpu->env.cregs[3] & 0xffff; /* Secondary ASN */ in sigp_cond_emergency()
325 if (s390_cpu_get_state(dst_cpu) != S390_CPU_STATE_STOPPED || in sigp_cond_emergency()
329 cpu_inject_emergency_signal(dst_cpu, src_cpu->env.core_id); in sigp_cond_emergency()
337 static void sigp_sense_running(S390CPU *dst_cpu, SigpInfo *si) in sigp_sense_running() argument
352 if (CPU(dst_cpu)->halted) { in sigp_sense_running()
359 static int handle_sigp_single_dst(S390CPU *cpu, S390CPU *dst_cpu, uint8_t order, in handle_sigp_single_dst() argument
368 if (dst_cpu == NULL) { in handle_sigp_single_dst()
373 if (dst_cpu->env.sigp_order != 0 && in handle_sigp_single_dst()
381 sigp_sense(dst_cpu, &si); in handle_sigp_single_dst()
384 sigp_external_call(cpu, dst_cpu, &si); in handle_sigp_single_dst()
387 sigp_emergency(cpu, dst_cpu, &si); in handle_sigp_single_dst()
390 run_on_cpu(CPU(dst_cpu), sigp_start, RUN_ON_CPU_HOST_PTR(&si)); in handle_sigp_single_dst()
393 run_on_cpu(CPU(dst_cpu), sigp_stop, RUN_ON_CPU_HOST_PTR(&si)); in handle_sigp_single_dst()
396 run_on_cpu(CPU(dst_cpu), sigp_restart, RUN_ON_CPU_HOST_PTR(&si)); in handle_sigp_single_dst()
399 run_on_cpu(CPU(dst_cpu), sigp_stop_and_store_status, RUN_ON_CPU_HOST_PTR(&si)); in handle_sigp_single_dst()
402 run_on_cpu(CPU(dst_cpu), sigp_store_status_at_address, RUN_ON_CPU_HOST_PTR(&si)); in handle_sigp_single_dst()
405 run_on_cpu(CPU(dst_cpu), sigp_store_adtl_status, RUN_ON_CPU_HOST_PTR(&si)); in handle_sigp_single_dst()
408 run_on_cpu(CPU(dst_cpu), sigp_set_prefix, RUN_ON_CPU_HOST_PTR(&si)); in handle_sigp_single_dst()
411 run_on_cpu(CPU(dst_cpu), sigp_initial_cpu_reset, RUN_ON_CPU_HOST_PTR(&si)); in handle_sigp_single_dst()
414 run_on_cpu(CPU(dst_cpu), sigp_cpu_reset, RUN_ON_CPU_HOST_PTR(&si)); in handle_sigp_single_dst()
417 sigp_cond_emergency(cpu, dst_cpu, &si); in handle_sigp_single_dst()
420 sigp_sense_running(dst_cpu, &si); in handle_sigp_single_dst()
460 S390CPU *dst_cpu = NULL; in handle_sigp() local
474 dst_cpu = s390_cpu_addr2state(env->regs[r3]); in handle_sigp()
475 ret = handle_sigp_single_dst(cpu, dst_cpu, order, param, status_reg); in handle_sigp()
481 dst_cpu ? CPU(dst_cpu)->cpu_index : -1, ret); in handle_sigp()