This patch-set improves the Service-Call Logical Processor support for s390. This version addresses comments from Blueswirl and Andreas Färber.
Patch 1 is a bugfix for the current code, dealing with error and condition code handling. Patch 2 introduces a new file under target-s390 which will provide floating interrupt support. Patch 3 adds/changes some base SCLP support. Patch 4 adds code to support the SCLP commands Write Event Mask, Write Event Data, and Read Event Data. Patch 5 and 6 add code to implement the commands for the particular SCLP events Signal Quiesce (system_powerdown), and ASCII Console data. Patch 7 (s390: make sclp ascii console the default) is currently optional as it requires a kernel fix in the guest (http://git.kernel.org/?p=virt/kvm/kvm.git;a=commit;h=cd1834591fe9564720ac4b0193bf1c790fe89f0d KVM: s390: Perform early event mask processing during boot) For testing patches 6 and 7 on older kernels the kernel command line console=ttyS1 can be used. Thanks Christian Borntraeger (3): s390: Fix error handling and condition code of service call s390: provide interface for service interrupt/introduce interrupt.c s390: make sclp ascii console the default Heinz Graalfs (4): s390: sclp base support s390: sclp event support s390: sclp signal quiesce support s390: sclp ascii console support hw/s390-virtio.c | 3 +- hw/s390x/Makefile.objs | 3 + hw/s390x/event-facility.c | 397 ++++++++++++++++++++++++++++++++++++++++++++ hw/s390x/event-facility.h | 107 ++++++++++++ hw/s390x/sclp.c | 187 +++++++++++++++++++++ hw/s390x/sclp.h | 123 ++++++++++++++ hw/s390x/sclpconsole.c | 323 +++++++++++++++++++++++++++++++++++ hw/s390x/sclpquiesce.c | 112 +++++++++++++ target-s390x/Makefile.objs | 2 +- target-s390x/cpu.h | 17 +-- target-s390x/interrupt.c | 29 ++++ target-s390x/kvm.c | 10 +- target-s390x/op_helper.c | 68 +++----- vl.c | 44 +++++ 14 files changed, 1358 insertions(+), 67 deletions(-) create mode 100644 hw/s390x/event-facility.c create mode 100644 hw/s390x/event-facility.h create mode 100644 hw/s390x/sclp.c create mode 100644 hw/s390x/sclp.h create mode 100644 hw/s390x/sclpconsole.c create mode 100644 hw/s390x/sclpquiesce.c create mode 100644 target-s390x/interrupt.c