Lines Matching refs:si
31 static void set_sigp_status(SigpInfo *si, uint64_t status) in set_sigp_status() argument
33 *si->status_reg &= 0xffffffff00000000ULL; in set_sigp_status()
34 *si->status_reg |= status; in set_sigp_status()
35 si->cc = SIGP_CC_STATUS_STORED; in set_sigp_status()
38 static void sigp_sense(S390CPU *dst_cpu, SigpInfo *si) in sigp_sense() argument
46 set_sigp_status(si, SIGP_STAT_INVALID_ORDER); in sigp_sense()
52 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_sense()
60 set_sigp_status(si, status); in sigp_sense()
64 static void sigp_external_call(S390CPU *src_cpu, S390CPU *dst_cpu, SigpInfo *si) in sigp_external_call() argument
70 set_sigp_status(si, SIGP_STAT_INVALID_ORDER); in sigp_external_call()
76 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_external_call()
78 set_sigp_status(si, SIGP_STAT_EXT_CALL_PENDING); in sigp_external_call()
82 static void sigp_emergency(S390CPU *src_cpu, S390CPU *dst_cpu, SigpInfo *si) in sigp_emergency() argument
86 set_sigp_status(si, SIGP_STAT_INVALID_ORDER); in sigp_emergency()
91 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_emergency()
97 SigpInfo *si = arg.host_ptr; in sigp_start() local
100 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_start()
105 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_start()
111 SigpInfo *si = arg.host_ptr; in sigp_stop() local
114 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_stop()
126 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_stop()
132 SigpInfo *si = arg.host_ptr; in sigp_stop_and_store_status() local
151 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_stop_and_store_status()
157 SigpInfo *si = arg.host_ptr; in sigp_store_status_at_address() local
158 uint32_t address = si->param & 0x7ffffe00u; in sigp_store_status_at_address()
162 set_sigp_status(si, SIGP_STAT_INCORRECT_STATE); in sigp_store_status_at_address()
169 set_sigp_status(si, SIGP_STAT_INVALID_PARAMETER); in sigp_store_status_at_address()
172 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_store_status_at_address()
179 SigpInfo *si = arg.host_ptr; in sigp_store_adtl_status() local
180 uint8_t lc = si->param & ADTL_SAVE_LC_MASK; in sigp_store_adtl_status()
181 hwaddr addr = si->param & ~ADTL_SAVE_LC_MASK; in sigp_store_adtl_status()
186 set_sigp_status(si, SIGP_STAT_INVALID_ORDER); in sigp_store_adtl_status()
192 set_sigp_status(si, SIGP_STAT_INCORRECT_STATE); in sigp_store_adtl_status()
198 set_sigp_status(si, SIGP_STAT_INVALID_PARAMETER); in sigp_store_adtl_status()
205 set_sigp_status(si, SIGP_STAT_INVALID_PARAMETER); in sigp_store_adtl_status()
215 set_sigp_status(si, SIGP_STAT_INVALID_PARAMETER); in sigp_store_adtl_status()
222 set_sigp_status(si, SIGP_STAT_INVALID_PARAMETER); in sigp_store_adtl_status()
225 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_store_adtl_status()
231 SigpInfo *si = arg.host_ptr; in sigp_restart() local
249 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_restart()
256 SigpInfo *si = arg.host_ptr; in sigp_initial_cpu_reset() local
261 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_initial_cpu_reset()
268 SigpInfo *si = arg.host_ptr; in sigp_cpu_reset() local
273 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_cpu_reset()
279 SigpInfo *si = arg.host_ptr; in sigp_set_prefix() local
280 uint32_t addr = si->param & 0x7fffe000u; in sigp_set_prefix()
287 set_sigp_status(si, SIGP_STAT_INVALID_PARAMETER); in sigp_set_prefix()
293 set_sigp_status(si, SIGP_STAT_INCORRECT_STATE); in sigp_set_prefix()
300 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_set_prefix()
304 SigpInfo *si) in sigp_cond_emergency() argument
313 set_sigp_status(si, SIGP_STAT_INVALID_ORDER); in sigp_cond_emergency()
321 asn = si->param; in sigp_cond_emergency()
331 set_sigp_status(si, SIGP_STAT_INCORRECT_STATE); in sigp_cond_emergency()
334 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_cond_emergency()
337 static void sigp_sense_running(S390CPU *dst_cpu, SigpInfo *si) in sigp_sense_running() argument
341 set_sigp_status(si, SIGP_STAT_INVALID_ORDER); in sigp_sense_running()
347 set_sigp_status(si, SIGP_STAT_INVALID_ORDER); in sigp_sense_running()
353 set_sigp_status(si, SIGP_STAT_NOT_RUNNING); in sigp_sense_running()
355 si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; in sigp_sense_running()
362 SigpInfo si = { in handle_sigp_single_dst() local
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()
423 set_sigp_status(&si, SIGP_STAT_INVALID_ORDER); in handle_sigp_single_dst()
426 return si.cc; in handle_sigp_single_dst()
489 SigpInfo si = {}; in s390_cpu_restart() local
491 run_on_cpu(CPU(cpu), sigp_restart, RUN_ON_CPU_HOST_PTR(&si)); in s390_cpu_restart()