{"id":241,"date":"2013-07-24T11:29:37","date_gmt":"2013-07-24T16:29:37","guid":{"rendered":"http:\/\/tommysprinkle.com\/mvssp\/?page_id=241"},"modified":"2013-07-24T11:29:37","modified_gmt":"2013-07-24T16:29:37","slug":"370-io-reference-summary","status":"publish","type":"page","link":"https:\/\/tommysprinkle.com\/mvssp\/370-io-reference-summary\/","title":{"rendered":"370 I\/O Reference Summary"},"content":{"rendered":"<div class=\"tab-me-wrapper\"><ul class=\"tab-me-tabs\"><li class=\"active\"><a href=\"javascript:void(0)\" rel=\"tab1740\"><span>CCW<\/span><\/a><\/li><li><a href=\"javascript:void(0)\" rel=\"tab1357\"><span>CSW<\/span><\/a><\/li><\/ul><!-- .tab-me-tabs --><div class=\"tab-me-content-wrapper\"><div class=\"tab-me-tab-content\" id=\"tab1740\" ><br \/>\nA CWW is 64 bits (8 bytes) in length. Here is the layout of the CCW<\/p>\n<pre> 0        8        16       24       32       40       48       56\r\n+--------+--------+--------+--------+--------+--------+--------+--------+\r\n|  CMD   |    Data Addr (24 bits)   | FLAGS  |00000000|    Length       |\r\n+--------+--------+--------+--------+--------+--------+--------+--------+\r\n<\/pre>\n<p><strong>Command Code<\/strong> (Bits 0-7) Specifies the I\/O operation to be performed.<\/p>\n<p><strong>Data Address<\/strong> (Bits 8-31) Specifies the location in main storage for the data associated with the I\/O operation.<\/p>\n<p><strong>Chain Data Flag (CD)<\/strong> (Bit 32) When set to one indicates the chaining of data. It causes the storage area of the next CCW to be used with the current I\/O operation. The use of data chaining allows data to be transferred to or from noncontiguous areas of storage in a single I\/O operation.<\/p>\n<p><strong>Command Chain (CC)<\/strong> (Bit 33) When set to one, and when the CD flag is set to zero, indicates the chaining of commands. When the operation of the current CCW is complete and Command Chaining is active, the next CCW will become the new current I\/O operation.<\/p>\n<p><strong>Suppress Length Indication (SLI)<\/strong> (Bit 34) When set to one and the CD flag is set to zero, the incorrect length indication is suppressed.<\/p>\n<p><strong>Skip (SKIP)<\/strong> (Bit 35) When set to one the transfer of information is suppressed for read and sense operations.<\/p>\n<p><strong>Program Controlled Interrupt (PCI)<\/strong> (Bit 36) When set to one the channel will generate an interruption condition when the CCW begins execution in the channel.<\/p>\n<p><strong>Indirect Data Address (IDA)<\/strong> (Bit 37) When set to one indicates indirect addressing. The data address of the CCW points to an Indirect Address List instead of directly to the data.<\/p>\n<p><strong>Count<\/strong> (Bits 48-63) Specifies the number of bytes to be used for the I\/O operation.<\/p>\n<p>Bits 38-47 should always be set to zeros.<\/p>\n<pre><strong>Flag Summary<\/strong>\r\n80 - Chain Data\r\n40 - Command Chain\r\n20 - Suppress Incorrect Length\r\n10 - Skip\r\n08 - PCI\r\n04 - Indirect Data Address<\/pre>\n<p><\/div><div class=\"tab-me-tab-content\" id=\"tab1357\" style=\"display:none\"><\/p>\n<pre>\r\n+--------+--------+--------+--------+--------+--------+--------+--------+\r\n|        |                          |ASCBCDUU|PIPPCCIC|                 |\r\n|KKKK0LCC|  Last CSW Addr + 8       |TMUSEECE|CLCEDCCC| Residual Length |\r\n|        |                          |  EY    |I   CCC |                 |\r\n+--------+--------+--------+--------+--------+--------+--------+--------+\r\n<\/pre>\n<p><strong>Protection Key<\/strong> (Bits 0-3) indicates the protection key used for the I\/O operation.<\/p>\n<p><strong>Logout Pending (L) <\/strong>(Bit 5) When set to one it indicates that an I\/O instruction cannot be executed until a pending logout condition has been cleared.<\/p>\n<p><strong>Deferred Condition Code (CC) <\/strong>(Bits 6-7) Indicate a different condition code available for a Start I\/O Fast Release after a condition code of zero was returned.<\/p>\n<p><strong>CCW Address <\/strong>(Bits 8-31) Indicate an address eight bytes greater than the last CCW used.<\/p>\n<p><strong>Status <\/strong>(Bits 32-47) These bits identify the condition that caused the CSW to be stored.<\/p>\n<ul>\n<li><strong>32 Attention<\/strong> \u2013 The device has detected an asynchronous condition significant to the program<\/li>\n<li><strong>33 Status Modifier<\/strong> \u2013 Indicates the device cannot provide its current status in response to a TEST I\/O, when the control unit is busy, when the normal sequence of commands has to be modified or when command retry is to be initiated.<\/li>\n<li><strong>34 Control Unit End<\/strong> \u2013 Indicates the control unit has become available for use for another operation.<\/li>\n<li><strong>35 Busy <\/strong>\u2013 Indicates the I\/O device cannot execute the command because it is executing a previously initiated operation or because there is a pending interrupt condition.<\/li>\n<li><strong>36 Channel End <\/strong>\u2013 Indicates completion of the portion of an I\/O operation involving the transfer of data or control information between the I\/O device and the channel.\u00a0 When command chaining is used Channel End is generated only for the last operation.<\/li>\n<li><strong>37 Device End<\/strong> \u2013 Indicates the completion of an I\/O operation by the device.\u00a0 When command chaining is used only the Device End condition for the last operation in the chain is reported.<\/li>\n<li><strong>38 Unit Check<\/strong> \u2013 Indicates the I\/O device or control unit has detected an unusual condition and additional detail information is available to a sense command.<\/li>\n<li><strong>39 Unit Exception <\/strong>\u2013 Indicates a condition reported by an I\/O device that does not usually occur.<\/li>\n<li><strong>40 Program Controlled Interruption<\/strong> \u2013 This condition is generated when a channel fetches a CCW with the PCI flag set.<\/li>\n<li><strong>41 Incorrect Length<\/strong> \u2013 Indicates the number of bytes in storage assigned to the I\/O operation is not equal to the number of bytes requested by the device.<\/li>\n<li><strong>42 Program Check <\/strong>\u2013 Indicates a programming error in the channel program.\u00a0 Can occur as a result of an invalid address in the CAW or a TIC CCW, an invalid command code, an invalid count in a CCW, an invalid data address, an invalid CAW format, an invalid CCW format or an invalid sequence of CCWs.<\/li>\n<li><strong>43 Protection Exception<\/strong> \u2013 Indicates the channel attempted to access storage that is prohibited by storage protection.<\/li>\n<li><strong>44 Channel Data Check <\/strong>\u2013 Indicates a machine error has occurred causing a parity error.<\/li>\n<li><strong>45 Channel Control Check<\/strong> \u2013 Indicates a machine error.<\/li>\n<li><strong>46 Interface Control Check<\/strong> \u2013 Indicates an invalid signal occurred on the I\/O interface.<\/li>\n<li><strong>47 Chaining Check<\/strong> \u2013 Indicates a channel overrun during data chaining operations.<\/li>\n<\/ul>\n<p><strong>Count<\/strong> (Bits 48-63) Contain the residual count for the last CCW.<\/p>\n<pre>\r\n<string>Flag Summary<\/strong>\r\n80 00 - Attention\r\n40 00 - Status Modifier\r\n20 00 - Control Unit End\r\n10 00 - Busy\r\n08 00 - Channel End\r\n04 00 - Device End\r\n02 00 - Unit Check (Sense Available)\r\n01 00 - Unit Exception (DASD EOF)\r\n00 80 - PCI\r\n00 40 - Incorrect Length\r\n00 20 - Program Check\r\n00 10 - Protection Exception\r\n00 08 - Channel Data Check\r\n00 04 - Channel Control Check\r\n00 02 - Interface Control Check\r\n00 01 - Chaining Check\r\n<\/pre>\n<p><\/div><\/div><\/div><!-- .tabs-wrapper -->\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-241","page","type-page","status-publish","hentry"],"jetpack_shortlink":"https:\/\/wp.me\/P3x7AW-3T","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tommysprinkle.com\/mvssp\/wp-json\/wp\/v2\/pages\/241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tommysprinkle.com\/mvssp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tommysprinkle.com\/mvssp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tommysprinkle.com\/mvssp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tommysprinkle.com\/mvssp\/wp-json\/wp\/v2\/comments?post=241"}],"version-history":[{"count":4,"href":"https:\/\/tommysprinkle.com\/mvssp\/wp-json\/wp\/v2\/pages\/241\/revisions"}],"predecessor-version":[{"id":245,"href":"https:\/\/tommysprinkle.com\/mvssp\/wp-json\/wp\/v2\/pages\/241\/revisions\/245"}],"wp:attachment":[{"href":"https:\/\/tommysprinkle.com\/mvssp\/wp-json\/wp\/v2\/media?parent=241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}