HPlogo MPE/iX Intrinsics Reference Manual > Chapter 5 Command Definitions (FCONTROL - FLOCK)

FINTSTATE

MPE documents

Complete PDF
Table of Contents
Index

Edition 7 E0701 ♥
Edition 7 E0300
Edition 6 E0195

NM and CM callable.

Enables/disables all software interrupts against the calling process.

Syntax



  U16                    U16V
  oldstate := FINTSTATE (interruptstate);

Functional Return


oldstate

16-bit unsigned integer (assigned functional return)

Returns the previous state (enabled or disabled) of the software interrupts.

Parameters


interruptstate

16-bit unsigned integer by value (required)

Passes a flag enabling/disabling software interrupts through bit (15:1):

ValueMeaning
1Enable software interrupts (Default)
0Disable software interrupts

Operation Notes


The software interrupt facility enables FREAD/FWRITE completion processing with an interrupt procedure. A call to FREAD or FWRITE is necessary to initiate the I/O request. Both of these intrinsics return to the process as soon as the request has been started. When the operation completes, the program is interrupted and control goes to the chosen interrupt procedure. This performs whatever processing is necessary and then resumes the original program.

Software interrupts are armed for a particular file by specifying the interrupt procedure's plabel in an FCONTROL call with itemnum=48. If aoption (4:1) is set to 0, selecting itemnum=48 resets it to 1. Use IOWAIT or IODONTWAIT if itemnum=48 is used.

Software interrupts are inhibited just before entering an interrupt procedure. This is done to stop unwanted nesting of the interrupt procedures. Each interrupt procedure should call FINTEXIT to reenable other interrupts just before it exits.

Software interrupts are automatically inhibited before a CTRL-Y trap procedure. The trap procedure can allow software interrupts only by calling the FINTSTATE intrinsic. The RESETCONTROL intrinsic restores the interrupt state of the process to its pre-CTRL-Y value (unless the trap procedure issues an FINTSTATE call; RESETCONTROL makes no change).

The first parameter of the software interrupt procedure is the file number of the file that caused the interrupt.

It is necessary to issue a call to the IODONTWAIT intrinsic against the file in order to complete the request. When reading, the buffer parameter is ignored in the FREAD call. The data is moved to the array specified by the buffer parameter of IODONTWAIT.

An incomplete FREAD/FWRITE request can be aborted by issuing an FCONTROL call with an itemnum of 43 (abort nowait I/O).

Limitations:
  • Only message (MSG) files allow software interrupts.

  • No more than one incomplete FREAD/FWRITE can be outstanding for a particular file.

  • The interrupt is held off while executing within the operating system, with the following exceptions:

    • PAUSE allows the interrupt.

    • IOWAIT allows the interrupt if the filenum parameter is set to 0.

    In these instances, the intrinsic is reinvoked after the interrupt procedure executes.

  • Do not use FINTSTATE with remote files.

Related Information


Intrinsics FINTEXIT
Manuals Accessing Files Programmer's Guide
Interprocess Communication Programmer's Guide




FINTEXIT


FLABELINFO