Abstract -------- The objective of this series is introducing CCW IDA (indirect data access) support to our virtual channel subsystem implementation. Briefly CCW IDA can be thought of as a kind of a scatter gather support for a single CCW. If certain flags are set, the cda is to be interpreted as an address to a list which in turn holds further addresses designating the actual data. Thus the scheme which we are currently using for accessing CCW payload does not work in general case. Currently there is no immediate need for proper IDA handling (no use case), but since it IDA is a non-optional part of the architecture, the only way towards AR compliance is actually implementing IDA.
The focus of this patch set is introducing IDA support. There seems to be a potential for further improvements based on the introduced infrastructure, but such improvements are intended to be discusses separately and realized as patches on top of this series. Testing ------- On request the things meant for testing from v1 were factored out into a separate series (requested by Connie). Please look for the series 'tests for CCW IDA' (see [1]) or use the stuff form v1. [1] https://lists.nongnu.org/archive/html/qemu-devel/2017-09/msg03489.html Changelog --------- v3 --> v4: * fixed the first level address limit check in patch #5 * refactored second level address limit check in patch #5 * nits in patch #5 * rebased, otherwise patches #1-#4 unchanged * added an r-b for patch #3 v2 --> v3: * added maximum data address checking (see patch #4) (Dong Jia) To not mix converting to the new infrastructure and changing behavior, this is done after the conversion. For IDA the same (on both IDAL and data level) is now a part of the respective patch (was missing in v2). * even less nits, and improved aesthetics (mostly Dong Jia) v1 --> v2: * factored out the stuff added only for testing * use g_assert instead of assert * fixed a lot's of typos * removed some TODOs addressed by another series of mine * refactored ccw_dstream_rw_ida (structured programming) * done some rewording of commit message #3 Halil Pasic (5): s390x/css: introduce css data stream s390x/css: use ccw data stream virtio-ccw: use ccw data stream 390x/css: introduce maximum data address checking s390x/css: support ccw IDA hw/s390x/css.c | 186 +++++++++++++++++++++++++++++++++++++++++++++++-- hw/s390x/virtio-ccw.c | 155 ++++++++++++----------------------------- include/hw/s390x/css.h | 68 ++++++++++++++++++ 3 files changed, 296 insertions(+), 113 deletions(-) -- 2.13.5