mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
s390x/css: ccw translation infrastructure
Implement a basic infrastructure of handling channel I/O instruction interception for passed through subchannels: 1. Branch the code path of instruction interception handling by SubChannel type. 2. For a passed-through subchannel, issue the ORB to kernel to do ccw translation and perform an I/O operation. 3. Assign different condition code based on the I/O result, or trigger a program check. Signed-off-by: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com> Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> Message-Id: <20170517004813.58227-12-bjsdjshi@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
parent
8ca2b376b4
commit
bab482d740
5 changed files with 109 additions and 6 deletions
|
@ -244,6 +244,15 @@ void ioinst_handle_ssch(S390CPU *cpu, uint64_t reg1, uint32_t ipb)
|
|||
case -EBUSY:
|
||||
cc = 2;
|
||||
break;
|
||||
case -EFAULT:
|
||||
/*
|
||||
* TODO:
|
||||
* I'm wondering whether there is something better
|
||||
* to do for us here (like setting some device or
|
||||
* subchannel status).
|
||||
*/
|
||||
program_interrupt(env, PGM_ADDRESSING, 4);
|
||||
return;
|
||||
case 0:
|
||||
cc = 0;
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue