Revision cd7a0f4c target-s390x/kvm.c

b/target-s390x/kvm.c
597 597
    return 0;
598 598
}
599 599

  
600
static int s390_store_status(CPUS390XState *env, uint32_t parameter)
601
{
602
    /* XXX */
603
    fprintf(stderr, "XXX SIGP store status\n");
604
    return -1;
605
}
606

  
607 600
static int s390_cpu_initial_reset(S390CPU *cpu)
608 601
{
609 602
    CPUState *cs = CPU(cpu);
......
629 622
{
630 623
    CPUS390XState *env = &cpu->env;
631 624
    uint8_t order_code;
632
    uint32_t parameter;
633 625
    uint16_t cpu_addr;
634
    uint8_t t;
635 626
    int r = -1;
636 627
    S390CPU *target_cpu;
637
    CPUS390XState *target_env;
638 628

  
639 629
    cpu_synchronize_state(CPU(cpu));
640 630

  
......
645 635
    }
646 636
    order_code += (run->s390_sieic.ipb & 0x0fff0000) >> 16;
647 637

  
648
    /* get parameters */
649
    t = (ipa1 & 0xf0) >> 4;
650
    if (!(t % 2)) {
651
        t++;
652
    }
653

  
654
    parameter = env->regs[t] & 0x7ffffe00;
655 638
    cpu_addr = env->regs[ipa1 & 0x0f];
656

  
657 639
    target_cpu = s390_cpu_addr2state(cpu_addr);
658 640
    if (target_cpu == NULL) {
659 641
        goto out;
660 642
    }
661
    target_env = &target_cpu->env;
662 643

  
663 644
    switch (order_code) {
664 645
        case SIGP_RESTART:
665 646
            r = kvm_s390_cpu_restart(target_cpu);
666 647
            break;
667
        case SIGP_STORE_STATUS_ADDR:
668
            r = s390_store_status(target_env, parameter);
669
            break;
670 648
        case SIGP_SET_ARCH:
671 649
            /* make the caller panic */
672 650
            return -1;

Also available in: Unified diff