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.
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:
- 2
- Version 2 introduces the following parameters:
- INEPTKN
- OUTEPTKN
- OUTPDATA
- OUTPID
- 3
- Version 3 introduces the following parameters:
- 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. |
|