>>-+--------+--$GETADDR--CB--=--cb-type------------------------->
'-symbol-'
>--+--------------------------+--+------------------------+----->
'-,ASID--=--+-label------+-' | .-(--R1--)---. |
'-(--R--n--)-' '-,RX--=--+-(--R--n--)-+-'
>--+-----------------------------+--+----------------------+---->
'-,WORKREG--=--+-(--R--n--)-+-' | .-NO--. |
'-(--R15--)--' '-,POINTER--=--+-YES-+-'
>--+---------------------------+--+-------------------+--------->
'-,ERRET--=--+-label------+-' '-,WARN--=--+-YES-+-'
'-(--R--n--)-' '-NO--'
>--+---------------------+-------------------------------------><
| .-TEST-. |
'-,SETAR--=--+-YES--+-'
'-NO---'
- CB=
- Specifies the control block type (cb-type) as follows:
Common
storage control blocks:
- ASCB
- Address space control block
- ASSB
- Address space secondary block
- CADDR
- Common address routine table
- FSSCB
- Functional subsystem control block
- HASB
- HASP address space block
- HAVT
- HASP address vector table
- HCCT
- HASP common communications table
- PCT
- Path Manager Control Table
- UCADDR
- User's common address routine table (CSA)
Private storage control blocks:
- ASXB
- Address space extension block
- FSCT(JES)
- Functional subsystem control table
- FSVT
- Functional subsystem vector table
- HASXB
- HASP address space extension block
- HCT
- HASP control table
- HFCT
- HASP functional subsystem communication table
- PADDR
- Private address routine table
- SSIB
- Subsystem information block
- SSICLLR
- Subsystem interface caller's save area
- SSOB
- Subsystem options block
- TRE
- TCB recovery element
- UPADDR
- User's private address routine table
Note: Not all control blocks are accessible from
all address spaces. $GETADDR issues a warning message (if WARN=YES
is specified) if you request a control block that cannot be accessed.
- ASID=
- Specifies a half-word field, or a register that contains, the
address space ID (ASID) where the control block resides. If this ASID
is different from the current address space, you can request only
common storage area-resident (CSA) control blocks. ASID= defaults
to the current ASID.
- RX=
- Specifies the register which is to contain the requested control
block address following $GETADDR processing. Register 0 should
not be used.
- WORKREG=
- Specifies a register (R1-R15) that $GETADDR can use for work.
You can specify a null value (WORKREG=,); however, if $GETADDR requires
a work register, you will receive assembly errors. This keyword is
optional; register 15 is used if a register is needed. On return to
the caller, the contents of register 15 (or the specified register)
will be unpredictable. Register 0 should not be used.
- POINTER=
- YES indicates that the address of a 4-byte pointer to the control
block is to be returned to the caller in the register specified by
RX=.
NO will cause the address of the control block to be returned
to the caller in the register specified by RX=.
- ERRET=
- Specifies a label or register that contains the address of the
routine that receives control if this macro processing was unable
to obtain the requested control block address. The ERRET= specification
does not apply to ASCB, ASXB, CADDR, HASB, HASXB, HAVT, HCCT, and
UCADDR control block types. If you do not specify ERRET= and $GETADDR
is unsuccessful the register specified by RX= will contain a zero
on return.
- WARN=
- Specifies whether (YES) or not (NO) JES2 will issue messages noting
that a particular control block cannot be accessed from the current
environment. WARN=YES is the default.
- SETAR=YES|NO|TEST
- Specifies whether the access register associated with the RX parameter
should be set as well as the general purpose register. The default
is SETAR=TEST.