PSECT reference—R

The R-type constant reserves storage for the address of the PSECT of symbol1 as specified in the associated XATTR statement (XATTR instruction (z/OS and CMS)). It is the caller's responsibility to establish the definition of the R-type address constant referencing the called routine's PSECT, and to pass that address to the called routine. This constant is only available if the GOFF option is specified.

Note: If a program is to be reentrant, R-type address constants must not appear in shared (read-only) text. They should be in the caller's PSECT, and be provided to the called routine using an appropriate convention. That is, R-type address constants referring to PSECTs should themselves reside in PSECTs. If not, there can be only a single instantiation of the PSECT work area, and the program cannot be reentrant.
Table 1. R address constants
Subfield Value Example Result
1. Duplication factor Allowed    
2. Type R    
3. Type Extension D    
4. Program type Allowed    
5. Modifiers      
  Length: R-type: 3 or 4 only
RD-type: 3, 4, or 8 (no bit length)
   
  Implicit length:
(Length modifier not present)
R-type: 4 bytes
RD-type: 8 bytes
   
  Alignment:
(Length modifier not present)
R-type: Fullword
RD-type: Doubleword
   
  Scale: Not allowed    
  Exponent: Not allowed    
6. Nominal value
Represented by:
 
An ordinary symbol
 
 DC R(PSECT1)
 
  Enclosed by: Parentheses    
  Exponent allowed: No    
  Number of values per operand:  Multiple    
  Padding: With zeros at left    
  Truncation of assembled value: Not applicable