REQUEST=DELETE allows you to remove from LPA one or more modules
or aliases that had previously been added by dynamic LPA services.
Environment
The requirements for the caller are:
Environmental factor |
Requirement |
---|
Minimum authorization: |
Any of the following: - Supervisor state
- PKM 0-7
- PSW key 0-7
- APF authorized
- In addition to any of the above, if SECMODCHECK=YES is specified
or defaulted to, issuer must be authorized for UPDATE to the RACF® FACILITY
class resource CSVDYLPA.DELETE.modname
|
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: |
The caller must not be locked. |
Control parameters: |
Control parameters must be in the primary address
space or, for AR-mode callers, must be in an address/data space that
is addressable through a public entry on the caller's dispatchable
unit access list (DU-AL). The user-provided data set name through
the DSNAME parameter has the same requirements and restrictions as
the control parameters.
The user-provided information through
the MODINFO parameter has the same requirements and restrictions as
the control parameters.
|
Programming requirements
The caller should include the CSVLPRET macro to get equate symbols
for the return and reason codes.
The caller must include the CSVLPRET macro to get a mapping of
the input/output area provided via the MODINFO
The caller may hold the system ENQ resource with QNAME SYSZCSV
and RNAME CSVDYLPA in the exclusive state. While this ENQ resource
is held, any other requests to use the CSVDYLPA services to ADD or
DELETE will be delayed. The ENQ resource must not be held in the shared
state when using CSVDYLPA services. parameter.
Restrictions
The caller must not have functional recovery routines (FRRs) established.
Input register information
Before issuing the CSVDYLPA macro, the caller does not need to
place any information into any general purpose register (GPR) or access
register (AR) 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 GPRs contain: - Register
- Contents
- 0
- Reason code if GPR15 is not 0
- 1
- Used as a work register 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 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
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.
Syntax
The CSVDYLPA macro is written as follows:
Syntax |
Description |
---|
|
|
name |
name: symbol. Begin name in
column 1. |
|
|
␢ |
One or more blanks must precede CSVDYLPA. |
|
|
CSVDYLPA |
|
|
|
␢ |
One or more blanks must follow CSVDYLPA. |
|
|
REQUEST=DELETE |
|
|
|
,MODINFO=modinfo |
modinfo: RS-type address or
address in register (2) - (12) |
|
|
,NUMMOD=nummod |
nummod: RS-type address or
address in register (2) - (12) |
|
|
,TYPE=BYTOKEN |
Default: TYPE=BYTOKEN |
,TYPE=CURRENT |
|
,TYPE=OLDEST |
|
,TYPE=VALUE |
|
|
|
,TYPEVALUE=typevalue |
typevalue: RS-type address
or register (2) - (12). |
|
|
,SECMODCHECK=YES |
Default: SECMODCHECK=YES |
,SECMODCHECK=NO |
|
|
|
,RETCODE=retcode |
retcode: RS-type address or
register (2) - (12). |
|
|
,RSNCODE=rsncode |
rsncode: RS-type address or
register (2) - (12). |
|
|
,PLISTVER=IMPLIED_VERSION |
Default: PLISTVER=IMPLIED_VERSION |
,PLISTVER=MAX |
|
,PLISTVER=0 |
|
|
|
,MF=S |
Default: MF=S |
,MF=(L,list addr) |
list addr: RS-type address
or register (1) - (12) |
,MF=(L,list addr,attr) |
|
,MF=(L,list addr,0D) |
|
,MF=(E,list addr) |
|
,MF=(E,list addr,COMPLETE) |
|
|
|
Parameters
The parameters are explained as follows:
- name
- An optional symbol, starting in column 1, that is the name on
the CSVDYLPA macro invocation. The name must conform to the rules
for an ordinary assembler language symbol.
- REQUEST=DELETE
- A required parameter. REQUEST=DELETE indicates to remove one or
more modules from LPA. You can only remove a module that has been
added to LPA using dynamic LPA services. You cannot remove a module
that was built into LPA during IPL.
REQUEST=DELETE must be used
with extreme caution, as the system does not keep track of whether
or not any code is currently running within the code that is to be
deleted. It is up to the caller to request deletion at an appropriate
point.
If the module was added with BYADDR=YES,
the system will not free the storage for the module. Otherwise, the
system will free the storage for the module when there are no longer
any major names or aliases associated with that storage.
- ,MODINFO=modinfo
- A required input/output parameter that specifies an area that
contains contiguous entries. Each entry contains a module name, a
delete token (when TYPE=BYTOKEN is specified or defaulted), and status
flags. Each entry is mapped by DSECT LPMED in macro CSVLPRET. The
number of entries must match the value provided via the nummod parameter.
The flags area in each entry should be cleared before calling the
CSVDYLPA service.
When deleting a module using TYPE=BYTOKEN, you
use the token returned by CSVDYLPA REQUEST=ADD for that module (placing
it in the LpmedDeleteToken field of the LPMED DSECT).
On output,
among other possibilities, the status area might indicate: - The module had not been added using dynamic LPA services;
- You are not authorized to process the particular module.
For a complete list of the possible problem types, refer
to the equate symbols beginning with LpmedModprob in the CSVLPRET
data area.
Within each LPMED, the module name should be left-justified
padded on the right with EBCDIC blanks if less than 8 characters long.
There should be no embedded blanks.
To code: Specify
the RS-type address, or address in register (2)-(12), of a character
field.
- ,NUMMOD=nummod
- A required input parameter that contains the number of entries
in the area specified by the modinfo parameter. Nummod must be in
the range 1-256.
To code: Specify the RS-type address, or
address in register (2)-(12), of a fullword field, or specify a literal
decimal value.
- ,TYPE=BYTOKEN
- ,TYPE=CURRENT
- ,TYPE=OLDEST
- ,TYPE=VALUE
- An optional parameter that indicates the type of deletion requested.
The default is TYPE=BYTOKEN.
- ,TYPE=BYTOKEN
- indicates that the delete token is provided, and identifies the
instance of the module to delete.
- ,TYPE=CURRENT
- indicates that the most current instance of the module that was
added by dynamic LPA services is to be deleted.
- ,TYPE=OLDEST
- indicates that the oldest instance of the module that was added
by dynamic LPA services, other than the current one, is to be deleted.
- ,TYPE=VALUE
- indicates that the processing depends on the value provided by
the TYPEVALUE parameter.
- ,TYPEVALUE=typevalue
- When TYPE=VALUE, a required input parameter that contains the
TYPE value. You can get equates to use when setting typevalue by
using the list form of the CSVDYLPA macro. For example, an invocation
of CSVDYLPA MF=(L,LNAME) produces equates LNAME_XTYPE_BYTOKEN, LNAME_XTYPE_CURRENT,
and LNAME_XTYPE_OLDEST.
To code: Specify the RS-type address,
or address in register (2)-(12), of a byte field.
- ,SECMODCHECK=YES
- ,SECMODCHECK=NO
- An optional parameter that indicates whether or not the RACF FACILITY
class check should be done for the module or alias being deleted.
This keyword is ignored unless the caller is supervisor state, system
key, system PKM, or APF authorized. In all other cases, SECMODCHECK=YES
is used. The default is SECMODCHECK=YES.
- ,SECMODCHECK=YES
- indicates to do the RACF FACILITY class check. For
a caller in supervisor state, system key, system PKM, or APF authorized,
the operation is allowed when the check results either in "success"
or "no matching profile exists." For unauthorized callers, the operation
is allowed only when the check results in "success".
- ,SECMODCHECK=NO
- indicates not to do the RACF FACILITY class check.
- ,RETCODE=retcode
- An optional output parameter into which the return code is to
be copied from GPR 15.
To code: Specify the RS-type address
of a fullword field, or register (2)-(12).
- ,RSNCODE=rsncode
- An optional output parameter into which the reason code is to
be copied from GPR 0.
To code: Specify the RS-type address
of a fullword field, or register (2)-(12).
- ,PLISTVER=IMPLIED_VERSION
- ,PLISTVER=MAX
- ,PLISTVER=0
- An optional input parameter that 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, which 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.
- 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, when both are
assembled with the same level of the system. In this way, MAX ensures
that the parameter list does not overwrite nearby storage.
- 0, if you use the currently available parameters.
To code: Specify one of the following: - IMPLIED_VERSION
- MAX
- A decimal value of 0
- ,MF=S
- ,MF=(L,list addr)
- ,MF=(L,list addr,attr)
- ,MF=(L,list addr,0D)
- ,MF=(E,list addr)
- ,MF=(E,list addr,COMPLETE)
- An optional input parameter that specifies the macro form.
Use
MF=S to specify the standard form of the macro, which builds an inline
parameter list and generates the macro invocation to transfer control
to the service. MF=S is the default.
Use MF=L to specify the
list form of the macro. Use the list form together with the execute
form of the macro for applications that require reentrant code. The
list form defines an area of storage that the execute form uses to
store the parameters. Only the PLISTVER parameter may be coded with
the list form of the macro.
Use MF=E to specify the execute
form of the macro. Use the execute form together with the list form
of the macro for applications that require reentrant code. The execute
form of the macro stores the parameters into the storage area defined
by the list form, and generates the macro invocation to transfer control
to the service.
- ,list addr
- The name of a storage area to contain the parameters. For MF=S
and MF=E, this can be an RS-type address or an address in register
(1)-(12).
- ,attr
- An optional 1- to 60-character input string that you use to force
boundary alignment of the parameter list. Use a value of 0F to force
the parameter list to a word boundary, or 0D to force the parameter
list to a doubleword boundary. If you do not code attr,
the system provides a value of 0D.
- ,COMPLETE
- Specifies that the system is to check for required parameters
and supply defaults for omitted optional parameters.
|