*DECK NVFACTC USETEXT TEXTNVF USETEXT TEXTSS PROC NVFACTC(PACOUT,RELVCB); # TITLE - NVFACTC - CLEAN UP TERMINATING A-A CONNECTION TABLES. # BEGIN # NVFACTC # # ** NVFACTC - CLEAN UP TERMINATING A-A CONNECTION TABLES. * * C. BRION 83/11/08. * P. MURRAY 84/02/28. * * THIS PROCEDURE IS RESPONSIBLE FOR RELEASING ACTIVE PID TABLE * SPACE IF IT EXISTS, APOUTCL TABLE SPACE IF IT EXISTS, PAAC ENTRY * TABLE SPACE, AND THE ASSIGNED VCB ORDINAL FOR A TERMINATING A-A * CONNECTION. * * PROC NVFACTC(PACOUT,RELVCB) * * ENTRY: * * PACOUT = INDEX ORDINAL OF PAAC ENTRY FOR A-A CONNECTION. * RELVCB = FLAG INDICATING IF VCB TO BE RELEASED. * * EXIT: * * THE ACTIVE PID TABLE ENTRY (ACPID ENTRY) IS RELEASED IF * IT EXISTS. * * THE APPL SUPPLIED OUTCALL TABLE ENTRY (APOUTCL) IS RELEASED * IF IT EXISTS. * * THE PAAC TABLE ENTRY SPACE IS RELEASED. * * THE ASSIGNED VCB ORDINAL MAY BE RELEASED. * # CONTROL EJECT; # **** PROC NVFACTC XREF LIST # XREF BEGIN PROC SSTRTS; # SS-RELEASE TABLE SPACE # PROC NVFUFVO; # FREE VCB ORDINAL # END # **** # ITEM PACOUT I; # PAAC ENTRY ORDINAL # ITEM VCBOUT I; # VCB ORDINAL # ITEM WORK I; # WORK VARIABLE # ITEM SIZE I; # SIZE OF TABLE # ITEM FOUND B; # TABLE ENTRY FOUND FLAG # ITEM RELVCB B; # VCB RELEASE FLAG # CONTROL EJECT; # * OBTAIN VCB ORDINAL FROM PAAC ENTRY. # VCBOUT = PA$VCB[PACOUT]; # * IF AN ACPID TABLE ENTRY EXISTS FOR THIS PAAC ENTRY, LOCATE AND * RELEASE THE ENTRY SPACE. # IF PA$ACPIDL[PACOUT] NQ 0 THEN BEGIN FOUND = FALSE; FOR WORK = 0 STEP ACP$ESIZ[WORK] WHILE WORK LS ACPIDL AND NOT FOUND DO BEGIN IF ACP$VCB[WORK] EQ VCBOUT THEN BEGIN FOUND = TRUE; SIZE = ACP$ESIZ[WORK]; SSTRTS(P,WORK,SIZE); END END END # * IF AN APOUTCL ENTRY EXISTS FOR THIS PAAC ENTRY, LOCATE AND * RELEASE THE ENTRY SPACE. # IF PA$OUTSPEC[PACOUT] THEN BEGIN FOUND = FALSE; FOR WORK = 0 STEP APO$WC[WORK] WHILE WORK LS APOUTCLL AND NOT FOUND DO BEGIN IF APO$VCB[WORK] EQ VCBOUT THEN BEGIN FOUND = TRUE; SIZE = APO$WC[WORK]; SSTRTS(P,WORK,SIZE); END END END # * RELEASE THE PAAC ENTRY AND THE VCB ORDINAL IF REQUESTED. # WORK = PACOUT * PAACSIZ$; SSTRTS(P,WORK,PAACSIZ$); IF RELVCB THEN NVFUFVO(VCBOUT); END # NVFACTC # TERM