Statistics
| Branch: | Revision:

root / target-s390x / interrupt.c @ 9c17d615

History | View | Annotate | Download (748 Bytes)

1
/*
2
 * QEMU S/390 Interrupt support
3
 *
4
 * Copyright IBM, Corp. 2012
5
 *
6
 * This work is licensed under the terms of the GNU GPL, version 2 or (at your
7
 * option) any later version.  See the COPYING file in the top-level directory.
8
 */
9

    
10
#include "cpu.h"
11
#include "sysemu/kvm.h"
12

    
13
#if !defined(CONFIG_USER_ONLY)
14
/* service interrupts are floating therefore we must not pass an cpustate */
15
void s390_sclp_extint(uint32_t parm)
16
{
17
    S390CPU *dummy_cpu = s390_cpu_addr2state(0);
18
    CPUS390XState *env = &dummy_cpu->env;
19

    
20
    if (kvm_enabled()) {
21
#ifdef CONFIG_KVM
22
        kvm_s390_interrupt_internal(env, KVM_S390_INT_SERVICE, parm, 0, 1);
23
#endif
24
    } else {
25
        env->psw.addr += 4;
26
        cpu_inject_ext(env, EXT_SERVICE, parm, 0);
27
    }
28
}
29
#endif