Hardware Call Procedure

The Hardware Call procedure is used by the processor hardware, when one of the specified faults exist, to enter the routine specified by the Hardware Call function. The fault indicators are stored in a fixed memory location relative to Base #0 of the called function. Processor state is stored in a Hardware Call Stack Frame on a stack that is relative to Base #0 of the called function. Control is transferred to the Hardware Call procedure code.

If the processor is in KERNEL mode an attempt to execute a Hardware Call procedure will cause the processor to halt after the fault indicators have been stored in the R/D Storage Area in the kernel data area.

The following operations are performed by this procedure.

  1. Locate the six digit address, relative to the MCP Data Area, of the Hardware Call function entry in the MCP function table at memory address 87 relative to the MCP Data Area.

    If the Protection Field is not equal to DD then this Hardware Call procedure has failed.

    Perform the following steps:
    a. Write the fault indicators into the Failed Hardware Call R/D area of the Reinstate List entry for the current task.

    b. Save the Failed Hardware Call value within the processor for future update of the State Indicator field of the reinstate list entry for the current task and of the Instruction Interrupt Cause descriptor in the Kernel Data Area.

    c. Perform an Interrupt Procedure that will report an Instruction Interrupt in the Interrupt Descriptor in the Kernel Data Area.

  2. Perform the Load Memory Area Table procedure passing the Environment Number in the Hardware Call function entry and the type of MA fault set to either soft or hard. In this case, the type of MA fault parameter is not used, since a Memory Area Fault in the middle of an HCP will return back here to handle the failed HCP.

    Some processors do not allow an E copy type entry #0 of an environment loaded during a Hardware Call Procedure. See Compatibility Notes A.55 for details.

    If an invalid Environment Number or Memory Area Number is encountered or a Memory Area Fault is found during the loading of the MAT, then this Hardware Call Procedure has failed. Perform the following steps:
    a. Write the Fault Indicators into the Failed Hardware Call R/D Area field of the Reinstate List Entry for this task.

    b. Save the “Failed Hardware Call” value within the processor for future update of the State Indicator field of the Reinstate List Entry for this task and of the Instruction Interrupt Cause descriptor in the Kernel Data Area.

    c. Perform an Interrupt Procedure that will report an Instruction Interrupt in the Interrupt Descriptor in Kernel Data Area.