This function removes the link between the user and the environment. If the function is called by the last user, the environment is disabled. The environment is addressed by the short ID that is returned by ENABLE ENVIRONMENT.
The DISENV function evaluates only the function operands described below.
Format FCT=*DISENV
Operation | Operands |
|
|
| |
| |
|
Operand descriptions
ENVID
Designates the short ID of the environment to be disconnected or disabled. If the same parameter list is used as for ENABLE ENVIRONMENT, the short ID need not be specified, since it will already be contained in the FPAMENEV field of the parameter list.
Only a direct specification is allowed for the MF=L form.
=nmbr
Direct entry of a decimal numeric value for the short ID of the environment.
=addr
Address of a 4-byte field containing the short ID of the environment.
=(r)
Register containing the short ID of the environment.
FCT
Defines the FASTPAM function to be executed.
Only a direct specification is allowed for the MF=L form.
= *DISENV
Direct specification of the DISABLE ENVIRONMENT function.
This function removes the link between the user and the environment. If the function is called by the last user, the environment is disabled. The environment is addressed via the short ID that is returned by ENABLE ENVIRONMENT.
This function will not be executed if there are open files which are still using the environment (return code FPAMOFI).
Only a direct specification is allowed for the MF=L form.
= addr
Symbolic address of a 1-byte field containing the value for the DISABLE ENVIRONMENT function.
= (r)
Register containing the value for the DISABLE ENVIRONMENT function.
MACID
See the description under the format FCT=*ENAENV on "FASTPAM function: ENABLE ENVIRONMENT".
MF
The forms of the MF operand are described in detail in the appendix, "Macro types".
PARAM
See the description under the format FCT=*ENAENV on "FASTPAM function: ENABLE ENVIRONMENT".
PREFIX
See the description under the format FCT=*ENAENV on "FASTPAM function: ENABLE ENVIRONMENT".
Possible return codes of the FASTPAM function FCT=*DISENV
Standard header: ccbbaaaa
The following code relating to execution of the FPAMSRV macro is returned in the standard header (cc = SUBCODE2, bb = SUBCODE1, aaaa = MAINCODE):
X'cc' | X'bb' | X'aaaa' | Meaning |
X'00' | X'0000' | Function executed successfully. | |
X'01' | X'000F' | Function not executed. | |
X'20' | X'0028' | Function not executed. | |
X'40' | X'0036' | The *DISIPO/*DISENV function cannot be executed, since files opened with the corresponding I/O area pool or environment still exist. | |
X'40' | X'0056' | A TU user is attempting to disable a FASTPAM environment created by a privileged user (TPR). |
Return codes of the FPAMSRV macro
The field names and the EQU instructions for return codes which are generated by the C or D form of the macro begin with the string FPAM by default. This string can be changed by means of PREFIX and MACID.
The return codes are placed in the header of the parameter list (standard header):
The main return code, in a half-word with the name FPAMMRET.
Subcode1, in a byte with the name FASTSR1.
Subcode1 describes error classes which allow the caller to respond to similar error situations.
The caller can refer back to the main code as well as to subcode1.Subcode2, in a byte with the name FPAMSR2.
Subcode2 specifies the individual main codes more precisely.
Further return codes, whose meanings are defined by conventions valid for all macros, can be found in the table on "Standard header" (standard header).
If the return codes cannot be placed in the header (because it is not accessible, for example), the calling program is terminated with an error message, and the STXIT event for an unrecoverable program error is generated.
The calling program is terminated if one of the following errors occurs with respect to the parameter list:
the list is not assigned to the caller
the list is not aligned on a word boundary
the list is write-protected.
In the following section, the main return codes are assigned to the appropriate subcode1 classes and are described more precisely via subcode2.
Standard header: ccbbaaaa
The following code relating to execution of the CATAL macro is returned in the standard header (cc = SUBCODE2, bb = SUBCODE1, aaaa = MAINCODE):
X'cc' | X'bb' | X'aaaa' | meaning |
X'00' | X'0000' | Function executed successfully. | |
X'01' | X'0001' | Function not executed. | |
X'01' | X'0002' | Function not executed. | |
X'01' | X'0005' | Function not executed. I | |
X'01' | X'0006' | Function not executed. | |
X'01' | X'0007' | Function not executed. | |
X'01' | X'0008' | Function not executed. | |
X'01' | X'0009' | Function not executed. | |
X'01' | X'000A' | Function not executed. | |
X'01' | X'000B' | Function not executed. | |
X'01' | X'000C' | Function not executed. | |
X'01' | X'000D' | Function not executed. | |
X'01' | X'000E' | Function not executed. Note | |
X'01' | X'000F' | Function not executed. | |
X'01' | X'0010' | Function not executed. | |
X'01' | X'0011' | Function not executed. | |
X'01' | X'0012' | Function not executed.
| |
X'01' | X'0013' | Invalid specification for the last block. | |
X'01' | X'0014' | Function not executed. | |
X'01' | X'0015' | Function not executed. | |
X'02' | Function not executed. | ||
X'03' | Function not executed. | ||
X'20' | X'0028' | Function not executed. | |
X'40' | X'0032' | The environment or I/O area pool could not be created in resident memory. | |
X'01' | X'40' | X'0032' | The user ID of the task that created the environment or I/O area pool does not have the required FASTPAM authorization. Response: inform the system administrator. |
X'02' | X'40' | X'0032' | Not enough room in actual memory. |
X'03' | X'40' | X'0032' | The amount of resident main memory allocated at the start of the |
X'04' | X'40' | X'0032' | Connection to a non-resident environment or a non-resident I/O area |
X'05' | X'40' | X'0032' | This FASTPAM version only supports non-resident data spaces. |
X'40' | X'0033' | General DMS error during OPEN/CLOSE. The DMS return code is passed in the field FPAMDMSC. | |
X'40' | X'0035' | An I/O operation is being executed on the memory pages that are to be fixed during execution of the *ENAENV/*ENAIPO function. This return code only occurs when creating the environment or I/O area pool. | |
X'40' | X'0036' | The *DISIPO/*DISENV function cannot be executed, since files opened with the corresponding I/O area pool or environment still exist. | |
X'40' | X'0037' | System resource bottleneck. | |
X'40' | X'0038' | The named FASTPAM resource can be enabled by TPR tasks only. | |
X'40' | X'0039' | The named FASTPAM resource can only be enabled by tasks of an ID with FASTPAM privileges. | |
X'40' | X'003B' | The user wishes to join an existing environment with some other operand value for ACCLSTS. | |
X'40' | X'003C' | The user wishes to join an existing environment with some other operand value for ACCNUMB. | |
X'40' | X'003D' | The user wishes to join an existing environment with some other operand value for IPOADDR. | |
X'40' | X'003E' | The user wishes to join an existing environment with some other operand value for IPOSIZE. | |
X'40' | X'003F' | The user wishes to join an existing environment with some other operand value for MAXIOLN. | |
X'40' | X'0040' | The user wishes to join an existing environment with some other operand value for EVENTNG. | |
X'40' | X'0041' | The user wishes to join an existing environment with some other event item. | |
X'40' | X'0042' | The value specified for BLKSIZE in the FASTPAM OPEN does not match the value in the catalog entry. | |
X'40' | X'0046' | The user wishes to join an existing environment but is not connected to the associated event item short ID. | |
X'40' | X'0047' | The scope of the event item is smaller than that of the FPAMACC parameter list memory area. | |
X'40' | X'0048' | The task is already connected to the environment. | |
X'40' | X'0049' | The task is already connected to the I/O area pool. | |
X'40' | X'004A' | The specified user memory area overlaps a DIV window. | |
X'40' | X'004B' | The specified user memory area overlaps a FASTPAM user memory | |
X'40' | X'004C' | The request to allocate memory for FPAMACC parameter lists is not | |
X'40' | X'004D' | The named file is not a PAM file. | |
X'40' | X'004E' | When calling FPAMSRV with the *CLOSE function, the operand LASTBLK was specified. This operand is ignored, since the file was opened with MODE=*INPUT or SHARUPD=*YES. | |
X'40' | X'0050' | RFA is not supported by FASTPAM. | |
X'40' | X'0051' | SPD is not supported by FASTPAM. | |
X'40' | X'0052' | PPD is not supported by FASTPAM. | |
X'40' | X'0053' | Tape files are not supported by FASTPAM. | |
X'40' | X'0054' | *DUMMY is not supported by FASTPAM. | |
X'40' | X'0055' | The specified secondary allocation is too small for a logical block. | |
X'40' | X'0056' | A TU task is attempting to release a TPR-created FASTPAM resource or to open a file by with such a resource. | |
X'40' | X'0057' | The request to allocate memory for the I/O area pool is not complete. | |
X'40' | X'0058' | FASTPAM only supports files with the attribute 'BLKCTRL = NO'. | |
X'40' | X'0059' | A TU task is using a TPR_OPEN_ID. | |
X'40' | X'005A' | 'WRCHK=YES' was specified in a call to FILE. | |
X'40' | X'005B' | The 'ENAMP' call to create the memory pool for the access lists or I/O area pool was not specified with 'FIXED=YES'. This is required even if 'SCOPE=LOCAL'. |
Notes on return codes
Cause of return codes with subcode1 = X'01' (PARAMETER ERROR):
The parameter in question was not specified correctly.
In the case of operand values that can be overwritten by ADD-FILE-LINK, the operand value set by this command is invalid. Only the values that can also be specified in the OPEN are permitted.
If an error that affects the entire FPAMACC parameter list area or the I/O area pool is detected (e.g. if only a part of the I/O area pool is located in a memory pool), return code X'0005' (INVALID ADDRESS OF ACCESS LISTS)
or X'0007' (INVALID NUMBER OF IOAREA POOL)
is output instead of X'0006' (INVALID ADDRESS OF ACCESS LISTS)
or X'0008' (INVALID SIZE OF IOAREA POOL)
.
Interdependencies of other functions
If the user attempts to free any of the memory areas that were made resident by the system (when executing ENABLE ENVIRONMENT or ENABLE IOAREA POOL) before calling the DISABLE function, the request will be denied by the corresponding RELM, RELMP or DISMP function, and an appropriate return code will be issued.
A RELMP will also be denied for common memory pool areas that were defined as resident FASTPAM areas by tasks other than the user's own task.
If the user attempts to free an event item that was specified in ENABLE ENVIRONMENT before the DISABLE ENVIRONMENT function is executed, this request will also be rejected by the corresponding DISABLE EVENT ITEM function (macro DISEI) with a return code.
A call to USER-CLOSE-ALL will not be effective for files opened with FASTPAM.
Layout of the parameter list
The following parameter list is issued by a FPAMSRV macro call:
FPAMSRV MF=D 1 STACK PRINT 1 PRINT NOGEN 2 *,##### PREFIX=F, MACID=PAM ##### 1 #INTF REFTYPE=REQUEST,INTNAME=FPAMSRV,INTCOMP=002 1 FPAMPA DS 0F BEGIN of PARAMETERAREA _INOUT 1 FHDR MF=(C,FPAM),EQUATES=YES 2 DS 0A 2 FPAMFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER 2 * 2 FPAMIFID DS 0A 0 INTERFACE IDENTIFIER 2 FPAMFCTU DS AL2 0 FUNCTION UNIT NUMBER 2 * BIT 15 HEADER FLAG BIT, 2 * MUST BE RESET UNTIL FURTHER NOTICE 2 * BIT 14-12 UNUSED, MUST BE RESET 2 * BIT 11-0 REAL FUNCTION UNIT NUMBER 2 FPAMFCT DS AL1 2 FUNCTION NUMBER 2 FPAMFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER 2 * 2 FPAMRET DS 0A 4 GENERAL RETURN CODE 2 * 2 * GENERAL_RETURN_CODE CLEARED (X'00000000') MEANS 2 * REQUEST SUCCESSFUL PROCESSED AND NO ADDITIONAL INFORMATION 2 * 2 FPAMSRET DS 0AL2 4 SUB RETURN CODE 2 FPAMSR2 DS AL1 4 SUB RETURN CODE 2 2 * ALWAYS CLEARED (X'00') IF MAIN_RETURN_CODE IS X'FFFF' 2 * Standard subcode2 values as defined by convention: 2 FPAMR2OK EQU X'00' All correct, no additional info 2 FPAMR2NA EQU X'01' Successful, no action was necessary 2 FPAMR2WA EQU X'02' Warning, particular situation 2 FPAMSR1 DS AL1 5 SUB RETURN CODE 1 2 * 2 * GENERAL INDICATION OF ERROR CLASSES 2 * 2 * CLASS A X'00' FUNCTION WAS SUCCESSFULLY PROCESSED 2 * CLASS B X'01' - X'1F' PARAMETER SYNTAX ERROR 2 * CLASS C X'20' INTERNAL ERROR IN CALLED FUNCTION 2 * CLASS D X'40' - X'7F' NO CLASS SPECIFIC REACTION POSSIBLE 2 * CLASS E X'80' - X'82' WAIT AND RETRY 2 * 2 FPAMRFSP EQU X'00' FUNCTION SUCCESSFULLY PROCESSED 2 FPAMRPER EQU X'01' PARAMETER SYNTAX ERROR 2 * 3 GLOBALLY DEFINED ISL ERROR CODES IN CLASS X'01' - X'1F' 2 FPAMRFNS EQU X'01' CALLED FUNCTION NOT SUPPORTED 2 FPAMRFNA EQU X'02' CALLED FUNCTION NOT AVAILABLE 2 FPAMRVNA EQU X'03' INTERFACE VERSION NOT SUPPORTED 2 * 2 FPAMRAER EQU X'04' ALIGNMENT ERROR 2 FPAMRIER EQU X'20' INTERNAL ERROR 2 FPAMRCAR EQU X'40' CORRECT AND RETRY 2 * 2 GLOBALLY DEFINED ISL ERROR CODES IN CLASS X'40' - X'7F' 2 FPAMRECR EQU X'41' SUBSYSTEM (SS) MUST BE CREATED 2 * EXPLICITELY BY CREATE-SS 2 FPAMRECN EQU X'42' SS MUST BE EXPLICITELY CONNECTED 2 * 2 FPAMRWAR EQU X'80' WAIT FOR A SHORT TIME AND RETRY 2 FPAMRWLR EQU X'81' " LONG " 2 FPAMRWUR EQU X'82' WAIT TIME IS UNCALCULABLY LONG 2 * BUT RETRY IS POSSIBLE 2 * 2 GLOBALLY DEFINED ISL ERROR CODES IN CLASS X'80' - X'82' 2 FPAMRTNA EQU X'81' SS TEMPORARILY NOT AVAILABLE 2 FPAMRDH EQU X'82' SS IN DELETE / HOLD 2 * 2 FPAMMRET DS 0AL2 6 MAIN RETURN CODE 2 FPAMMR2 DS AL1 6 MAIN RETURN CODE 2 2 FPAMMR1 DS AL1 7 MAIN RETURN CODE 1 2 * 2 * SPECIAL LAYOUT OF LINKAGE_MAIN_RETURN_CODE (YYYY IN X'00XXYYYY') 2 * 2 FPAMRLNK EQU X'FFFF' LINKAGE ERROR / REQ. NOT PROCESSED 2 FPAMFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH 2 * 1 * 1 * SUB RETURN CODE2 1 * 1 FPAMPRIV EQU X'01' FASTPAM PRIVILEGE MISSING 1 FPAMRMS EQU X'02' REAL MEMORY SHORTAGE 1 FPAMULE EQU X'03' USER LIMIT EXCEEDED 1 FPAMENR EQU X'04' EXISTING NOT RESIDENT 1 FPAMDSA EQU X'05' DATA SPACE ADDRESS 1 * 1 * MAINCODE 1 * 1 FPAMMFSP EQU X'0000' FUNCTION SUCCESSFULLY PROCESSED = 0 1 FPAMIENN EQU X'0001' INVALID ENVIRONMENT NAME = 1 1 FPAMIIPN EQU X'0002' INVALID IOAREA POOL NAME = 2 1 FPAMIALA EQU X'0005' INVALID ADDRESS OF ACCESS LISTS = 5 1 FPAMIALN EQU X'0006' INVALID NUMBER OF ACCESS LISTS = 6 1 FPAMIIPA EQU X'0007' INVALID ADDRESS OF IOAREA POOL = 7 1 FPAMIIPS EQU X'0008' INVALID SIZE OF IOAREA POOL = 8 1 FPAMISUP EQU X'0009' INVALID SHARE UPDATE = 9 1 FPAMIMAX EQU X'000A' INVALID MAXIMUM IO-LENGTH = 10 1 FPAMIEVN EQU X'000B' INVALID EVENTING = 11 1 FPAMIMOD EQU X'000C' INVALID MODE = 12 1 FPAMIEID EQU X'000D' INVALID EVENT-ITEM SHORT-ID = 13 1 FPAMIBLS EQU X'000E' INVALID BLOCKSIZE = 14 1 FPAMIENI EQU X'000F' INVALID ENVIRONMENT SHORT-ID = 15 1 FPAMIIPI EQU X'0010' INVALID IOAREA POOL SHORT-ID = 16 1 FPAMIOPI EQU X'0011' INVALID OPEN SHORT-ID = 17 1 FPAMIRES EQU X'0012' INVALID RESIDENT = 18 1 FPAMILBL EQU X'0013' INVALID LAST BLOCK = 19 1 FPAMIENV EQU X'0014' INVALID ENV-SPECIFICATION = 20 1 FPAMILRF EQU X'0015' INVALID LARGE_FILE-SPECIFICATION = 21 1 FPAMMIER EQU X'0028' INTERNAL ERROR = 40 1 FPAMNORE EQU X'0032' SPACE NOT RESIDENT = 50 1 FPAMDMSE EQU X'0033' DMS ERROR DURING OPEN/CLOSE = 51 1 FPAMRIO EQU X'0035' RUNNING IO = 53 1 FPAMOFI EQU X'0036' OPENED FILES = 54 1 FPAMSRES EQU X'0037' SHORTAGE OF RESOURCES = 55 1 FPAMTPR EQU X'0038' ENABLE_FROM_TPR_ONLY = 56 1 FPAMNPRI EQU X'0039' NO_PRIVILEGE_FOR_CONNECTION = 57 1 FPAMDAC@ EQU X'003B' DIFFERENT_ACCESS_LISTS_@ = 59 1 FPAMDAC# EQU X'003C' DIFFERENT_ACCESS_LISTS_# = 60 1 FPAMDIP@ EQU X'003D' DIFFERENT_IOAREA_POOL_@ = 61 1 FPAMDIPS EQU X'003E' DIFFERENT_IOAREA_POOL_SIZE = 62 1 FPAMDMAX EQU X'003F' DIFFERENT_MAXIOLEN = 63 1 FPAMDEVE EQU X'0040' DIFFERENT_EVENTING = 64 1 FPAMDEVI EQU X'0041' DIFFERENT_EVENT_ITEM = 65 1 FPAMDBC EQU X'0042' DIFFERENT_BLKSIZE_IN_CATALOG = 66 1 FPAMNEIC EQU X'0046' NO_EVENT_ITEM_CONNECTION = 70 1 FPAMEISS EQU X'0047' EVENT_ITEM_SCOPE_TO_SMALL = 71 1 FPAMENEX EQU X'0048' ENVIRONMENT_NAME_EXISTING = 72 1 FPAMINEX EQU X'0049' IOAREA_POOL_NAME_EXISTING = 73 1 FPAMODS EQU X'004A' OVERLAPPING_DIV_SPACE = 74 1 FPAMOFS EQU X'004B' OVERLAPPING_FASTPAM_SPACE = 75 1 FPAMALNA EQU X'004C' ACCESS_LISTS_NOT_ALLOCATED = 76 1 FPAMNPAF EQU X'004D' NO_PAM_FILE = 77 1 FPAMLBIN EQU X'004E' LAST BLOCK BUT INPUT = 78 1 FPAMRFA EQU X'0050' RFA_NOT_SUPPORTED = 80 1 FPAMSPD EQU X'0051' SPD_NOT_SUPPORTED = 81 1 FPAMPPD EQU X'0052' PPD_NOT_SUPPORTED = 82 1 FPAMTAPE EQU X'0053' TAPE_NOT_SUPPORTED = 83 1 FPAMDUMM EQU X'0054' DUMMY_FILE_NOT_SUPPORTED = 84 1 FPAMSECA EQU X'0055' SEC_ALLOCATION_TOO_SMALL = 85 1 FPAMTPRE EQU X'0056' TPR_ENVIRONMENT_OR_IOAREA_POOL = 86 1 FPAMIPAL EQU X'0057' IOAREA_POOL_NOT_ALLOCATED = 87 1 FPAMBLKN EQU X'0058' BLKCTRL_NOT_SUPPORTED = 88 1 FPAMTPRO EQU X'0059' TPR_OPEN_ID = 89 1 FPAMWRCN EQU X'005A' WRCHK_NOT_SUPPORTED = 90 1 FPAMMPNF EQU X'005B' MEMORY_POOL_NOT_FIXED = 91 1 * 1 * &P.PAM FUNCTIONS: 1 * 1 FPAMENEV EQU 1 ENABLE ENVIRONMENT 1 FPAMDIEV EQU 2 DISABLE ENVIRONMENT 1 FPAMENIP EQU 3 ENABLE IOAREA POOL 1 FPAMDIIP EQU 4 DISABLE IOAREA POOL 1 FPAMOPEN EQU 5 OPEN FILE 1 FPAMCLOS EQU 6 CLOSE FILE 1 * 1 * INPUT/OUTPUT PARAMETER 1 * 1 FPAMENID DS F ENVIRONMENT SHORT-ID 1 FPAMIPID DS F IOAREA POOL SHORT-ID 1 FPAMOPID DS F OPEN SHORT-ID 1 * 1 * OUTPUT PARAMETER 1 * 1 FPAMDMSC DS XL4 DMS-CODE 1 * 1 * INPUT PARAMETER 1 * 1 FPAMENNA DS CL54 ENVIRONMENT NAME 1 FPAMIPNA DS CL54 IOAREA POOL NAME 1 FPAMLINK DS CL8 LINK 1 FPAMFILE DS CL54 FILENAME 1 FPAMLARF DS AL1 LARGE_FILE 1 FPAMFRBD EQU 0 LARGE_FILE=FORBIDDEN 1 FPAMALWD EQU 1 LARGE_FILE=ALLOWED 1 FPAMENV DS AL1 ENV 1 FPAMHOST EQU 1 ENV=HOST 1 FPAMXCS EQU 2 ENV=XCS 1 FPAMACLA DS A ADDRESS OF ACCESS LISTS 1 FPAMACLN DS F NUMBER OF ACCESS LISTS 1 FPAMOFF DS A ADDR. OF IOAREA POOL WITHIN ADDRESS SPACE 1 FPAMALET DS F ALET OF DATA SPACE 1 FPAMIPS DS F SIZE OF IOAREA POOL (4K) 1 FPAMEID DS F EVENT-ITEM SHORT-ID 1 FPAMLABL DS F LAST BLOCK NUMBER 1 FPAMMODE DS AL1 OPEN MODE 1 FPAMINPT EQU 1 MODE=INPUT 1 FPAMINOT EQU 2 MODE=INOUT 1 FPAMOUTI EQU 3 MODE=OUTIN 1 FPAMSUPD DS AL1 SHARE UPDATE 1 FPAMSUNO EQU 1 SHARUPD=NO 1 FPAMSUYE EQU 2 SHARUPD=YES 1 FPAMMAXL DS AL1 MAXIMUM IO-LENGTH 1 FPAMMINS EQU 0 IO-LENGTH NOT SPECIFIED 1 FPAMMINI EQU 1 IO-LENGTH=4K 1 FPAMMAXI EQU 8 IO-LENGTH=32K 1 FPAMEVEN DS AL1 EVENTING 1 FPAMEVNS EQU 0 EVENTING=NOT_SPECIFIED 1 FPAMEVNO EQU 1 EVENTING=NO 1 FPAMEVYE EQU 2 EVENTING=YES 1 FPAMRESI DS AL1 RESIDENT 1 FPAMRENS EQU 0 RESIDENT=NOT_SPECIFIED 1 FPAMRENO EQU 1 RESIDENT=NO 1 FPAMREYE EQU 2 RESIDENT=YES 1 FPAMBLS DS FL1 BLOCKSIZE 1 FPAM# EQU *-FPAMPA LENGTH of PARAMETERAREA