Execute Channel Program: Difference between revisions

Content deleted Content added
No edit summary
Tags: Reverted references removed Mobile edit Mobile web edit
BunnysBot (talk | contribs)
Fix CW Errors with GenFixes (T1)
 
(5 intermediate revisions by 5 users not shown)
Line 2:
{{See also|EXCPVR}}
{{more citations needed|date=June 2012}}
In [[IBM mainframe]] [[operating system]]s, '''Execute Channel Program''' ('''EXCP''') is a [[Macro (computer science)|macro]] generating a [[system call]], implemented as a [[Supervisor Call instruction]], for low-level device access, where the programmer is responsible for providing a ''[[Channel program#Channel Program|channel program]]''—a list of device-specific andcommands DOS/360(CCWs)—to throughbe [[zexecuted by I/VSE]]O channels, control units and devices.<ref name="Hannula1974">{{cite book
| author=Reino Hannula
| title=Computers and Programming: A System/360-370 Assembler Language Approach
| url=https://books.google.com/books?id=0MgmAAAAMAAJ
| year=1974
| publisher=Houghton Mifflin
| isbn=978-0-395-16796-0
| page=431
}}</ref><ref name="Kapur1970">{{cite book
| author=Gopal K. Kapur
| title=IBM 360 Assembler Language Programming
| url=https://archive.org/details/ibm360assemblerl00kapu/page/453
| url-access=registration
| date=1 January 1970
| publisher=John Wiley & Sons
| isbn=978-0-471-45840-1
| pages=[https://archive.org/details/ibm360assemblerl00kapu/page/453 453–454, 456–459, 461]
}}</ref> EXCP for [[OS/360 and successors]]<ref name="Johnson1989">{{cite book
| author=Robert H. Johnson
| title=MVS: concepts and facilities
| url=https://books.google.com/books?id=HIFQAAAAMAAJ
| date=June 1989
| publisher=Intertext Publications
| isbn=978-0-07-032673-6
| page=558
}}</ref><ref>{{cite book
| publisher = IBM
| title = z/OS Version 2 Release 4 DFSMSdfp Advanced Services
| date = August 2020
| section = Chapter 4. Executing Your Own Channel Programs
| pages = 151–210
| section-url = https://www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc236861/$file/idas300_v2r4.pdf#page=181
| url = https://www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc236861/$file/idas300_v2r4.pdf
| id = SC23-6861-40}}
</ref> is more specifically described in the OS System Programmer's Guide.;<ref>{{cite book|publisher=IBM|title=IBM System/360 Operating System System Programmer's Guide|id=C28-6550-2|date=March 1967|url=http://www.bitsavers.org/pdf/ibm/360/os/R01-08/C28-6550-2_OSsysPrmg_Mar67.pdf}}</ref> EXCP for [[DOS/360 and successors]]<ref name="Stotts1990">{{cite book
| author=Gary A. Stotts
| title=DOS/VSE: Introduction to the Operating System
| date=1 August 1990
| publisher=QED Information Sciences
| isbn=978-0-89435-332-1
| page=18
}}</ref> is more specifically described in DOS Supervisor and I/O Macros.<ref name=GC24-S037-12>{{cite book
| title = DOS Supervisor and I/O Macros
| id = GC24-S037-12
| publisher = IBM
| url = http://bitsavers.org/pdf/ibm/360/dos/GC24-5037-12_DOS_Supervisor_and_IO_Macros_Oct73.pdf
}}
</ref><ref name=SC34-2709>
{{cite book
| publisher = IBM
| title = IBM z/VSE Version 6 Release 1 System Macros User's Guide
| year = 2015
| url = http://publibfp.dhe.ibm.com/epubs/pdf/iesmge40.pdf
| id = SC34-2709-00}}
</ref>
This article mostly reflects OS/360 through [[z/OS]]; some details are different for TOS/360 and DOS/360 through [[z/VSE]].
 
==Specifying datasets==
Line 22 ⟶ 77:
| page = 46
| url = http://www.bitsavers.org/pdf/ibm/360/os/R21.7_Apr73/GC28-6550-11_Data_Management_for_System_Programmers_Rel_21.7_Apr73.pdf
| workseries = =IBM Systems Reference Library
| access-date = June 28, 2022
}}
Line 28 ⟶ 83:
*A program that is APF authorized, running in a system (0-7) key or in Supervisor Mode may use any appendage.
*A program may use any appendage that is automatically selected by OPEN for the use of an access method.
*A program may use any appendage that is defined at IPL time in IEAAPP00.{{sfn|DFSMSdfp|loc=[https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc236861/$file/idas300_v2r4.pdf#page=231 The Authorized Appendage List (IEAAPP00)], |pp=201-202}}
}} to override or augment many of the system security and data integrity checks. Most of these appendages are supported for compatibility with earlier instances of the OS, but the functions of several have been modified or extended for MVS. The appendages are specified in the DCB as the last two characters of the module name IGG019xx, where xx = WA to Z9, inclusive. These module names are reserved for installation-written appendages. Any other name of the form IGG019xx is reserved for use by IBM access methods.<ref>{{efn|1=IGG = I/O Support component prefix; 019 = Open SVC sub-component; xx = sub-function</ref>}} Appendages must reside in SYS1.SVCLIB (SYS1.LPALIB in SVS or later instances of the OS).
 
==Dataset integrity==
Line 35 ⟶ 90:
 
==Legacy datasets only==
EXCP is sometimes confused with a direct access storage device access method, but it is not for direct access storage devices exclusively; rather, it is a general purpose low-level device access interface which supports any ''legacy'' device type and any ''legacy'' dataset organization. For accessing ''all'' device types and ''all'' dataset organizations, the more general privileged [[Start Input/Output]] interface (STARTIO) is available in MVS/370 and subsequent instances of the OS although it is not an officially supported interface.
 
==Simplified operations on direct access datasets==
Line 49 ⟶ 104:
 
==Channel programs==
System/360 channel programs are a sequence of commands which are executed by the channel and the I/O device. Channel programs can be located anywhere in main storage. The channel program is a sequence of ''Channel Command Words'' (CCWs), which may be executed sequentially unless a branch, called ''Transfer In Channel'' (TIC), is executed, or the channel returns a [[IBM System/360 architecture#CSW Status modifier|status modifier]]. Each CCW is a doubleword (eight bytes) as follows:<ref>{{cite book sfn|last1=IBM Corporation |title=IBM System/360 Principles of Operation |date=January 1967 |pages=84–121 S360|urlloc=[http://bitsavers.org/pdf/ibm/360/princOps/A22-6821-6_360PrincOpsJan67.pdf#page=87 Input/Output Operations]|accesspp=84-date=Dec121}}{{efn|Successorss 4,add 2019}}</ref>additional flags and formats
;[[IBM System/370|System/370]] with Dynamic Address Translation
:Adds the Channel Indirect Data Addressingfeature{{sfn|S370|loc=[http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf#page=396 CHANNEL INDIRECT DATA ADDRESSING]|pp=13-45-13-46}} and the Indirect Data Address{{sfn|S370|loc=[http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf#page=389 CHANNEL-COMMAND WORD]|p=13-38}} CCW flag.
;[[IBM System/370-XA|System/370-XA]]
:Adds format 1 CCWs{{sfn|S370-XA|loc=[http://bitsavers.org/pdf/ibm/370/princOps/SA22-7085-1_370-XA_Principles_of_Operation_Jan87.pdf#page=384 Channel-Command Word]|p=[http://bitsavers.org/pdf/ibm/370/princOps/SA22-7085-1_370-XA_Principles_of_Operation_Jan87.pdf#page=#385 15-24-15-25]}} with 31-bit addresses
}}
<pre>
bit 0 7 8 31
Line 59 ⟶ 119:
|Flags |000|reserved| count |
+------+---+--------+------------+
</pre>
 
Six commands are defined, in the low-order bits of the command field (0-7). The high-order four (or six) bits are ''modifiers'' ('M') for some commands, or are ignored. The commands are:
<pre>
0100 - Sense
1000 - Transfer in Channel (TIC)
Line 112 ⟶ 173:
 
==References==
;S/360
:{{cite book
| title = IBM System/360 Principles of Operation
| id = A22-6821-6
| date = January 1967
| edition = Seventh
| url = http://bitsavers.org/pdf/ibm/360/princOps/A22-6821-6_360PrincOpsJan67.pdf
| ref = {{sfnref|S360}}
| publisher = [[IBM]]
| access-date = Dec 4, 2019
}}
;S/370
:{{cite book
| title = IBM System/370 Principles of Operation
| id = GA22-7000-10
| date = September 1987
| edition = Eleventh
| url = http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf
| ref = {{sfnref|S370}}
| publisher = IBM
}}
;S/370-XA
:{{cite book
| title = IBM System/370 - Extended Architecture - Principles of Operation
| id = SA22-7085-1
| date = January 1987
| edition = Second
| url = http://bitsavers.org/pdf/ibm/370/princOps/SA22-7085-1_370-XA_Principles_of_Operation_Jan87.pdf
| ref = {{sfnref|S370-XA}}
| publisher = IBM
}}
;z/ARCH
:{{cite book
| title = z/Architecture - Principles of Operation
| id = SA22-7832-13
| date = May 2022
| edition = Fourteenth
| url = http://bitsavers.org/pdf/ibm/360/princOps/A22-6821-6_360PrincOpsJan67.pdf
| ref = {{sfnref|zArch}}
| publisher = [[IBM]]
| access-date = Dec 4, 2019
}}
;DFSMSdfp
:{{cite manualbook
| publisher = IBM
| title = z/OS Version 2 Release 4 DFSMSdfp Advanced Services
| date = August 2020
Line 120 ⟶ 222:
| id = SC23-6861-40
| ref = {{sfnref|DFSMSdfp}}
| publisher = [[IBM]]
}}
<references />