Use this system macro to request control program (CP) DASD services from
the CCSONS CP segment. This macro is restricted to specific use by the
DASD support routines because the services provided are a code continuation of
the issuing real-time program.
Required Authorizations
|
Key0
| Restricted
| System
| Common Storage
|
| X
|
|
|
Format
- label
- A symbolic name can be assigned to the macro statement.
- TYPE
- The name of the process to be supplied by CCSONS. The values of
PARM1 and PARM2, if used, depend on the service being requested. TYPE
is one of the following:
- LOCK1
- Lock phase 1 processing for move locks support. This causes CCSONS
to move any hold-type requests from the module queue to the module control
unit attention queue. If a hold-type request is active, the request is
halted.
- PARM1
- The label of a halfword that contains the relative module number or a
register value in the format (Rx) that contains the relative module
number. The MFST entry of the subject module must be marked in LOCK
SUSPENDED state.
- LOCK2
- Lock phase 2 processing for move locks support. This causes CCSONS
to move any requests on attention queue of the FROM module to the attention
queue of the TO module.
- PARM1
- The relative module number of the FROM module. This must be
specified as either the label of a halfword that contains the relative module
number or a register value in the format (Rx) which contains the
relative module number. The MFST entry of the subject module must be
marked in LOCK SUSPENDED state.
- PARM2
- The relative module number of the TO module. This must be specified
as either the label of a halfword that contains the relative module number or
a register value in the format (Ry) which contains the relative
module number. Register 14 cannot be used for PARM2 value. The
MFST entry of the subject module must be marked in LOCK SUSPENDED
state.
- ATTNQ
- Process the attention queue and attempt to schedule all pending
requests.
- PARM1
- Either the label of a halfword that contains the relative module number or
a register value in the format (Rx) that contains the relative module
number.
- PARM2
- Specify the relative module number of the target module. Specifying
a -1 indicates a lock recovery request for a CFLF control unit (CU).
The specification must be either the label of a halfword or a register (other
than R14) containing the module number.
- PURGE
- Stop any active request and purge the rest of the device queue for the
specified module.
- PARM1
- Either the label of a halfword that contains the relative module number or
a register value in the format (Rx) that contains the relative module
number. The MFST entry of the subject module must be marked as
unavailable to normal system requests.
- ENMSG
- Call CJIW to create the appropriate text for a module down message based
on the information provided by the input work block (ICJXWK).
On return, the ICJXWK block contains the message at CJXWKMSG.
- PARM1
- The data level index that contains the initialized ICJXWK block.
PARM1 is specified as a character string of Dx, where x is
the hexadecimal data level number (0-F).
- EMMSG
- Call CJIW to create the appropriate text for a device error message based
on the information provided by the input work block (ICJXWK).
On return, the ICJXWK block contains the message at CJXWKMSG.
- PARM1
- The data level index that contains the initialized ICJXWK block.
PARM1 is specified as a character string of Dx, where x is
the hexadecimal data level number (0-F).
- CRCJX
- Allocate and initialize an ICJXWK block to use for error recording and
logging.
On return, an initialized ICJXWK block is attached to the data level
specified by PARM1 for the module specified by PARM2. The address of
the block is at CE1CRx, where x is the data level (0-F).
- PARM1
- An available data level index on which the initialized ICJXWK block will
be returned. PARM1 is specified as a character string of Dx,
where x is the hexadecimal data level number (0 through F).
- PARM2
- Either the label of a halfword that contains the relative module number or
a register value in the format (Rx) which contains the relative
module number of the module whose block is being initialized.
- MODDOWN
- Force the specified module offline.
- PARM1
- The label of a halfword that contains the relative module number or a
register value in the format (Rx) that contains the relative module
number of the module that is to be forced down.
- LOSTINT
- Scan for lost interrupts.
- READMSG
- Request a Read Attention I/O operation to the specified device.
- PARM1
- The label of a halfword that contains the relative module number or a
register value in the format (Rx) that contains the relative module
number of the module that is to be used to perform the read attention message
I/O operation.
- CUNLOCK
- Issue any cached unlocks.
- STRUCT
- Process the coupling facility (CF) list structure queue and attempt to
schedule all pending requests.
- PARM1
- Either the label of a halfword that contains the relative module number or
a register value in the format (Rx) that contains the relative module
number.
- CFLKSPAV
- Process the CF list structure queue used by CF record lock support to
reschedule all pending requests that were queued because of a lock table full
condition.
- PARM1
- The label of a halfword or register value in the format (Rx) that
contains the index (0-31) in the CF locking table (CFLT) for the CF
whose structure queue must be examined so that the input/output blocks (IOBs)
can be restarted if they were queued because of a lock space full
condition.
Entry Requirements
R9 must contain the address of the ECB that is being processed.
Return Conditions
- Control is returned to the next sequential instruction (NSI).
- The contents of R14 and R15 are unknown. The contents of registers
R0-R7 are preserved across this macro call.
- The condition code on return from this macro is unknown.
Programming Considerations
- This macro can be run on the main I-stream only.
- To ensure completion of the operation, a WAITC macro must be
issued.
- Only system programmers should use this macro. This macro is
designed to be an extension of real-time code sequences.
Examples
None.