Chapter 5 Detailed Applications
- 80 -

5.5.3 Controlling Interrupts

Interrupt enable/disable control in a service call is accomplished by IPL manipulation. The IPL value in a service
call is set to the kernel mask level(OS interrupt disable level = system.IPL) in order to disable interrupts for the
kernel(OS-dependent) interrupt handler. In sections where all interrupts can be enabled, it is returned to the ini-
tial IPL value when the service call was invoked.
Figure 5.12 Interrupt control in a System Call that can be Issued from only a Task
shows the interrupt enable flag and IPL status in a service call.
For service calls that can be issued from only task context.
Task Service call issued Service call processing
I flag
IPL
1
0 system.IPL system.IPL
1 0
0
1
0
Task Service call issued Service c all processing
I flag
IPL
0
0 system.IPL system.IPL
1 0
0
0
0
When the I flag before issuing a service call is 1.
When the I flag before issuing a service call is 0.
Figure 5.12 Interrupt control in a System Call that can be Issued from only a Task
For service calls that can be issued from only non-task context or from both task context and non-task
context.