Description
The DIV macro establishes a window in an address space, data space, or hiperspace to reference and update data from a data-in-virtual object without actually issuing I/O instructions. The data-in-virtual object can be a VSAM linear data set or a nonshared standard hiperspace.
The DIV macro accesses a data object on permanent storage through paging I/O. Data-in-virtual maps the object onto a single virtual address range so your program can view it as beginning at a virtual location and occupying a consecutive virtual address range.
If the window is in an address space or a data space, use assembler instructions to access data. If the window is in a hiperspace, use the HSPSERV macro to access data in 4K-byte blocks.
- Service
- Function
- IDENTIFY
- Identifies you as a user of a data-in-virtual object.
- ACCESS
- Provides access to the data-in-virtual object.
- MAP
- Makes the data-in-virtual object addressable through your virtual window.
- RESET
- Releases changes made in your window since the last SAVE operation.
- SAVE
- Saves changed data that is in your window.
- SAVELIST
- Returns the addresses of the first and last changed pages in each range of changed pages within the window.
- UNMAP
- Eliminates the correspondence between the data-in-virtual object and your virtual window.
- UNACCESS
- Eliminates your access to the data-in-virtual object.
- UNIDENTIFY
- Ends your use of the data-in-virtual object.
The services of data-in-virtual execute synchronously, that is, control does not return from the DIV macro until the service is completed. Thus, before you can successfully invoke a service, the previous service must be complete.
For guidance information on the use of data-in-virtual, see z/OS MVS Programming: Assembler Services Guide.
Environment
The requirements for the caller are:
| Environmental factor | Requirement |
|---|---|
| Minimum authorization: | Problem state and any PSW key. |
| Dispatchable unit mode: | Task |
| Cross memory mode: | PASN=HASN=SASN |
| AMODE: | 31-bit |
| ASC mode: | Primary or access register (AR) |
| Interrupt status: | Enabled for I/O and external interrupts |
| Locks: | No locks held |
| Control parameters: | Must be in the primary address space. |
Programming requirements
Before using the DIV macro, the caller must first create either a linear data set object or a hiperspace object. The user must also supply a standard 72-byte save area.
Restrictions
- When you attach a new task, you cannot pass ownership of a mapped virtual storage window to the new task. That is, you cannot use the ATTACH or ATTACHX keywords GSPV and GSPL to pass the mapped virtual storage.
- While your program is in cross-memory mode, your program cannot invoke data-in-virtual services; however, your program can reference and update data in a mapped virtual storage window.
- The task that obtains the ID (through DIV IDENTIFY) is the only one that can issue other DIV services for that ID.
- When you identify a data-in-virtual object using the IDENTIFY service, you cannot request a checkpoint until you invoke the corresponding UNIDENTIFY service.
- When you use DIV with the IARVSERV macro to share data in virtual storage, you must follow several requirements; see the chapter about sharing data through IARVSERV in z/OS MVS Programming: Assembler Services Guide. The DIV macro does not support VSAM extended format linear data sets for use as a DIV object for which the size is greater than 4GB.
Input register information
- If the caller has issued the SYSSTATE macro with the OSREL=ZOSV1R6 parameter (Version 1 Release 6 of z/OS® or later) before issuing the DIV macro, the caller does not have to place any information into any general purpose register (GPR) unless using it in register notation for a particular parameter, or using it as a base register.
- Otherwise, the caller must ensure that the following general purpose register contains the
specified information:
- Register
- Contents
- 13
- The address of an 18-word save area
Output register information
- Register
- Contents
- 0
- Reason code if GPR 15 contains a nonzero return code; otherwise, used as a work register by the system
- 1
- Used as a work register by the system
- 2-14
- Unchanged
- 15
- Return code
- Register
- Contents
- 0 and 1
- Used as work registers by the system
- 2-13
- Unchanged
- 14-15
- Used as work registers by the system
Some callers depend on register contents remaining the same before and after issuing a service. If the system changes the contents of registers on which the caller depends, the caller must save them before issuing the service, and restore them after the system returns control.
Performance implications
- By using the DIV macro, you might reduce the amount of I/O. The SAVELIST service additionally improves performance of the application when it is necessary to inspect and verify data only in pages that have changed.
- Using LOCVIEW=MAP on a DIV ACCESS request degrades performance. Use LOCVIEW=NONE request whenever possible. You can use LOCVIEW=MAP request for small data objects without significant performance loss.
- Using RETAIN=YES on a DIV UNMAP request can degrade performance. Using RETAIN=YES causes the system to read more pages from the object.
Syntax
The standard form of the DIV macro is written as follows:
| Syntax | Description |
|---|---|
| name | name: Symbol. Begin name in column 1. |
| ␢ | One or more blanks must precede DIV. |
| DIV | |
| ␢ | One or more blanks must follow DIV. |
| Valid parameters: | |
| (Underlined parameters are those that you must specify.) | |
| IDENTIFY | ID, TYPE, DDNAME or STOKEN |
| ACCESS | ID, MODE, SIZE, LOCVIEW |
| MAP | ID, AREA, OFFSET, SPAN, STOKEN, RETAIN, PFCOUNT |
| RESET | ID, OFFSET, SPAN, RELEASE |
| SAVE | ID, OFFSET, SPAN, SIZE, STOKEN, LISTADDR, LISTSIZE, MF |
| SAVELIST | ID, LISTADDR, LISTSIZE, MF |
| UNMAP | ID, AREA, RETAIN, STOKEN |
| UNACCESS | ID |
| UNIDENTIFY | ID |
| ,ID=addr | addr: RX-type address, or register (2) - (12). |
| ,AREA=addr | addr: RX-type address, or register (2) - (12). |
| ,DDNAME=addr | addr: RX-type address, or register (2) - (12). |
| ,LISTADDR=listaddr | addr: RX-type address, or register (2) - (12). |
| ,LISTSIZE=listsize | addr: RX-type address, or register (2) - (12). |
| ,LOCVIEW=MAP | Default: LOCVIEW=NONE |
| ,LOCVIEW=NONE | |
| ,MODE=READ | Default: None |
| ,MODE=UPDATE | |
| ,OFFSET=addr | addr: RX-type address, or register (2) - (12). |
| ,OFFSET=* | Default: OFFSET=0 |
| ,RETAIN=YES | Default: RETAIN=NO |
| ,RETAIN=NO | |
| ,SIZE=addr | addr: RX-type address, or register (2) - (12). |
| ,SIZE=* | |
| ,SPAN=addr | addr: RX-type address, or register (2) - (12). |
| ,SPAN=* | |
| ,STOKEN=addr | addr: RX-type address. |
| ,TYPE=DA | Default: None |
| ,TYPE=HS | |
| ,PFCOUNT=nnn | Default: 0 |
| ,RELEASE=YES | Default: RELEASE=NO |
| ,RELEASE=NO | |
Parameters
The IDENTIFY, ACCESS, MAP, SAVE, SAVELIST, RESET, UNMAP, UNACCESS, and UNIDENTIFY parameters, which designate the services of the DIV macro, are mutually exclusive. You can select only one. The parameters are explained as follows:
- IDENTIFY
- Selects the data-in-virtual object (linear data set or hiperspace) that you want to process.
When you specify IDENTIFY, you must also specify ID and TYPE. ID specifies the address of an
eight-byte field into which the IDENTIFY service returns a unique eight-byte name. When you invoke
other data-in-virtual services, you use this identifier, or token, as input. The use of the ID is
associated only with your task; that is, all services for this ID must be requested by the same task
that obtained the ID.
When the object is a data set, you must also specify TYPE=DA and DDNAME. When the object is a nonshared standard hiperspace, you must specify TYPE=HS and STOKEN.
- ACCESS
- Requests permission to access a data-in-virtual object. When you specify ACCESS, you must also specify ID and MODE, and you may optionally specify SIZE or LOCVIEW. ID specifies the token which identifies the object you want to access. If your object is a hiperspace, ACCESS allows either multiple readers or one updater. Therefore, the system does not accept a read request if there is already an updater, and it does not accept an update request if there is any other user currently accessing the same object. You cannot access a hiperspace as a data object if it is, or has been on an access list.
- MAP
- Establishes addressability to the object in a specified range of virtual storage, called the
virtual window. When you specify MAP, you must also specify ID and AREA, and you may optionally
specify OFFSET, SPAN, STOKEN, RETAIN, and PFCOUNT. Specify STOKEN when your window is in a data
space or a standard hiperspace. If your window is in an address space, your object can be either a
linear data set or a nonshared standard hiperspace. If your window is in a data space or a
hiperspace, your object can be only a linear data set.
If you specified TYPE=DA, you can issue more than one MAP with different STOKENs. You cannot mix data space and hiperspace maps with address space maps under the same ID at any one time.
- RESET
- Releases changes made in the window since the last SAVE operation. When you specify RESET, you
must also specify ID, and you may optionally specify OFFSET, SPAN, and RELEASE. If the window
corresponds to blocks on the object, the current contents of the object will replace the data that
has changed in the window when the program next references the window. RESET does not change the
object.
Do not specify RESET for a storage range that contains DREF storage.
- SAVE
- Writes changed pages from the window to the corresponding blocks in the object. When you specify
SAVE, you must also specify ID, and you may optionally specify OFFSET, SPAN, SIZE, and STOKEN. The
system writes changed pages from the window into the blocks specified by OFFSET and SPAN. SAVE
cannot change the size of a hiperspace object.
Do not specify SAVE for a storage range that contains DREF storage.
Optionally, SAVE accepts a user list that the application specifies through the LISTADDR and LISTSIZE parameters. The user list contains information returned by the SAVELIST service. If you specify a user list as input for SAVE, you cannot specify OFFSET and SPAN, and the system saves only those pages specified in the user list.
- SAVELIST
- Returns the addresses of the first and last changed pages in each range of changed pages within the window. The mapped ranges may be either address spaces, data spaces, or hiperspaces. If more than one data space or hiperspace is mapped onto a DIV object, the selected range must be contained within a single data space or hiperspace.
- UNMAP
- Terminates a virtual window by removing the correspondence between virtual pages in the window
and blocks in the object. After the UNMAP is complete, the contents of the pages depend on the value
you specify for RETAIN; the virtual pages in the former window either retain the current view of the
object or appear as if they had just been obtained.
When you specify UNMAP, you must also specify ID and AREA, and you may specify RETAIN and STOKEN if the object is a data set and the window is in a data space or a hiperspace. UNMAP has no effect on the object itself and does not save data from the virtual window. If you want to save the data in the window, invoke SAVE before you invoke UNMAP.
If you issued multiple MAPs with different STOKENs, use STOKEN on UNMAP. If you do not specify STOKEN, the system scans the mapped ranges and unmaps the first range that matches the virtual area regardless of the data space it is in. Issuing UNACCESS or UNIDENTIFY automatically unmaps all mapped ranges.
- UNACCESS
- Relinquishes your permission to read from or write to a data-in-virtual object. When you specify UNACCESS, you must also specify ID, which provides the address of the unique name that was returned by the IDENTIFY service. When you invoke UNACCESS, any outstanding windows for the specified ID are automatically unmapped with an implied RETAIN=NO.
- UNIDENTIFY
- Ends the use of a data-in-virtual object under a previously assigned ID. When you specify UNIDENTIFY, you must also specify ID, which provides the address of the unique name that was returned by the IDENTIFY service. If the object is still accessed or mapped under the specified ID, the system will automatically unaccess and unmap it with an implied RETAIN=NO.
- ,ID=addr
- Specifies the address of a field in storage where the IDENTIFY service stores a unique eight-byte name that it associates with the object. This name acts as a token and is the output value from the IDENTIFY service. It is a required input value for all the other services.
- ,AREA=addr
- Specifies the address of a four-byte field in storage containing a pointer to the start of the
virtual window. You must specify the AREA parameter when you invoke the MAP and the UNMAP services.
The starting address for an UNMAP request must be identical to the starting address of its
corresponding MAP request. Address space virtual storage that is occupied by a window must meet the
following requirements:
- The window must begin on a 4096-byte (page) boundary and must be a multiple of 4096 bytes long.
- Virtual storage within the window must have been obtained from a single, pageable, private area subpool owned by the task that issued the IDENTIFY.
- The window cannot contain VIO storage.
- Pages within the window cannot be page fixed.
Data space and hiperspace virtual storage that is occupied by a window must meet the following requirements.- The window must be on a 4096-byte boundary and must be a multiple of 4096 bytes long.
- The data space or hiperspace must be owned or created by the task specifying the MAP service.
- The data space or hiperspace must exist until you specify the UNMAP service for all mapped ranges.
- The specified mapped range must lie within the current bounds of the data space or hiperspace.
- ,DDNAME=addr
- Specifies the address of a field containing the ddname for the data set object when you specify
TYPE=DA on IDENTIFY. The first byte of the field must be the number of characters in the ddname. The
bytes following the first byte must contain the EBCDIC characters of the ddname itself. The ddname
must conform to the standard syntax for ddnames (one through eight alphameric or national
characters). DDNAME is required when you invoke IDENTIFY with TYPE=DA for a data set object but is
not allowed when you specify TYPE=HS for a hiperspace object. Do not specify a DDNAME that
corresponds to a VSAM extended format linear data set for which the size is greater than 4GB,
because the DIV macro does not support them for use as a DIV object.
Encrypted linear VSAM data sets are supported. For more information, see z/OS DFSMS Using Data Sets.
- ,LISTADDR=listaddr
- Specifies the address of a 4-byte field that contains a pointer to the user list that the caller provides for the SAVELIST service.
- ,LISTSIZE=listsize
- Specifies the address of a 4-byte field that contains the number of entries in the user list for the SAVELIST service. The size of the list must be a minimum of three entries and a maximum of 255 entries, where each entry contains two words.
- ,LOCVIEW=MAP
- ,LOCVIEW=NONE
- Specifies whether the system is to create a local copy of the data-in-virtual object. For
hiperspace objects, you must specify LOCVIEW=NONE or use the default.
LOCVIEW=MAP specifies that the system is to establish a local copy of the data set object for the specified range. Use MAP to maintain a consistent view in the virtual storage window of data on permanent storage in environments where there are multiple writers or at least one reader and writer at the same time to the object.
LOCVIEW=NONE specifies that the system is not to create a local copy of the object. NONE is the default. Use NONE in environments where there is either a single writer, OR one or more readers, but not both at the same time.
- ,MODE=READ
- ,MODE=UPDATE
- Specifies whether the object is being accessed for the purpose of reading or updating. If you are using the SAVE service to update an object, specify MODE=UPDATE. Otherwise, specify MODE=READ to signify read-only access to the object. You must specify MODE whenever you specify ACCESS.
- ,OFFSET=addr
- ,OFFSET=*
- Specifies the beginning of a continuous range of blocks in a data-in-virtual object. OFFSET is used with SPAN to define a continuous range of blocks in an object. OFFSET designates the location of the first block in the range, and SPAN designates how many blocks are in the range. An OFFSET value of zero designates the first block (the beginning) of an object. The system permits an OFFSET beyond the current end of the object as long as it remains within the maximum number of blocks allowed for the object and also within the absolute limit of (2**20)-1 blocks. If you omit OFFSET or specify OFFSET=*, the system uses a default OFFSET of zero. You can specify the OFFSET parameter with MAP, RESET, and SAVE.
- ,RETAIN=YES
- ,RETAIN=NO
- Determines what data appears in the window when you invoke the MAP service, and what data is
left in virtual storage when you invoke UNMAP.
When you specify RETAIN=YES with MAP, the data in the virtual range stays the same. The system considers all pages in the range changed. When you specify RETAIN=NO (or use the default) with MAP, data in the object replaces the data in virtual range.
When you specify RETAIN=NO with UNMAP, the data in the virtual range becomes freshly obtained. When you specify RETAIN=YES with UNMAP, the virtual range retains its current view.
- ,SIZE=addr
- ,SIZE=*
- Specifies the address of a field where the system stores the size of the object. The system
returns the size in this field whenever you specify SAVE or ACCESS and also specify SIZE. When the
system returns control after executing a SAVE, the value that it returns is the minimum number of
blocks that must be mapped to ensure that the entire object is mapped. If you omit SIZE or specify
SIZE=*, the system does not return the size.
If you specified TYPE=DA for a linear data set object, and you specify SIZE, the macro returns the current size of the object in the four-byte location that SIZE designates.
If you specified TYPE=HS for a hiperspace object, and you specify SIZE, ACCESS returns two sizes in the eight-byte location. The first is the current size of the hiperspace (in 4K byte units), and the second is the maximum size of the hiperspace (also in 4K byte units).
Specify SIZE only when you specify ACCESS or SAVE.
- ,SPAN=addr
- ,SPAN=*
- Specifies the address of a four-byte field containing the number of blocks that are to be
processed. Use SPAN only with the MAP, RESET, or SAVE services, which operate only on a range of
contiguous blocks. SPAN indicates how many blocks are in the range. It is used with OFFSET, which
indicates the first block of the range.
For the RESET and SAVE services, the block range can include noncontiguous mappings of an object. This lets you reset or save several maps in a single DIV macro invocation.
For the MAP service, the block range can extend beyond the end of the object, but it cannot extend beyond the maximum size allowed for the object. You can create a window that exceeds the size of the object. The maximum span allowed is (2**20)-1 blocks.
If you omit SPAN or specify SPAN=*, or if the four-byte field contains zero, the system uses the SPAN default value. For the SAVE and RESET services, the default value is the number of blocks in the object from the specified or defaulted block to the end of the last mapped range. For the MAP service, the default is the current size of the object in blocks, minus the value specified by OFFSET. If the offset value is beyond the end of the object, the span defaults to one when you omit SPAN.
- ,STOKEN=addr
- Specifies the address of an eight-byte field that identifies a hiperspace or data space. STOKEN
is valid only with the IDENTIFY, MAP, SAVE, and UNMAP parameters. Specify STOKEN with MAP to map a
linear data set object onto data space or hiperspace virtual storage, or to unmap data space or
hiperspace storage.
With MAP, the system maps the permanent object into the data space or hiperspace that the STOKEN represents. If you do not specify STOKEN, the mapping applies to the primary address space. With UNMAP, STOKEN identifies which data space or hiperspace contains the window to be unmapped.
If you specified TYPE=HS for a hiperspace object, specify STOKEN with IDENTIFY. The system does not verify the STOKEN until you use the associated ID with ACCESS.
- ,TYPE=DA
- ,TYPE=HS
- TYPE=DA specifies that your program is using a data definition statement to identify a VSAM linear data set as the data object. The DIV macro does not support VSAM extended format linear data sets for use as a DIV object for which the size is greater than 4GB. TYPE=HS specifies that your program is using STOKEN to identify a hiperspace as the data object. The hiperspace must be a nonshared standard type and must be owned by the task issuing the IDENTIFY. Only the owner of the hiperspace can issue any subsequent ACCESS, MAP, and SAVE. You can use a nonshared standard hiperspace if no program has ever issued ALESERV ADD for that hiperspace. You cannot issue ALESERV ADD for a nonshared standard hiperspace while it is a data object.
- ,PFCOUNT=nnn
- Specifies the additional pages the system is to read into real storage on a page fault.
nnn is an unsigned decimal number from 0 to 255. If you specify an integer
greater than 255, the system uses 255. Zero is the default. If you omit PFCOUNT or specify
PFCOUNT=0, the system reads blocks from the data object one at a time. In any case, the system reads
in successive pages only to the end of the virtual range of the mapped area containing the
originally referenced page.
Use PFCOUNT if your program accesses the mapped object in a sequential manner. Because you get a page fault the first time you reference each page, reading into real storage multiple consecutive pages on each page fault might decrease the number of page faults and improve your program's performance.
PFCOUNT applies to movement of pages from the object to central storage. PFCOUNT does not apply to movement of changed or unchanged data that the system has moved to the real storage as a direct result of system management of the real storage.
- ,RELEASE=YES
- ,RELEASE=NO
- Specify RELEASE=YES to release all virtual pages in the reset range. Specify RELEASE=NO or use the default to release only changed pages in the reset range. RELEASE=NO does not replace unchanged pages in the window with a new copy of pages from the object. It replaces only changed pages. If another ID might have changed the object itself while you viewed data in the window, specify RELEASE=YES to reset all pages. Any subsequent reference to these pages will cause the system to load a new copy of the data page from the object.
ABEND codes
DIV might abnormally terminate with abend code X'08B'. See z/OS MVS System Codes for an explanation and programmer response.
Return and reason codes
When the system returns control to the caller after the DIV macro executes, it supplies a return code in the low-order (rightmost) byte of general register 15 and a reason code in the two low-order bytes of register 0. After an unsuccessful completion, the system abnormally terminates the caller and supplies an abend code of X'08B' and a reason code in the two low-order bytes of general register 15. See z/OS MVS System Codes for a detailed explanation of the reason codes for abend code X'08B'.
The hexadecimal values of the reason and return codes are:
| Reason code | Return code | Abend code | Meaning and action |
|---|---|---|---|
| none | 00 | — | Meaning: Successful completion. Action: None. |
| 0001 | none | 08B | Meaning: Unknown service was requested. Action: None. |
| 0002 | none | 08B | Meaning: Unknown parameter list format. Action: None. |
| 0003 | none | 08B | Meaning: Input parameter list cannot be addressed. Action: None. |
| 0004 | none | 08B | Meaning: Storage specified in the parameter list cannot be addressed.
Action: None. |
| 0005 | none | 08B | Meaning: The parameter list contains a reserved field that does not
contain binary zeros. Action: None. |
| 0006 | none | 08B | Meaning: The caller is not running in task mode. Action: None. |
| 0007 | none | 08B | Meaning: The caller is in cross memory mode. Action: None. |
| 0008 | none | 08B | Meaning: The specified TYPE is not valid. Action: None. |
| 0009 | none | 08B | Meaning: The supplied ID is not valid or is an ID that the caller cannot
use. Action: None. |
| 000A | 08 | — | Meaning: Environmental error. Another service is currently executing with
the specified ID. Action: Retry the request one or more times until the other service currently executing for this ID completes. |
| 000B | none | 08B | Meaning: The object is already accessed with the specified ID.
Action: None. |
| 000C | none | 08B | Meaning: The caller does not have proper RACF® authorization to the requested
object. Action: None. |
| 000D | none | 08B | Meaning: The requested window exceeds the maximum allowable size for the
object. Action: None. |
| 000E | none | 08B | Meaning: The object is not currently accessed for the specified ID.
Action: None. |
| 000F | none | 08B | Meaning: The specified range overlaps a range that is already mapped for
the specified ID. Action: None. |
| 0010 | none | 08B | Meaning: The specified range overlaps another mapped range in the current
address space or in the specified data space. Action: None. |
| 0011 | none | 08B | Meaning: Undetermined user error. Action: None. |
| 0012 | none | 08B | Meaning: The virtual storage specified does not begin on a 4K boundary.
Action: None. |
| 0013 | none | 08B | Meaning: The virtual storage specified is not in a pageable private area
subpool. Action: None. |
| 0014 | none | 08B | Meaning: The virtual range specified cannot be used to map an object.
Action: None. |
| 0015 | none | 08B | Meaning: The caller did not issue GETMAIN for at least one page in the
specified range. Action: None. |
| 0016 | none | 08B | Meaning: The virtual range specified contains at least one fixed page and
you did not specify RETAIN=YES. Action: None. |
| 0017 | 0C | — | Meaning: System error. Portions of virtual storage mapping the object
were not addressable, and therefore, could not be saved. (There was either a paging I/O error or
data occupying a bad real frame.) Action: Retry the request. If the problem persists, record the return and reason code and supply it to the appropriate IBM® support personnel. |
| 0018 | none | 08B | Meaning: The caller does not have UPDATE access to the object.
Action: None. |
| 0019 | none | 08B | Meaning: A page to be saved or reset was in the page fixed state.
Action: None. |
| 001A | 04 | — | Meaning: Program error. The specified range does not encompass any mapped
area of the object. Action: None required. However, you might want to check that the specified range for this operation was correct. |
| 001B | none | 08B | Meaning: The virtual storage area specified to be unmapped is not
currently mapped. Action: None. |
| 001C | 08 | — | Meaning: Environmental error. The object cannot be accessed at the
current time. Action: Retry the request one or more times until the operation succeeds. |
| 001D | none | 08B | Meaning: The accessed object is not at the correct control interval size.
Action: None. |
| 001E | none | 08B | Meaning: The length of the ddname exceeds the maximum size allowed.
Action: None. |
| 001F | none | 08B | Meaning: The caller's storage protect key is not the same as when
IDENTIFY was invoked. Action: None. |
| 0020 | none | 08B | Meaning: An ACCESS was attempted by a task that does not own the
specified ID. Action: None. |
| 0021 | 0C | — | Meaning: System error. Portions of the object could not be retained in
virtual storage as requested. Action: Retry the request. If the problem persists, record the return and reason code and supply it to the appropriate IBM support personnel. |
| 0022 | none | 08B | Meaning: The task that issued IDENTIFY (or the task for which it is a
subtask) does not own the virtual storage it is attempting to map. Action: None. |
| 0023 | none | 08B | Meaning: Part or all of the specified storage to be mapped is not in the
user's key. Action: None. |
| 0024 | none | 08B | Meaning: The caller requested a DIV service holding the local lock.
Action: None. |
| 0025 | none | 08B | Meaning: The caller requested a DIV service while not in a correct
calling environment. Action: None. |
| 0026 | none | 08B | Meaning: The caller requested a DIV service, but was not in a 31-bit
addressing mode. Action: None. |
| 0027 | none | 08B | Meaning: The specified offset and span describe a range that goes beyond
the maximum supported object size. Action: None. |
| 0028 | 08 | — | Meaning: Program error. The caller tried to access an empty data set with
MODE=READ specified. Action: None required. If the data set was not expected to be empty, check return codes from previous DIV operations to ensure that the data was saved as expected. |
| 0029 | none | 08B | Meaning: The caller tried to map into a disabled reference (DREF) data
space. Action: None. |
| 002A | none | 08B | Meaning: The caller tried to map the object into a data space. However,
the caller has specified LOCVIEW=MAP to access the object. Action: None. |
| 002B | none | 08B | Meaning: The data space is not big enough to contain the window.
Action: None. |
| 002C | none | 08B | Meaning: The caller requested a data space or hiperspace MAP with address
space MAPs outstanding, or an address space MAP with data space or hiperspace MAPs outstanding under
the given ID. Action: None. |
| 002D | 04 | — | Meaning: The data space has been deleted. However, the requested UNMAP
has been successful. Action: None. |
| 002E | none | 08B | Meaning: The data space has been deleted. The requested UNMAP cannot be
performed. At least one page in the SAVELIST range was in a deleted data space. Action: None. |
| 0036 | none | 08B | Meaning: STOKEN does not represent a valid data space that the caller can
use. Action: None. |
| 0037 | 04 | — | Meaning: Program error. The caller invoked ACCESS. The ACCESS is
successful, but the system is issuing a warning that the data set was not allocated with a
SHAREOPTIONS(1,3) and that LOCVIEW=MAP was not specified with ACCESS. Action: None required. However, to eliminate the possibility of potential errors, you should allocate the data set to be used as a DIV object with SHAREOPTIONS(1,3), or you should specify LOCVIEW=MAP when the DIV ACCESS is done. |
| 0038 | none | 08B | Meaning: The caller invoked ACCESS, but ACCESS failed because the data
set was not allocated as a linear data set. Action: None. |
| 0039 | none | 08B | Meaning: The caller specified SAVE or RESET for a storage range that
contains DREF storage. The SAVE or RESET was unsuccessful. Action: None. |
| 003A | none | 08B | Meaning: The program attempted to map an ESO hiperspace. You can map only
to a standard type hiperspace. Action: None. |
| 003B | none | 08B | Meaning: The caller requested UNMAP with RETAIN=YES for a hiperspace
window. You must specify RETAIN=NO or use the default. Action: None. |
| 003C | none | 08B | Meaning: The caller requested UNMAP with RETAIN=YES for a mapped standard
hiperspace object. You must specify RETAIN=NO or use the default. Action: None. |
| 003D | none | 08B | Meaning: The STOKEN for the object associated with the specified ID does
not represent a valid hiperspace that this request can use. Action: None. |
| 003E | 08 | — | Meaning: Environmental error. The hiperspace object cannot be accessed at
this time. The number of current READs might exceed the maximum allowed. (If MODE=READ, the object
is already accessed under a different ID for UPDATE. If MODE=UPDATE, the object is already accessed
under at least one other ID.) Action: Retry the request one or more times until the operation succeeds. |
| 003F | none | 08B | Meaning: The caller specified LOCVIEW=MAP for an ID associated with a
hiperspace object. Action: None. |
| 0040 | 08 | — | Meaning: Environmental error. The specified MAP range would extend the
data object beyond the installation data space limits. Action: Retry the MAP operation with a smaller range specified, or map this range onto a different DIV object. |
| 0041 | none | 08B | Meaning: The caller specified a STOKEN with an ID representing a
hiperspace object. Mapping data space virtual storage onto a hiperspace object is not allowed.
Action: None. |
| 0042 | none | 08B | Meaning: The hiperspace you are specifying as a data object has been the
object of an ALESERV ADD macro, and is therefore ineligible to be used as a DIV object.
Action: None. |
| 0043 | 04 | — | Meaning: Program error. The specified range has no pages that have been
altered. Action: None required. However, you might want to check that the specified range for this operation was correct. |
| 0044 | 04 | — | Meaning: Successful completion. The table is full and there are more
ranges to check. Action: None required. However, to obtain all of the information regarding changed pages, you can either retry the SAVELIST operation with a larger list, or you can obtain a new OFFSET and SPAN from the last entry in the returned list, and invoke SAVELIST another time to fill in the list with additional changed page information. |
| 0045 | 08 | — | Meaning: Environmental error. Storage for the SAVELIST operation could
not be obtained. The DIV request is rejected. Action: Retry the request one or more times. If the problem persists, check with the operator to see if another user in the installation is causing the problem, or if the entire installation is experiencing storage constraint problems. |
| 0046 | none | 08B | Meaning: The LISTSIZE specified is not valid. Action: None. |
| 0047 | none | 08B | Meaning: SAVE and either LISTADDR or LISTSIZE is specified.
Action: None. |
| 0048 | none | 08B | Meaning: All or a portion of a range specified in the user's SAVELIST
does not intersect with a mapped region. Action: None. |
| 0049 | none | 08B | Meaning: While using a user list with SAVE, the caller specified either
OFFSET or SPAN. Action: None. |
| 004A | none | 08B | Meaning: Addresses in the user list are not valid, not on a page
boundary, or the start address is higher than the end address. Action: None. |
| 004B | none | 08B | Meaning: Selected range spans across multiple data spaces or hiperspaces.
Action: None. |
| 004C | none | 08B | Meaning: The caller specified SAVE for a data space or hiperspace, but
did not supply a value for STOKEN. Action: None. |
| 004D | none | 08B | Meaning: The caller is not authorized to access the requested data.
Action: None. |
| 004E | 08 | — | Meaning: DIV could not obtain storage for the encryption buffers for a
DIV SAVE requeset. Action: The local system area of the address space is out of storage. The address space is over-committed and should be scaled back. |
| 0052 | none | 08B | Meaning: The specified virtual range contains at least one protected
page. Action: Remove the protection status from the protected pages in the specified virtual range. Then issue the DIV macro again. If you want to invoke MAP or UNMAP and want to preserve the protection status, specify RETAIN=YES when you issue the macro. |
| 0055 | none | 08B | Meaning: For a DIV ACCESS request, the DIV invoker is not authorized to
the ICSF service facility class. Action: Contact your SAF administrator for access to the ICSF service. |
| 0056 | none | 08B | Meaning: For a DIV ACCESS request, the DIV invoker is not authorized to
the key label associated with the DIV object. Action: Contact your SAF administrator for access to the key label of the DIV object. |
| 0801 | 08 | — | Meaning: Environmental error. Storage to build the necessary
data-in-virtual control block structure could not be obtained. Action: Retry the request one or more times. If the problem persists, check with the operator to see if another user in the installation is causing the problem, or if the entire installation is experiencing storage constraint problems. |
| 0802 | 08 | — | Meaning: System error. I/O driver failure. Action: Retry the request. If the problem persists, record the return and reason code and supply it to the appropriate IBM support personnel. |
| 0803 | 0C | — | Meaning: System error. A necessary page table could not be read into
central (also called real) storage. Action: Retry the request. If the problem persists, record the return and reason code and supply it to the appropriate IBM support personnel. |
| 0804 | 0C | — | Meaning: System error. Catalog update failed. Action: Retry the request. If the problem persists, record the return and reason code and supply it to the appropriate IBM support personnel. |
| 0805 | none | 08B | Meaning: System error. Indeterminate origin. Action: None. |
| 0806 | 0C | — | Meaning: System error. I/O error. Action: Retry the request. If the problem persists, record the return and reason code and supply it to the appropriate IBM support personnel. |
| 0807 | 04 | — | Meaning: Environmental error. Media damage might be present in allocated
DASD space. The damage is beyond the currently saved portion of the object. The SAVE completed
successfully. Action: None required. However, do not attempt to increase the size of this DIV object. |
| 0808 | 08 | — | Meaning: System error. I/O from a previous request has not completed.
Action: Retry the request. If the problem persists, record the return and reason code and supply it to the appropriate IBM support personnel. |
| 0809 | 08 | — | Meaning: For a DIV ACCESS request, the Integrated Cryptographic Service
Facility (ICSF) was not available to provide a key to process an encrypted DIV data
set. Action: Restart ICSF and retry the request. |
| 080A | 08 | — | Meaning: An encrypted data set was used for the DIV object. As part of a
DIV ACCESS request, DIV tried to convert the key label into a key but failed. The key associated
with the key label was not found. Action: Contact your security administrator. The return and reason codes from ICSF are RC=8, RSN=10012 (decimal). There might be a problem with the cryptographic key data set. |
| 080B | 08 | — | Meaning: For a DIV ACCESS request, an environmental or system error
occurred either with ICSF or the cryptographic co-processor. Action: Contact your security administrator. |
| 080C | 08 | — | Meaning: For a DIV ACCESS request, ICSF was unable to process the request
because the required hardware (co-processor) was not available. Action: Upgrade your system's hardware so that the required cryptographic co-processor is available. |
Example 1
DIV IDENTIFY,TYPE=HS,STOKEN=HSSTOK,ID=DIVOBJIDExample 2
DIV MAP,ID=DIVOBJID,AREA=MAPPTR1,SPAN=SPANVAL,OFFSET=*,STOKEN=DSSTOK,PFCOUNT=7