>>-+-------+--$PCEDYN--action----------------------------------->
'-label-'
>--+-,--PCE--+-addrx----+------------------------------+-------->
| '-(--R1--)-' |
+-,--PCETAB--+-addrx----+---------------------------+
| '-(--R1--)-' |
'-,--DCT--=--+---+--+-addrx----+--+--------+--+---+-'
'-(-' '-(--R1--)-' '-,label-' '-)-'
>--+---------------------------+-------------------------------><
'-,ERRET--=--+-label------+-'
'-(--R--x--)-'
- action
- Specifies the type of action requested.
- ATTACH
- Generate a new PCE(s). These PCEs are dispatched based on the
DISPTCH keyword on the associated $PCETAB entries.
- DETACH
- Dequeue and delete a PCE(s).
- DETACHTEST
- Determine if a PCE(s) can be detached now.
- PCE=
- Specifies the address of a PCE. This address can be either a register
(1-12) or the name of a field containing the PCE address. R1 is loaded
with the value.
- If Action is:
- This keyword indicates:
- ATTACH
- Specifies an existing PCE of a PCE type (PCEID value) for which
another PCE (1) will be generated.
- DETACH
- Specifies a PCE to detach.
- DETACHTEST
- Specifies to test a PCE and determine if this PCE can be deleted
(that is, determine if any resources are still outstanding).
- PCETAB=
- Specifies the address of a PCE table entry for a PCE type. This
address can be either a register (1-12) or the name of a field containing
the entry address.
- If Action is:
- This keyword indicates:
- ATTACH
- Specifies a table entry for a PCE type that is not one-to-one
with a DCT type. A PCE of this type is to be generated.
- DETACH
- PCETAB= cannot be specified for DETACH. $PCEDYN cannot detach
an arbitrary PCE of a PCE type.
- DETACHTEST
- PCETAB= cannot be specified for DETACH. $PCEDYN cannot detach
an arbitrary PCE of a PCE type.
- DCT=
- Specifies the address of a device control table (DCT). This address
can be either a register (1-12) or the name of a field containing
the DCT address. R1 is loaded with the value.
Also, to indicate
a DCT chain field that should be used to attach or detach PCEs for
the DCT chain starting with the DCT specified, use a second positional
parameter. When a DCT chain is to be processed, $PCEDYN will attach
or detach PCEs, connect or disconnect DCTs and their ‘managing’ PCEs,
or do nothing as indicated by the associated DCT and PCE table entries
(for example, a DCT not owned or managed by a specific processor).
Note: - If a DCT chain is specified, no PCE is attached for DCTs for which
DCTPCE is already nonzero.
- If any PCE ATTACH fails for a DCT in the chain, the entire DCT
chain is processed as if DETACH had been requested.
- ERRET=
- Defines an error routine location (label or register) to branch
to if R15 is not zero on return from ATTACH.
Attention: Before using this macro, it may be useful
to review the table structures involved, that is, the PCE table and
the DCT table in HASPTABS (macros $PCETAB and $DCTTAB). Also, the
mapping macros for the PCE ($PCE) and DCT ($DCT) provide further understanding
of these control blocks.