z/OS MVS Programming: Assembler Services Reference ABE-HSP
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Description

z/OS MVS Programming: Assembler Services Reference ABE-HSP
SA23-1369-00

Use CSVQUERY to obtain information about the attributes of a loaded module residing in the job pack area (JPA) of the current primary address space or the link pack area (LPA). Specify the module you want information about, using an entry point name, entry point token, or any address within the loaded module. See the INEPTKN parameter description for information about obtaining an entry point token.

CSVQUERY returns information for the following types of entry points:
  • Major entry points
  • Entry points created using the IDENTIFY macro
  • Minor entry points specified on a LOAD, LINK(X), ATTACH(X), or XCTL(X) invocation the system is processing while CSVQUERY is running.

For information about load modules and their characteristics, as well as a comparison of the CSVQUERY and CSVINFO macros, see the program management topic in z/OS MVS Programming: Assembler Services Guide.

Environment

Requirements for CSVQUERY callers are:

Environmental factor Requirement
Minimum authorization: Problem state and any PSW key
Dispatchable unit mode: Task or SRB
Cross memory mode: Any PASN, any SASN, any HASN
AMODE: 24 or 31- or 64-bit
ASC mode: Primary or access register (AR)
Interrupt status: Enabled for I/O and external interrupts
Locks: The caller may hold the LOCAL lock of the current primary address space (if the home address space is the same as the current primary address space, this is the LOCAL lock) and may hold the CMS lock, but is not required to hold any locks.
Control parameters: Must be in the primary address space or be in an address/data space that is addressable through a public entry on the caller's dispatchable unit access list (DU-AL).

Input register information

Before issuing the CSVQUERY 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-13
Unchanged
14
Used as a work register by the system
15
Return code
When control returns to the caller, the access registers (ARs) contain:
Register
Contents
0-1
Used as work registers by the system
2-13
Unchanged
14-15
Used as a work register 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.

Programming requirements

If the program is in AR mode, issue the SYSSTATE macro with the ASCENV=AR parameter before you issue CSVQUERY. SYSSTATE ASCENV=AR tells the system to generate code appropriate for AR mode.

Restrictions

None.

Performance implications

If you specify an address as a search argument for a module in the PLPA, the search might take longer than if you specify a name because the PLPA is organized by name. You can obtain the best performance on a CSVQUERY request by specifying an entry point token.

Syntax

The standard form of the CSVQUERY macro is written as follows:

Syntax Description
   
   name name: Symbol. Begin name in column 1.
   
One or more blanks must precede CSVQUERY.
   
CSVQUERY  
   
One or more blanks must follow CSVQUERY.
   
INEPNAME=entryname entryname: RS-type address or register (2) - (12).
INEPTKN=ineptkn ineptkn: RS-type address or register (2) - (12).
INADDR=ptr name ptr name: RS-type address or register (2) - (12).
INADDR64=ptr name64 ptr name64: RS-type address or register (2) - (12).
   
   ,SEARCH=JPALPA Default: JPALPA
   ,SEARCH=JPA  
   ,SEARCH=LPA  
   

   ,SEARCHMINOR=NO
   ,SEARCHMINOR=YES

Default: NO
   
   ,OUTLENGTH=length length: RS-type address or register (2) - (12).
   
   ,OUTLENGTH64=length64 length64: RS-type address or register (2) - (12).
   
   ,OUTEPNM=entryname entryname: RS-type address or register (2) - (12).
   
   ,OUTEPTKN=outeptkn outeptkn: RS-type address or register (2) - (12).
   
   ,OUTEPA=entry addr entry addr: RS-type address or register (2) - (12).
   
   ,OUTEPA64=entry addr64 entry addr64: RS-type address or register (2) - (12).
   
   ,OUTMJNM=major name major name: RS-type address or register (2) - (12).
   
   ,OUTLOADPT=outloadpt outloadpt: RS-type address or register (2) - (12).
   
   ,OUTLOADPT64=outloadpt64 outloadpt64: RS-type address or register (2) - (12).
   
   ,OUTSP=subpool subpool: RS-type address or register (2) - (12).
   
   ,OUTATTR1=attr1 attr1: RS-type address or register (2) - (12).
   
   ,OUTATTR2=attr2 attr2: RS-type address or register (2) - (12).
   
   ,OUTATTR3=attr3 attr3: RS-type address or register (2) - (12).
   
   ,OUTDIAG=outdiag outdiag: RS-type address or register (2) - (12).
   
   ,OUTRTID=outrtid outrtid: RS-type address or register (2) - (12).
   
   ,OUTXATTR1=xattr xattr: RS-type address or register (2) - (12).
   
   ,OUTVALID=valid valid: RS-type address or register (2) - (12).
   
   ,OUTPDATA=outpdata outpdata: RS-type address or register (2) - (12).
   
   ,OUTPID=outpid outpid: RS-type address or register (2) - (12).
   
   ,OUTXTLST=xtlst xtlst: RS-type address or register (2) - (12).
   
   ,OUTXTLST64=xtlst64 xtlst64: RS-type address or register (2) - (12).
   
   ,OUTPATHNAME=outpathname outpathname: RS-type address or register (2) - (12).
   
   ,OUTDSKEY=outdskey outdskey: RS-type address or register (2) - (12).
   
   ,PLISTVER=IMPLIED_VERSION  
   ,PLISTVER=MAX Default: IMPLIED_VERSION
   ,PLISTVER=plistver plistver: 0 - 7
   
   ,RETCODE=retcode retcode: RS-type address or register (2) - (12).
   
   ,MF=S  
   

Parameters

The parameters are explained as follows:

INEPNAME=entryname
INEPTKN=ineptkn
INADDR=ptr name
INADDR64=ptr name64
INEPNAME=entryname specifies an 8-character variable that contains the name of the entry point. The entry point name must be eight characters long, padded to the right with blanks if necessary.

INEPTKN=ineptkn specifies an 8-character variable that contains the entry point token. An entry point token is a unique, 8-character token assigned to each loaded module. To obtain the input token, invoke the CSVQUERY macro with INADDR, INADDR64, or INEPNAME, specifying the OUTEPTKN parameter. Use the output entry point token from that invocation of CSVQUERY as the input entry point token on subsequent invocations of CSVQUERY for the same module.

INADDR=ptr name specifies an address that CSVQUERY attempts to match to a loaded module. The address may be anywhere within the module.

INADDR64=ptr name64 specifies an 8-byte address that CSVQUERY attempts to match to a loaded module. The address may be anywhere within the module.

You must specify one of the following mutually exclusive parameters: INEPNAME, INEPTKN, INADDR, or INADDR64.

,SEARCH=JPALPA
,SEARCH=JPA
,SEARCH=LPA
Specifies the type of search CSVQUERY is to perform.

JPALPA (the default) causes CSVQUERY to search the caller's job pack area. If the search fails, CSVQUERY searches the link pack area.

JPA causes CSVQUERY to search only the caller's job pack area.

LPA causes CSVQUERY to search only the link pack area.

,SEARCHMINOR=NO
,SEARCHMINOR=YES
Specifies whether to search for minor entry points. SEARCHMINOR is an optional parameter.

SEARCHMINOR=NO specifies that CSVQUERY is not to search for minor entry points. NO is the default.

SEARCHMINOR=YES specifies that CSVQUERY is to search for minor entry points. CSVQUERY locates the minor entry point closest to the address specified on the INADDR parameter. Because the search is for the closest, CSVQUERY must check all entries.

,OUTLENGTH=length
Specifies an optional fullword variable where CSVQUERY is to return the length of the module that it has located. The length returned is the number of bytes used to contain the module. This size may be different depending on whether the module was loaded from a PDS or a PDSE. If there is more than one extent, the length is the sum of all the extents.

If you specify SEARCHMINOR=YES and CSVQUERY finds a minor entry point, CSVQUERY returns the length of the module that contains the major entry point associated with the minor entry point.

If the module is a program object bound with the FETCHOPT=NOPACK option, the length value returned was rounded to the fullpage-multiple area that is obtained with GETMAIN to hold the program object. If the program object is bound with the FETCHOPT=PACK option, the length value returned is the size indicated in the directory entry. For more information, see z/OS MVS Program Management: User's Guide and Reference and z/OS MVS Program Management: Advanced Facilities.

,OUTLENGTH64=length64
Specifies an optional doubleword variable where CSVQUERY is to return the length of the module that it has located. The length returned is the number of bytes used to contain the module. This size may be different depending on whether the module was loaded from a PDS or a PDSE. If there is more than one extent, the length is the sum of all the extents.

If you specify SEARCHMINOR=YES and CSVQUERY finds a minor entry point, CSVQUERY returns the length of the module that contains the major entry point associated with the minor entry point.

,OUTEPNM=entryname
Specifies an optional eight-character variable where CSVQUERY is to return the name of the entry point of the module. When you specify OUTEPNM with INADDR, CSVQUERY returns the module's major entry point name in entryname.
,OUTEPTKN=outeptkn
Specifies an optional 8-character variable where CSVQUERY returns the output entry point token. Use this token as the input entry point token (INEPTKN) on subsequent invocations of CSVQUERY for the same module.
,OUTEPA=entry addr
Specifies an optional fullword variable where CSVQUERY is to return the address of the entry point of the module. When you specify OUTEPA with INADDR, CSVQUERY returns the module's major entry point address in entry addr.
,OUTEPA64=entry addr64
Specifies an optional doubleword variable where CSVQUERY is to return the address of the entry point of the module. When you specify OUTEPA with INADDR, CSVQUERY returns the module's major entry point address in entry addr.
,OUTMJNM=major name
Specifies an optional eight-character variable where CSVQUERY returns the major name (which is not an alias name) of the module.
,OUTLOADPT=outloadpt
Specifies an optional fullword variable where CSVQUERY is to return the module's load address.

If you specify SEARCHMINOR=YES and CSVQUERY finds a minor entry point, CSVQUERY returns the load address of the module that contains the major entry point associated with the minor entry point.

,OUTLOADPT64=outloadpt64
Specifies an optional doubleword variable where CSVQUERY is to return the module's load address.

If you specify SEARCHMINOR=YES and CSVQUERY finds a minor entry point, CSVQUERY returns the load address of the module that contains the major entry point associated with the minor entry point.

,OUTSP=subpool
Specifies an optional one-byte variable where CSVQUERY returns the subpool number of the module.

If you specify SEARCHMINOR=YES and CSVQUERY finds a minor entry point, CSVQUERY returns the subpool number of the module that contains the major entry point associated with the minor entry point.

,OUTATTR1=attr1
Specifies an optional one-byte variable where CSVQUERY returns the attributes of the module.

The bit settings have the following meanings:

Bit Meaning When Set
0 End-of-memory deletion
1 Loaded-to-global
2 Reentrant
3 Serially reusable
4 Not loadable only
5 Overlay format
6 Alias
7 Not part of the programming interface
,OUTATTR2=attr2
Specifies an optional one-byte variable where CSVQUERY returns the attributes of the module.

The bit settings have the following meanings:

Bit Meaning When Set
0 Authorized library
1 Authorized program
2 AMODE ANY
3 AMODE 31
5 Dynamic LPA module
6 Page protected (only valid for dynamic LPA modules)
7 AMODE 64
,OUTATTR3=attr3
Specifies an optional one-byte variable where CSVQUERY returns the attributes of the module.

The bit settings have the following meanings:

Bit Meaning When Set
0 Resident above 16 megabytes
1 Job pack area resident
2 PLPA resident
3 MLPA resident
4 FLPA resident
5 CSA resident
6-7 Not part of the programming interface
,OUTXATTR1=xattr
Specifies an optional eight-byte variable where CSVQUERY returns extended attributes of the module.

The bit settings have the following meanings:

BYTE BIT Meaning When Set
0   Not part of the programming interface
1   Not part of the programming interface
2 1... .... A RACF basic program
2 .1.. .... A RACF main program
3   Not part of the programming interface
4   Not part of the programming interface
5   Not part of the programming interface
6   Not part of the programming interface
7   Not part of the programming interface
,OUTVALID=valid
Specifies an optional fullword variable that indicates whether the returned output fields contain valid data. If the bit is set to 1, the corresponding field is valid. Otherwise, the bit is 0. If the return code of the CSVQUERY macro is 0, the validity bits for all requested output are on.
Bit Valid Field When Set
0 OUTLENGTH
1 OUTEPA
2 OUTEPNM
3 OUTMJNM
4 OUTSP
5 OUTATTR1
6 OUTATTR2
7 OUTATTR3
8 OUTLOADPT
9 OUTPDATA
10 OUTPID
11 OUTEPTKN
12 OUTXTLST
13 OUTDIAG
14 OUTRTID
15 Not part of the programming interface
16 OUTEPA64
17 OUTLOADPT64
18 OUTLENGTH64
19 OUTXTLST64
20 OUTXATTR1
21 OUTPATHNAME
22 OUTDSKEY
23-31 Not part of the programming interface
,OUTPDATA=outpdata
Specifies the name, (RS-type), or address in register (2)-(12), of an optional 16 character output variable containing the provider data.
,OUTPID=outpid
Specifies an optional char(4) variable where CSVQUERY returns a string representing the loading service (provider) that loaded the module. The values mean the following:
Value
Meaning
'UNK '
Unknown provider
'LPA'
LPA
'PGMF'
Program fetch
'LLAF'
LLA
'AOSL'
AOS loader
'JPA'
JPA
,OUTDIAG=outdiag
Specifies the name, (RS-type), or address in register (2)-(12), of an optional 4 character output variable containing the diagnostic data.
,OUTRTID=outrtid
Specifies the name, (RS-type), or address in register (2)-(12), of an optional 2 character output variable that, as of z/OS version 1 release 12, does not contain valid information.
,OUTXTLST=xtlst
Specifies an optional 136–byte area where CSVQUERY is to return the length and load point information for each segment of the module that it has located. The first four bytes in the area should be initialized to 16 which is the total number of entries which can be returned.
On output, the second four bytes of the area contains the number of 8–byte entries that follow. Each 8–byte entry which follows consists of:
  • the load point for that extent as a 4–byte address and
  • the length, expressed in bytes, of that extent as 4–byte length.

If you specify SEARCHMINOR=YES and CSVQUERY finds a minor entry point, CSVQUERY returns the length(s) of the module that contains the major entry point associated with the minor entry point.

,OUTXTLST64=xtlst64
Specifies an optional 264-byte area where CSVQUERY is to return the length and load point information for each segment of the module that it has located. The first four bytes in the area should be initialized to 16 which is the total number of entries which can be returned.
On output, the second four bytes of the area contains the number of 16–byte entries that follow. Each 16–byte entry which follows consists of:
  • the load point for that extent as an 8–byte address and
  • the length, expressed in bytes, of that extent as 8–byte length.

If you specify SEARCHMINOR=YES and CSVQUERY finds a minor entry point, CSVQUERY returns the length(s) of the module that contains the major entry point associated with the minor entry point.

,OUTPATHNAME=outpathname
Specifies the name, (RS-type), or address in register (2)-(12), of an optional 1026 character output area that is to contain the path name associated with the CDE located by CSVQUERY. Note that this output area might not contain the full path name. The file name returned represents the name that was passed to the file system. Frequently this name is appended to the current home directory, but the home directory will not be returned by CSVQUERY. If the returned name starts with a "/", then it is the full pathname. The first 2–bytes of the area contain the path name length, followed by a path name of up to 1024 characters. A path name length of 0 in the first 2 bytes indicates that there is no path name associated with this CDE.
,OUTDSKEY=outdskey
Specifies an optional 8-character output area to contain the key of the data set, which is associated with the CDE that is located by CSVQUERY. Note that the format of this key is not part of the programming interface. A value of zero indicates that the data set key is not available. The validity bit is on whenever the parameter is successfully processed.
,PLISTVER=IMPLIED_VERSION
,PLISTVER=MAX
,PLISTVER=plistver
Specifies the version of the macro. PLISTVER determines which parameter list the system generates. PLISTVER is an optional input parameter on all forms of the macro, including the list form. When using PLISTVER, specify it on all macro forms used for a request and with the same value on all of the macro forms. The values are:
IMPLIED_VERSION
It is the lowest version that allows all parameters specified on the request to be processed. If you omit the PLISTVER parameter, IMPLIED_VERSION is the default. Code or use the default IMPLIED_VERSION with caution in the list form of the MACRO. It could result in storage overlays if parameters are coded on the execute form of the macro which requires a longer parameter list.
MAX
If you want the parameter list to be the largest size currently possible. This size might grow from release to release and affect the amount of storage that your program needs.

If you can tolerate the size change, IBM® recommends that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form; in this way, MAX ensures that the parameter list does not overwrite nearby storage.

The CSVQUERY macro supports multiple versions. The following macro key list contains the version level in which the key was first introduced. When specifying PLISTVER, be sure that it is at least as high as the highest version number of all the keys being used. Explicitly coding a specific plistver value on the list form of the macro which generates a shorter parameter list than that required by the parameters coded on the execute form can result in overlays of storage.

0
Version 0 introduces the following parameters:
  • INADDR
  • INEPNAME
  • OUTATTR1
  • OUTATTR2
  • OUTATTR3
  • OUTEPA
  • OUTEPNM
  • OUTLENGTH
  • OUTMJNM
  • OUTSP
  • OUTVALID
  • SEARCH
  • SEARCHMINOR
1
Version 1 introduces the following parameter:
  • OUTLOADPT
2
Version 2 introduces the following parameters:
  • INEPTKN
  • OUTEPTKN
  • OUTPDATA
  • OUTPID
3
Version 3 introduces the following parameters:
  • OUTDIAG
  • OUTRTID
  • OUTXTLST
5
Version 5 introduces the following parameters:
  • INADDR64
  • OUTEPA64
  • OUTLENGTH64
  • OUTLOADPT64
  • OUTXATTR1
  • OUTXTLST64
6
Version 6 introduces the following parameter: OUTPATHNAME
7
Version 7 introduces the following parameter: OUTDSKEY
To code: Specify in this input parameter one of the following values:
  • IMPLIED_VERSION
  • MAX
  • A decimal value in the range of 0 - 6
,RETCODE=retcode
Specifies the location where the system is to store the return code. The return code is also in GPR 15. If you specify a storage location, it must be on a fullword boundary.
,MF=S
Specifies the standard form of CSVQUERY. The standard form places the parameters into an inline parameter list.

Return and reason codes

When control returns from CSVQUERY, GPR 15 (and retcode, if you coded RETCODE) contains one of the following decimal return codes:

Decimal Return Code Meaning
00 CSVQUERY retrieves all the requested information.
04 CSVQUERY locates the specified module, but at least one requested output field is not valid.
08 CSVQUERY cannot locate the specified module.
12 CSVQUERY cannot obtain the lock(s) needed to process the request.
16 CSVQUERY encounters an unexpected error.
20 The requested function is not available on the system on which CSVQUERY is issued.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014