Table 1 and Table 2 show the DESERV macro parameters and indicate for each function if the parameter is required, optional, or invalid. The figure applies to the MF=S (standard) forms of the macro, or to the logically merged MF=L and MF=E parameters.
Keyword / FUNC= | GET | GET_ALL | RELEASE | GET_NAMES |
---|---|---|---|---|
AREA | Optional | Invalid | Invalid | Invalid |
AREAPTR | Optional | Required | Invalid | Required |
BYPASS_LLA | Optional | Invalid | Invalid | Invalid |
CONCAT | Invalid | Optional | Invalid | Optional |
CONN_ID | Optional | Optional | Optional | Invalid |
CONN_INTENT | Required | Optional | Invalid | Invalid |
DCB | Required | Required | Required | Required |
DE_LIST | Invalid | Invalid | Optional | Invalid |
ENTRY_GAP | Optional | Optional | Invalid | Invalid |
FUNC | Required | Required | Required | Required |
HIDE | Invalid | Optional | Invalid | Invalid |
MF | Optional | Optional | Optional | Optional |
NAME | Invalid | Invalid | Invalid | Required |
NAME_LIST | Optional | Invalid | Invalid | Invalid |
PDSDE | Optional | Invalid | Invalid | Invalid |
RETCODE | Optional | Optional | Optional | Optional |
RSNCODE | Optional | Optional | Optional | Optional |
SUBPOOL | Optional | Optional | Invalid | Optional |
Keyword / FUNC= | UPDATE | RENAME | DELETE |
---|---|---|---|
AREA | Invalid | Invalid | Invalid |
AREAPTR | Invalid | Invalid | Invalid |
BYPASS_LLA | Invalid | Invalid | Invalid |
CONCAT | Invalid | Invalid | Invalid |
CONN_ID | Invalid | Invalid | Invalid |
CONN_INTENT | Invalid | Invalid | Invalid |
DCB | Required | Required | Required |
DE_LIST | Invalid | Invalid | Invalid |
ENTRY_GAP | Invalid | Invalid | Invalid |
FUNC | Required | Required | Required |
HIDE | Invalid | Invalid | Invalid |
MF | Optional | Optional | Optional |
NAME | Invalid | Invalid | Invalid |
NAME_LIST | Required | Required | Required |
PDSDE | Invalid | Invalid | Invalid |
RETCODE | Optional | Optional | Optional |
RSNCODE | Optional | Optional | Optional |
SUBPOOL | Invalid | Invalid | Invalid |
The area is mapped by the DESB DSECT in the IGWDES mapping macro on return from the function. The storage must be modifiable in the key of the caller.
AREA and AREAPTR are mutually exclusive.
If the area is filled before the processing has ended, the request is terminated at that point. The entries in the buffers are valid and connections may have been established.
For the GET_G and GET_ALL_G functions, to retrieve additional entries, a subsequent GET_G or GET_ALL_G request can be made with name_list specifying the generation name within the last generation directory entry returned in the buffer area.
buffer_area_size—Symbol or (2-12)
absexp or (2-12)—Standard or execute form
absexp—List form
buffer_area_size is the length in bytes of the area specified in the buffer_area parameter.
Restriction: There is no way to determine, in advance, the exact buffer size required to contain the directory entries on a single request. A formula for length calculation is provided in Figure 1.
The buffer-area address points to a chain of buffers mapped by the DESB mapping in the IGWDES mapping macro on return from the function.
The subpool number for the storage obtained is placed in the buffer header. See the description of the SUBPOOL keyword for subpool value determination.
It is your responsibility to release the storage using the STORAGE or FREEMAIN macro.
If you issue a DESERV call while running in 24-bit addressing mode, the storage area returned will be below the 16 MB line. If you issue a DESERV call while running in 31-bit addressing mode, the storage returned can be above or below the 16 MB line.
AREAPTR and AREA are mutually exclusive.
BYPASS_LLA=YES indicates that the LLA cache is not examined. BYPASS_LLA=NO, the default, indicates that the LLA cache is examined before attempting to obtain information directly from the data set.
This is an optional parameter to the GET function.
Currently, the GET_ALL function does not obtain member list from LLA. Therefore, the directory entries come directly from the data set as though BYPASS_LLA=YES were specified.
Tip: Response time is better if the directory entries are obtained from LLA.
This is an optional parameter and the default is the first library in the concatenation (that is, 0).
For the RELEASE function, CONN_ID is an input parameter and is mutually exclusive with DE_LIST.
For the GET and GET_ALL functions, CONN_ID is an output parameter.
CONN_ID is meaningful only when one or more of the designated libraries are PDSEs.
This parameter is required by the GET function since a connect intent of NONE is not valid. CONN_INTENT=HOLD must be specified for the GET function.
This parameter is optional and defaults to a connect intent of NONE when used with the GET_ALL function. CONN_INTENT=HOLD for the GET_ALL function requires the caller to be in supervisor state or system key .
CONN_INTENT is meaningful only when one or more of the designated libraries are PDSEs.
For the RENAME, DELETE, and UPDATE functions the DCB must be open for OUTPUT or UPDAT. For all other functions the DCB must be open for INPUT, OUTPUT, or UPDAT.
input_list A–type address. Standard form RX–type address or (2-12). Execute form A–type address. List form.
input_list specifies a list of entries mapped by the DESL structure.
input_list_entry_count Absexp or (2-12). Standard or execute form Absexp. List form
input_list_entry_count contains the number of entries in the list.
For the RELEASE function, DE_LIST is mutually exclusive with CONN_ID.
gap_size Absexp or (2-12). Standard or Execute form Absexp. List form
gap_size is a numeric value from 0 to 2048.
DESERV places the length specified in the header area of the DESB.
EXT_ATTR=YES indicates that the returned SMDE will contain the extended attributes, SMDE_EXT_ATTR.
EXT_ATTR=No , the default, indicates that the returned SMDE will not contain the extended attributes.
This is an optional parameter to the GET or the GET_ALL functions.
NO is the default for the HIDE parameter.
The third argument, COMPLETE or NOCHECK, is optional. The default is COMPLETE. This argument specifies whether required keyword checking is to be done. If MF=E is coded with the NOCHECK argument, the macro does not check that all required keywords have been specified. If MF=E is coded with the COMPLETE argument (or COMPLETE is allowed to default) the parameter list is cleared to binary zeros (except the header portion, the first 16 (X'10') bytes), and checking is done for all required parameters.
parm_list—RX-type Address or (1-12)
specifies the address of the parameter list. Valid for the MF=E form of the DESERV macro only.
name_record specifies either the primary or any of the alias names when used for the GET_NAMES function.
For GET, it defines the names for which directory entries are to be obtained and points to the output directory entries.
For GET_G, it defines a primary name for which generation directory entries are to be obtained. input_list_entry_count must indicate one entry. If the output area is filled before all generation directory entries could be returned, subsequent calls can be made to return additional generation directory entries for the initial primary name. On these subsequent calls, the NAME_LIST should contain the generation name (12-byte SMDE_GENE_NAME) to be used as a continuation point. It can be copied from the last generation directory entry found in the output area returned by the previous call. Input_list_entry_count must indicate one entry.
For GET_ALL_G, NAME_LIST is not required to return generation directory entries for a PDSE. However, if the output area is filled before all generation directory entries could be returned, subsequent calls can be made using NAME_LIST to return additional generation directory entries for the PDSE. On these subsequent calls, the AME_LIST should contain the generation name (12-byte SMDE_GENE_NAME) to be used as a continuation point. It can be copied from the last generation directory entry found in the output area returned by the previous call. Input_list_entry_count must indicate one entry.
For DELETE, it defines the names which are to be deleted. For RENAME, it defines the old names and the new names.
For UPDATE, it defines the directory entries which are to be updated.
NAME_LIST is mutually exclusive with the PDSDE parameter.
input_list
A–type address or (2-12). Standard form.
RX-type address or (2–12). Execute form
A-type addres. List form
input_list specifies a list of entries.
The input_list structure is mapped by the DESL mapping in the IGWDES mapping macro.
input_list_entry_count
Absexp or (2-12). Standard or execute form.
Absexp. List form.
input_list_entry_count contains the number of entries in the list.
PDSDE is mutually exclusive with the NAME_LIST parameter.
See DESERV completion codes for valid return code values.
See Reason codes returned by the DESERV macro for reason code values.