HP 3000 Manuals

FCONTROL (changed) [ Introduction to MPE XL for MPE V Programmers Migration Guide ] MPE/iX 5.0 Documentation


Introduction to MPE XL for MPE V Programmers Migration Guide

FCONTROL 
(changed) 

File system interprocess communication often makes use of software
interrupts.  This feature allows execution of a process to be suspended
while control is passed to a special interrupt handling procedure.
Several file system intrinsics are used specifically for interrupt
handling.

To arm or disarm software interrupts for a particular file, you use
FCONTROL with a controlcode of 48.  You pass the plabel (external label)
of your interrupt handler in the param parameter of this intrinsic.

Your use of this intrinsic may be affected by architectural differences
between MPE V/E and MPE XL-based systems.  In MPE V/E and MPE XL CM,
plabels are 16 bits long, in MPE XL NM they are 32 bits long.  Therefore,
to simplify any ambiguity, the call to FCONTROL (to arm your handler)
should be initiated from the same mode as your handler.  For example, if
you have a CM interrupt handler to be armed for a particular message
file, the call to FCONTROL to arm the handler should also be initiated in
CM. Similarly, a NM interrupt handler should be armed by calling FCONTROL
from NM. A failure to follow this rule will result in the incorrect mode
setting for the plabel, resulting in unpredictable results when the
interrupt handler is invoked (because the mode of the plabel will be
incorrect).  The best way to avoid plabel problems is to be sure that you
arm and call your interrupt handling procedure in the same mode.  If for
some reason this is impossible, you can use a switch stub to call the
procedure; refer to the Switch Programming Guide (32650-90014) for
further details on this subject.



MPE/iX 5.0 Documentation