|
The COFNOTIF macro allows an application using VLF to notify VLF
that some set of VLF objects is no longer valid because of changes
to the permanent data. Before issuing COFNOTIF, or any VLF macro,
you need to understand the information on using the virtual lookaside
facility (VLF) that appears in z/OS MVS Programming: Authorized Assembler Services Guide.
You can issue COFNOTIF to notify VLF about the following kinds
of changes: - One or more major names have been deleted. You must specify FUNC=DELMAJOR
and MAJLIST.
You might need to specify MAJNUM and MAJLEN, and you
also might need to specify CLASS.
- One or more minor names have been changed. You must specify FUNC=DELMINOR
(for a deletion), FUNC=ADDMINOR (for an addition), or FUNC=UPDMINOR
(for a change). You must also specify MAJOR and MINLIST.
You might
need to specify MINNUM and MINLEN, and you also might need to specify
CLASS.
- A volume is no longer in use. You must specify FUNC=PURGEVOL
and VOLUME.
Note that an update to a minor name with one or more alias names
means that you must specify the minor name and each alias name. VLF
views each alias name as a separate minor name and thus needs to know
about the update under each name.
Environment
The requirements for the caller are:
Environmental factor |
Requirement |
---|
Minimum authorization: |
Supervisor state, with PSW key 0-7 |
Dispatchable unit mode: |
Task or SRB |
Cross memory mode: |
Any PASN, any HASN, any SASN |
AMODE: |
24- or 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 |
Input register information
Before issuing the COFNOTIF 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
- Reason code
- 1
- Used as a work register by the system
- 2-14
- Unchanged
- 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-14
- Unchanged
- 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.
Syntax
The standard form of the COFNOTIF macro is written as follows:
Syntax |
Description |
---|
|
|
name |
name: Symbol. Begin name in
column 1. |
|
|
␢ |
One or more blanks must precede COFNOTIF |
|
|
COFNOTIF |
|
|
|
␢ |
One or more blanks must follow COFNOTIF |
|
|
FUNC=DELMAJOR |
|
FUNC=DELMINOR |
|
FUNC=ADDMINOR |
|
FUNC=UPDMINOR |
|
FUNC=PURGEVOL |
|
|
|
,MAJLIST=majlist |
majlist: Rx-type address or
register (2) - (12). |
|
You must specify MAJLIST=majlist when
you specify FUNC=DELMAJOR. |
|
|
,MAJNUM=majnum |
majnum: Rx-type address or
register (2) - (12). |
|
|
,MAJLEN=majlen |
majlen: Rx-type address or
register (2) - (12). |
|
|
,MAJOR=major |
major. Rx-type address or register
(2) - (12). |
|
You must specify MAJLIST=major when
you specify FUNC=DELMINOR, FUNC=ADDMINOR, or FUNC=UPDMINOR. |
|
|
,MINLIST=minlist |
minlist. Rx-type address or
register (2) - (12). |
|
You must specify MINLIST=minlist when
you specify FUNC=DELMINOR, FUNC=ADDMINOR, or FUNC=UPDMINOR. |
|
|
,MINNUM=minnum |
minnum: Rx-type address or
register (2) - (12). |
|
|
,MINLEN=minlen |
minlen: Rx-type address or
register (2) - (12). |
|
|
,VOLUME=volume |
volume: Rx-type address or
register (2) - (12). |
|
|
,CLASS=class |
class: Rx-type address or register
(2) - (12). |
|
|
,RETCODE=retcod |
retcod: Rx-type address or
register (2) - (12). |
|
|
,RSNCODE=rsncod |
rsncod: Rx-type address or
register (2) - (12). |
|
|
Parameters
The parameters of the standard form are explained as follows:
- FUNC=DELMAJOR
- FUNC=DELMINOR
- FUNC=ADDMINOR
- FUNC=UPDMINOR
- FUNC=PURGEVOL
- Is a required parameter that indicates the nature of the change
that you are reporting. The meaning of each value is as follows:
- FUNC=DELMAJOR specifies that one or more major names have been
deleted.
- FUNC=DELMINOR specifies that one or more minor names have been
deleted from a major name.
- FUNC=ADDMINOR specifies that one or more minor names have been
added to a major name.
- FUNC=UPDMINOR specifies that the objects corresponding to one
or more existing minor names have been changed.
- FUNC=PURGEVOL specifies that a physical storage device has been
logically disconnected from the system, or that all of the information
on the device has been deleted or replaced.
- ,MAJLIST=majlist
- Identifies the list of major names with which the change is associated.
When you specify FUNC=DELMAJOR, you must specify MAJLIST to identify
the major name(s) VLF is to delete. If the list contains more than
one major name, you must also specify MAJNUM. Each major name in
the list must be the same length. If the major name length is not
64, you must also specify MAJLEN.
Use the following structure
to specify the major name for a PDS class: - 6-character volume serial name (padded with blanks if necessary)
- PDS name (a maximum of 44 characters), padded with blanks to equal
64 or the MAJLEN value.
For example, assume that you want to delete the major
name MYPDS that resides on volume VOL123. Specify VOL123MYPDS, padded
with blanks as required.
- ,MAJNUM=majnum
- An optional halfword parameter that contains the number of major
names in the major name list. The default is 1.
- ,MAJLEN=majlen
- An optional halfword parameter that contains the length of each
input major name. The default is 64.
Note: VLF uses the length you
specify to scan the major name list. The length of the significant
part of the name (the part VLF uses to search its storage for objects
with that major name) depends on the value specified for the major
name on the COFDEFIN macro that defined the class. If the COFDEFIN
length is greater than the COFNOTIF length, VLF pads the name on the
right with blanks.
- ,MAJOR=major
- Identifies the major name associated with the change to one or
more minor names. When you specify FUNC=DELMINOR, FUNC=ADDMINOR,
or FUNC=DELMINOR, you must specify MAJOR. If the length is not 64,
you must also specify MAJLEN.
Use the following structure to specify
the major name for a PDS class: - 6-character volume serial name (padded with blanks if necessary)
- PDS name (a maximum of 44 characters), padded with blanks to equal
64 or the MAJLEN value.
For example, assume that you want to delete the major
name MYPDS that resides on volume VOL123. Specify VOL123MYPDS, padded
with blanks as required.
- ,MINLIST=minlist
- Identifies the list of minor names with which the change is associated.
When you specify FUNC=DELMINOR, FUNC=ADDMINOR, or FUNC=UPDMINOR,
you must specify MINLIST. If the list contains more than one minor
name, you must also specify MINNUM. If the length is not 64, then
you must also specify MINLEN. Each name in the list must be the same
length.
- ,MINNUM=minnum
- An optional halfword parameter that contains the number of minor
names in the minor name list. The default is 1.
- ,MINLEN=minlen
- An optional halfword parameter that contains the length of each
name in the input minor name list. The default is 64.
Note: VLF uses
the length you specify to scan the minor name list. The length of
the significant part of the name (the part VLF uses to search its
storage for objects with that minor name) depends on the value specified
for the minor name on the COFDEFIN macro that defined the class.
If the COFDEFIN length is greater than the COFNOTIF length, VLF pads
the name on the right with blanks.
- ,VOLUME=volume
- Specifies the volume serial number of a resource that was logically
removed from the system. Specifying VOLUME causes VLF to purge any
objects related to the resource identified.
Specify VOLUME only
for objects with major names that correspond to PDS names and only
when you also specify FUNC=PURGEVOL.
- ,CLASS=class
- Specifies a 7-byte field that identifies the name of the class
associated with the change. CLASS is an optional parameter. Specify
CLASS only for a non-PDS class. If you omit CLASS or specify a PDS
class, VLF assumes that the change being reported applies to all PDS
classes.
- ,RETCODE=retcod
- Specifies the location where the system is to store the return
code. The return code is also in general purpose register (GPR) 15.
If you specify a storage location, it must be on a fullword boundary.
- ,RSNCODE=rsncod
- Specifies the location where the system is to store the reason
code. The reason code is also in GPR 0. If you specify a storage location,
it must be on a fullword boundary.
Return and reason codes
When the COFNOTIF macro returns control to your program, GPR 15
(and retcod, if you coded RETCODE) contains one
of the following hexadecimal return codes. GPR 0 (and rsncod,
if you coded RSNCODE) contains one of the following hexadecimal reason
codes.
Table 1. Return and Reason
Codes for the COFNOTIF MacroHexadecimal Return Code |
Hexadecimal Reason Code |
Meaning and Action |
---|
00 |
00 |
Meaning: Successful completion. VLF now
reflects the indicated changes. Action: None.
|
02 |
08 |
Meaning: No changes to VLF storage were
necessary. Action: None.
|
02 |
0C |
Meaning: The specified class was not defined
to VLF. This code is returned only for an input class that does not
have a major name to PDS correspondence. No changes to VLF storage
occurred. Action: None.
|
02 |
10 |
Meaning: The specified class is not defined
in the active COFVLFxx parmlib member. No changes to VLF storage occurred. Action:
None required.
|
18 |
00 |
Meaning: Program error. The parameter list
ALET is either a SASN ALET or is not on the caller's dispatchable
unit access list (DU-AL). Action: Make necessary corrections
to ensure that the parameter list ALET is on the dispatchable unit
access list (DU-AL) and rerun the program.
|
18 |
08 |
Meaning: Program error. The input major
name was qualified using either a SASN ALET or an ALET not on the
caller's dispatchable unit access list (DU-AL). Action:
Make necessary corrections to ensure that the major name ALET is on
the dispatchable unit access list (DU-AL) and rerun the program.
|
18 |
0C |
Meaning: Program error. The input minor
name was qualified using either a SASN ALET or an ALET not on the
caller's dispatchable unit access list (DU-AL). Action:
Make necessary corrections to ensure that the minor name ALET is on
the dispatchable unit access list (DU-AL) and rerun the program.
|
1C |
nnnn |
Meaning: Program error. An error occurred
while accessing a major name in the input major name list; nnnn identifies
the list position of the major name that caused the error. COFNOTIF
processing terminates. Action: Check parameters such as
MAJNUM and MAJLEN for accuracy. Make necessary corrections and rerun
the program.
|
20 |
nnnn |
Meaning: Program error. An error occurred
while accessing a minor name in the input minor name list; nnnn identifies
the list position of the minor name that caused the error. COFNOTIF
processing terminates. Action: Check parameters such as
MINNUM and MINLEN for accuracy. Make necessary corrections and rerun
the program.
|
28 |
00 |
Meaning: Environmental error. VLF is not
active. Action: Issue the START VLF command and rerun the
program.
|
2C |
nnnn |
Meaning: System error. There was an unexpected
error in VLF. Action: Record the return and reason codes
and supply them to the appropriate IBM® support
personnel.
|
|