z/OS MVS Programming: Authorized Assembler Services Reference ALE-DYN
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


DATOFF — DAT-OFF linkage

z/OS MVS Programming: Authorized Assembler Services Reference ALE-DYN
SA23-1372-00

Description

The DATOFF macro transfers control to a specified routine in the DAT-OFF section of the nucleus.

The macro is restricted to key 0, supervisor state users, that are enabled for DAT. Callers must include the IHAPSA mapping macro with the DATOFF macro. Callers can be in primary or access register (AR) address space control (ASC) mode. The macro destroys the contents of general registers 0, 14, and 15.

Environment

These are the requirements for the caller:

Environmental factor Requirement
Minimum authorization: Supervisor state and key 0
Dispatchable unit mode: Task or SRB
Cross memory mode: PASN=HASN=SASN
AMODE: 24-, 31- or 64-bit
ASC mode: Primary or Access Register
Interrupt status: None
Locks: The caller may hold locks, but is not required to hold any.
Control parameters: Must be in the primary address space
   

Programming requirements

The caller must include the IHAPSA mapping macro and must be enabled for DAT.

Restrictions

None.

Input register information

Before issuing the DATOFF macro, the caller does not have to place any information into any register unless using it in register notation for a particular parameter, or using it as a base register.

Output register information

When control returns to the caller, the general purpose registers (GPRs) contain:
Register
Contents
0-1
Used as work registers by the system
2-5
May be used as work registers depending upon the index specified
6-13
Unchanged
14
Used as a work register by the system
15
Return code
When control returns to the caller, the ARs contain:
Register
Contents
0-1
Used as work registers by the system
2-13
Unchanged
14-15
Used as work registers by the system

Performance implications

None.

Syntax

The DATOFF macro is written as follows:

Syntax Description
   
   name name: Symbol. Begin name in column 1.
   
One or more blanks must precede DATOFF.
   
DATOFF  
   
One or more blanks must follow DATOFF.
   
index Note: See the description of the parameters for the valid options.
   
   ,RELATED=value value: Any valid macro keyword specification.
   

Parameters

The parameters are explained as follows:

index
Specifies the function that is to be given control in the DAT-OFF section of the nucleus. The possible values for index, along with the associated functions, are as follows:
Index
Function
INDCDS
31-bit DAT-OFF compare double and swap
INDMVCL0
31-bit general DAT-OFF move character long
INDMVCLK
31-bit general DAT-OFF move character long in user key
INDXC0
31-bit general DAT-OFF exclusive OR character
INDCDS64
64-bit DAT-OFF compare double and swap
INDMVCL64
64-bit general DAT-OFF move character long
INDMVCLK64
64-bit general DAT-OFF move character long in user key
INDXC64
64-bit general DAT-OFF exclusive OR character
INDUSR1
User-written 31-bit
INDUSR2
User-written 31-bit
INDUSR3
User-written 31-bit
INDUSR4
User-written 31-bit
INDUSR641
User-written 64-bit
INDUSR642
User-written 64-bit
INDUSR643
User-written 64-bit
INDUSR644
User-written 64-bit
For all system-defined index values (INDCDS, INDMVCL0, INDMVCLK, and INDXC0), the user must supply information in certain registers, as shown in the following lists. All register values for INDCDS, INDMVCL0, INDMVCLK, and INDXC0 must be 31-bit addresses. All register values for INDCDS64, INDMVCL64, INDMVCLK64, and INDXC64 must be 64-bit addresses. Callers must be AMODE=64 to use INDCDS64, INDMVCL64, INDMVCLK64, or INDXC64.
INDCDS and INDCDS64
Registers
Information
2-3
First 64-bit operand in even-odd pair of registers (target data)
4-5
Third 64-bit operand in even-odd pair of registers (source data)
6
Location of second operand, a doubleword in storage (target address)
Note: Register 6 contains a real address. If INCDS is specified, then the low order 32 bits of GPR 6 form the real address operand. If INCDS64 is specified, then all 64 bits of GPR6 form the real address operand.
INDMVCL0 and INDMVCL64
Registers
Information
2
Location into which the characters are to be moved
3
Length of the area into which the characters are to be moved
4
Location of the area from which the characters are to be moved
5
Length of the area from which the characters are to be moved
Note: Registers 2 and 4 contain real addresses.
INDMVCLK and INDMVCLK64
Registers
Information
2
Location into which the characters are to be moved
3
Length of the area into which the characters are to be moved
4
Location of the area from which the characters are to be moved
5
Length of the area from which the characters are to be moved
6
Bits 24-27 contain the PSW key in which the MVCL is to be executed
Note: Registers 2 and 4 contain real addresses.
INDXC0 and INDXC64
Registers
Information
2
Location of the results of exclusive OR character processing
3
Bits 24-31 contain one less than the number of bytes on which the exclusive OR is to be performed
4
Location of the operand on which the exclusive OR is to be performed
Note: Registers 2 and 4 contain real addresses.
There are eight DAT-OFF indexes that users can define. These indexes are INDUSR1, INDUSR2, INDUSR3, INDUSR4, INDUSR641, INDUSR642, INDUSR643, and INDUSR644. User written DAT-OFF functions are restricted as follows:
  • The user of the DATOFF macro instruction must be in key 0, supervisor state, and executing with DAT turned on.
  • The DAT-OFF function must have the attributes AMODE=31 and RMODE=ANY to use INDUSR1, INDUSR2, INDUSR3, and INDUSR4.
  • The DAT-OFF function must have the attributes AMODE=64 and RMODE=ANY to use INDUSR641, INDUSR642, INDUSR643, and INDUSR644.
  • The DAT-OFF function must preserve register 0 because register 0 contains the return address of the module that issued the DATOFF macro.
  • The DAT-OFF function must use branch instructions to link to other DAT-OFF functions.
  • The DAT-OFF function must use BSM 0,14 to return from INDUSR1, INDUSR2, INDUSR3, and INDUSR4.
  • The DAT-OFF function must return via BR 14 from INDUSR641, INDUSR642, INDUSR643, and INDUSR644.
Note: See z/OS MVS Programming: Authorized Assembler Services Guide for information about how to insert a user-written function in the nucleus.
,RELATED=value
Specifies information used to document the macro and to relate the service performed to some corresponding service or function. The format of the information specified can be any valid coding values that the user chooses.

ABEND codes

0FF

See z/OS MVS System Codes for an explanation and programmer responses for these codes.

Return codes

When DATOFF macro returns control to your program, GPR 15 contains a return code.

Table 1. Return Codes for the DATOFF Macro
Hexadecimal Return Code Meaning and Action
00 Meaning: Successful completion.

Action: None.

04 Meaning: The first and second operands specified on INDCDS were not equal (a condition code 1 on the CDS). The first operand has been replaced by the second.

Action: Reissue the request.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014