From: Halil Pasic <pasic@linux.vnet.ibm.com>
To: Cornelia Huck <cohuck@redhat.com>,
Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Cc: Thomas Huth <thuth@redhat.com>,
Pierre Morel <pmorel@linux.vnet.ibm.com>,
qemu-devel@nongnu.org, Halil Pasic <pasic@linux.vnet.ibm.com>
Subject: [Qemu-devel] [PATCH v3 2/7] s390x/css: IO instr handler ending control
Date: Tue, 17 Oct 2017 16:04:48 +0200 [thread overview]
Message-ID: <20171017140453.51099-3-pasic@linux.vnet.ibm.com> (raw)
In-Reply-To: <20171017140453.51099-1-pasic@linux.vnet.ibm.com>
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 <pasic@linux.vnet.ibm.com>
---
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
next prev parent reply other threads:[~2017-10-17 14:05 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-17 14:04 [Qemu-devel] [PATCH v3 0/7] improve error handling for IO instr Halil Pasic
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 1/7] s390x/css: be more consistent if broken beyond repair Halil Pasic
2017-10-18 8:13 ` Thomas Huth
2017-10-17 14:04 ` Halil Pasic [this message]
2017-10-17 14:58 ` [Qemu-devel] [PATCH v3 2/7] s390x/css: IO instr handler ending control Cornelia Huck
2017-10-17 16:13 ` Halil Pasic
2017-10-18 8:45 ` Thomas Huth
2017-10-18 9:34 ` Cornelia Huck
2017-10-18 9:13 ` Dong Jia Shi
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 3/7] s390x: improve error handling for SSCH and RSCH Halil Pasic
2017-10-17 15:06 ` Cornelia Huck
2017-10-18 9:30 ` Thomas Huth
2017-10-18 9:52 ` Thomas Huth
2017-10-18 9:58 ` Cornelia Huck
2017-10-18 10:02 ` Thomas Huth
2017-10-18 9:52 ` Cornelia Huck
2017-10-18 10:07 ` Thomas Huth
2017-10-18 11:07 ` Halil Pasic
2017-10-18 11:12 ` Thomas Huth
2017-10-18 11:17 ` Halil Pasic
2017-10-19 6:06 ` Dong Jia Shi
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 4/7] s390x: refactor error handling for XSCH handler Halil Pasic
2017-10-17 15:07 ` Cornelia Huck
2017-10-18 9:33 ` Thomas Huth
2017-10-19 6:11 ` Dong Jia Shi
2017-10-19 9:10 ` Halil Pasic
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 5/7] s390x: refactor error handling for CSCH handler Halil Pasic
2017-10-17 15:09 ` Cornelia Huck
2017-10-18 9:36 ` Thomas Huth
2017-10-19 6:14 ` Dong Jia Shi
2017-10-19 9:11 ` Cornelia Huck
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 6/7] s390x: refactor error handling for HSCH handler Halil Pasic
2017-10-17 15:10 ` Cornelia Huck
2017-10-18 9:55 ` Thomas Huth
2017-10-19 6:17 ` Dong Jia Shi
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 7/7] s390x: refactor error handling for MSCH handler Halil Pasic
2017-10-17 15:11 ` Cornelia Huck
2017-10-18 10:00 ` Thomas Huth
2017-10-18 10:02 ` Cornelia Huck
2017-10-18 11:01 ` Halil Pasic
2017-10-19 6:23 ` Dong Jia Shi
2017-10-17 15:13 ` [Qemu-devel] [PATCH v3 0/7] improve error handling for IO instr Cornelia Huck
2017-10-17 16:19 ` Halil Pasic
2017-10-18 7:38 ` Cornelia Huck
2017-10-18 8:23 ` Dong Jia Shi
2017-10-18 9:53 ` Cornelia Huck
2017-10-19 6:01 ` Dong Jia Shi
2017-10-18 12:50 ` Cornelia Huck
2017-10-19 10:46 ` Cornelia Huck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171017140453.51099-3-pasic@linux.vnet.ibm.com \
--to=pasic@linux.vnet.ibm.com \
--cc=bjsdjshi@linux.vnet.ibm.com \
--cc=cohuck@redhat.com \
--cc=pmorel@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).