gtpm6m0k | Main Supervisor Reference |
An interrupt is a hardware-enforced transfer of control.
There are five types of interrupts: external, input/output (I/O),
machine check, program check, and supervisor call (SVC). Table 2 summarizes the different types of interrupts, which areas of
the control program process them, and what causes them.
Type of Interrupt | Processed By | Caused By |
---|---|---|
External | External interrupt handler (CTME) |
|
I/O | Common I/O handler (CCIO) | Status from an I/O operation |
Machine check | Machine check handler (CMKH) | Equipment malfunction (hardware error) |
Program check | System error processor (CPSE) | Programming error |
SVC | SVC macro decoder (CEDM) | Supervisor call instruction |
SVC instructions are requests for control program services. When an SVC is executed, the macro decoder gets control and PSWs are swapped. The SVC new PSW allows the macro service routine to store into any area of memory, and issue supervisor state instructions.
For some requests for control program services the storage protection key does not need to be changed, privileged instructions are not needed, and protected storage is not updated. For these requests, TPF fast-link macros provide a faster processing path than SVC instructions. (This is because fast-link macros use a Branch and Save Register instruction, rather than swapping PSWs.)
Pointers to SVC routines are maintained in tables. There are 255 SVC entries in the primary SVC tables (for main and application I-streams). Of these 255 entries, 31 are reserved for customers or "users," and 2 are reserved to point to a second-level structure. This secondary or indexed table supports an additional 32,767 SVCs. To specify secondary SVCs, add a halfword index number to the SVC instruction.
You can define and maintain data in the primary and secondary SVC tables and the fast-link macro tables using the following macros:
All SVC instructions that are requests for some control program service activate the SVC macro decoder (CEDM).
(See Checking System Internals for information on ECB-check and the internal trace table.)
The fast-link macro decoder is activated through a branch and save register (BASR) instruction. Therefore, the fast-link macro decoder operates in problem state. Control is passed directly to the requested macro service routine, which completes the request and activates the common fast-link exit routine. This routine is responsible for restoring registers and returning control to the program's next sequential instruction.
To add new SVC or fast-link macros:
You can call CFISVC from both E-type and CP programs, as well as from ICDF and STPP, to get the address of an entry in any SVC or fast-link table. Use data macro ISV0SV to reference fields in the table entries.
You can display any SVC interrupt code in hexadecimal using the ZDSVC command. The display SVC code program returns the SVC code to the CRAS terminal that issued the ZDSVC command.