ENTRY * (*ENTRY) EXT; /* -----------------------------------------------------------------*/ /* PARAMETERS PASSED IN TO PROGRAM */ /* -----------------------------------------------------------------*/ DCL SPCPTR P_FIL_PTR PARM; /* FILE NAME */ DCL SPCPTR P_LIB_PTR PARM; /* *LIBL, QTEMP */ /* *LIBL & QTEMP NOT YET */ /* SUPPORTED */ DCL SPCPTR P_FILEID_PTR PARM; /* MEMBER NAME */ DCL SPCPTR P_FUNCT_PTR PARM; /* FUNCTION '*CHG', '*RTV' */ DCL SPCPTR P_RETURN_PTR PARM; DCL OL *ENTRY (P_FIL_PTR,P_LIB_PTR,P_FILEID_PTR, P_FUNCT_PTR,P_RETURN_PTR) EXT PARM; DCL DD P_FIL CHAR(10) BAS(P_FIL_PTR); DCL DD P_LIB CHAR(10) BAS(P_LIB_PTR); DCL DD P_FILEID CHAR(13) BAS(P_FILEID_PTR); DCL DD P_FUNCT CHAR(10) BAS(P_FUNCT_PTR); DCL DD P_RETURN CHAR(10) BAS(P_RETURN_PTR); /* -----------------------------------------------------------------*/ /* PROCESS COMMUNICATION OBJECT (PCO) */ /* -----------------------------------------------------------------*/ DCL SYSPTR QTEMP BASPCO POS(65); /* -----------------------------------------------------------------*/ /* CONSTANTS */ /* -----------------------------------------------------------------*/ DCL DD *FILE CHAR(2) INIT(X'1901'); DCL DD *LIB CHAR(2) INIT(X'0401'); /*------------------------------------------------------------------*/ /* WORK VARIABLES */ /*------------------------------------------------------------------*/ /* RESOLVE TO SYSTEM POINTER - OPERAND FOR RSLVSP */ DCL DD R CHAR(34); DCL DD RTYP CHAR(2) DEF(R) POS(1); DCL DD ROBJ CHAR(30) DEF(R) POS(3); DCL DD RAUT CHAR(2) DEF(R) POS(33) INIT(X'0800'); /* FILE INFORMATION */ DCL DD FI CHAR(74) BAS(*) BDRY(16); DCL DD FI_FILEID CHAR(13) DEF(FI) POS(62); /* LIBRARY INFO - POINTERS */ DCL DD FI CHAR(74) BAS(*) BDRY(16); DCL DD FI_FILEID CHAR(13) DEF(FI) POS(62); /* LIBRARY INFO - POINTERS */ DCL SYSPTR LIB_PTR; DCL SYSPTR SYSFILE_PTR; DCL SPCPTR FILE_PTR; /*------------------------------------------------------------------*/ /* RESOLVE TO THE LIBRARY (CONTEXT) */ /*------------------------------------------------------------------*/ CPYBLAP ROBJ,P_LIB,' '; CPYBLAP RTYP,*LIB,' '; RSLVSP LIB_PTR,R,*,*; /*------------------------------------------------------------------*/ /* RESOLVE TO THE FILE INFORMATION */ /*------------------------------------------------------------------*/ CPYBLAP ROBJ,P_FIL,' '; CPYBLA RTYP,*FILE; RSLVSP SYSFILE_PTR,R,LIB_PTR,*; /*------------------------------------------------------------------*/ /* POINT TO ASSOCIATED MEMBER SPACE */ /*------------------------------------------------------------------*/ SETSPPFP FILE_PTR,SYSFILE_PTR; BRK 'MH'; /* -----------------------------------------------------------------*/ /* UPDATE FILE INFORMATION */ /* -----------------------------------------------------------------*/ /* DETERMINE IF THE FILE ID SHOULD BE CHANGED OR RETURNED */ CMPBLAP(B) P_FUNCT,'*RTV',' '/EQ(RETRIEVE); /* CHANGE THE FILE IDENTIFIER IF VALUE IS NOT '*SAME' */ CMPBLAP(B) P_FILEID,'*SAME',' '/EQ(ENDIF01); CPYBLA FILE_PTR->FI_FILEID,P_FILEID; RETRIEVE: /* RETRIEVE THE FILE IDENTIFIER */ CPYBLA P_FILEID,FILE_PTR->FI_FILEID; ENDIF01: NOOP; PEND;