[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control
From: |
Halil Pasic |
Subject: |
[Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control |
Date: |
Wed, 4 Oct 2017 17:41:38 +0200 |
CSS code needs to tell the IO instruction handlers located in how should
the emulated instruction be ended. Currently this is done by returning
generic (POSIX) error codes, and mapping them to outcomes like condition
codes. This makes bugs easy to create and hard to recognise.
As a preparation for moving a way form (mis)using generic error codes for
flow control let us introduce a struct which tells the instruction
handler function how to end the instruction, in a more straight-forward
and less ambiguous way.
Signed-off-by: Halil Pasic <address@hidden>
---
include/hw/s390x/css.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/include/hw/s390x/css.h b/include/hw/s390x/css.h
index 0653d3c9be..66916b6546 100644
--- a/include/hw/s390x/css.h
+++ b/include/hw/s390x/css.h
@@ -75,6 +75,18 @@ typedef struct CMBE {
uint32_t reserved[7];
} QEMU_PACKED CMBE;
+/* IO instructions conclude according this */
+typedef struct IOInstEnding {
+ /*
+ * General semantic of cc codes of IO instructions is (brief):
+ * 0 -- produced expected result
+ * 1 -- status conditions were present or produced alternate result
+ * 2 -- ineffective, because busy with previously initiated function
+ * 3 -- ineffective, not operational
+ */
+ int cc;
+} IOInstEnding;
+
typedef struct SubchDev SubchDev;
struct SubchDev {
/* channel-subsystem related things: */
--
2.13.5
- Re: [Qemu-devel] [PATCH v2 3/8] s390x: improve error handling for SSCH and RSCH, (continued)
Re: [Qemu-devel] [PATCH v2 3/8] s390x: improve error handling for SSCH and RSCH, Dong Jia Shi, 2017/10/10
[Qemu-devel] [PATCH v2 5/8] s390x: refactor error handling for CSCH handler, Halil Pasic, 2017/10/04
[Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control,
Halil Pasic <=
- Re: [Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control, Thomas Huth, 2017/10/09
- Re: [Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control, Halil Pasic, 2017/10/09
- Re: [Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control, Thomas Huth, 2017/10/09
- Re: [Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control, Halil Pasic, 2017/10/09
- Re: [Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control, Thomas Huth, 2017/10/10
- Re: [Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control, Cornelia Huck, 2017/10/10
- Re: [Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control, Halil Pasic, 2017/10/10
- Re: [Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control, Halil Pasic, 2017/10/10
- Re: [Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control, Thomas Huth, 2017/10/12
- Re: [Qemu-devel] [PATCH v2 2/8] s390x/css: IO instr handler ending control, Halil Pasic, 2017/10/12