[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 2/7] s390x/css: IO instr handler ending control
From: |
Halil Pasic |
Subject: |
[Qemu-devel] [PATCH v3 2/7] s390x/css: IO instr handler ending control |
Date: |
Tue, 17 Oct 2017 16:04:48 +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 type 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 | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/include/hw/s390x/css.h b/include/hw/s390x/css.h
index 69b374730e..7e0dbd162f 100644
--- a/include/hw/s390x/css.h
+++ b/include/hw/s390x/css.h
@@ -99,6 +99,22 @@ typedef struct CcwDataStream {
hwaddr cda;
} CcwDataStream;
+/*
+ * IO instructions conclude according this. Currently we have only
+ * cc codes. Valid values are 0,1,2,3 and the generic semantic for
+ * IO instructions is described briefly. For more details consult the PoP.
+ */
+typedef enum IOInstEnding {
+ /* produced expected result */
+ IOINST_CC_EXPECTED = 0,
+ /* status conditions were present or produced alternate result */
+ IOINST_CC_STATUS_PRESENT = 1,
+ /* inst. ineffective because busy with previously initiated function */
+ IOINST_CC_BUSY = 2,
+ /* inst. ineffective because not operational */
+ IOINST_CC_NOT_OPERATIONAL = 3
+} IOInstEnding;
+
typedef struct SubchDev SubchDev;
struct SubchDev {
/* channel-subsystem related things: */
--
2.13.5
- Re: [Qemu-devel] [PATCH v3 3/7] s390x: improve error handling for SSCH and RSCH, (continued)
- Re: [Qemu-devel] [PATCH v3 3/7] s390x: improve error handling for SSCH and RSCH, Cornelia Huck, 2017/10/18
- Re: [Qemu-devel] [PATCH v3 3/7] s390x: improve error handling for SSCH and RSCH, Thomas Huth, 2017/10/18
- Re: [Qemu-devel] [PATCH v3 3/7] s390x: improve error handling for SSCH and RSCH, Halil Pasic, 2017/10/18
- Re: [Qemu-devel] [PATCH v3 3/7] s390x: improve error handling for SSCH and RSCH, Thomas Huth, 2017/10/18
- Re: [Qemu-devel] [PATCH v3 3/7] s390x: improve error handling for SSCH and RSCH, Halil Pasic, 2017/10/18
Re: [Qemu-devel] [PATCH v3 3/7] s390x: improve error handling for SSCH and RSCH, Dong Jia Shi, 2017/10/19
[Qemu-devel] [PATCH v3 2/7] s390x/css: IO instr handler ending control,
Halil Pasic <=
[Qemu-devel] [PATCH v3 6/7] s390x: refactor error handling for HSCH handler, Halil Pasic, 2017/10/17
Re: [Qemu-devel] [PATCH v3 0/7] improve error handling for IO instr, Cornelia Huck, 2017/10/17