*DECK HPRUONX
USETEXT ACB
USETEXT NIPDEF
USETEXT PARAMS
USETEXT AHEADER
USETEXT APPSTAT
USETEXT SUPMSG
PRGM HPRUONX;
STARTIMS;
#
*1DC HPRUONX
*
* 1. PROC NAME AUTHOR DATE
* HPRUONX A.BEN-ARTZI 82/03/01
*
* 2. FUNCTIONAL DESCRIPTION.
* THIS ROUTINE IS RESPONSIBLE FOR FORMATTING A PRU/ON/N OR
* PRU/ON/A
* MESSAGE AND SENDING IT TO THE APPROPRIATE APPLICATION.
*
* 3. METHOD USED.
* FORM THE APPROPRIATE MESSAGE WITH ERROR CODE TO THE
* APPLICATION BY LINKING TO THE PROPER ACB.(ZERO RC FOR N)
*
* 4. ENTRY PARAMETERS.
* PARAMS1 REASON CODE FOR THE ERROR(OR 0 )
* PARAMS2 PRU CONNECTION NUMBER
*
* 5. EXIT PARAMETERS.
* BUFADDR LOCATION OF PRU/ON/N(OR A) MESSAGE
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED.
* AHEADER APPSTAT
* NIPDEF OSSIZE
* ACB APPLICATION CONTROL BLOCK TEMPLATE
* PARAMS PARAMETERS FOR PASSING TO/FROM SEC OVERLAYS
* SUPMSG SUPERVISORY MESSAGE TEMPLATE
*
* 7. ROUTINES CALLED.
* BLINK LINK DATA BLOCK INTO DATA RING
* MGETS ALLOCATE EMPTY BUFFER
* OSCHAPP SCHEDULE APPLICATION
* XTRACE RECORD CALL
*
* 8. DAYFILE MESSAGES.
* NONE
*
* THIS PROGRAM IS A SECONDARY OVERLAY LOADED BY OVLCALL.
* WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE TO LOCATION
* RJMAIN TO RETURN TO THE CALLING PROGRAM.
*
*
* THIS OVERLAY IS CALLED BY HPRUON AND HBSTTP
* W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY
*CALL OSSIZE
*
#
STOPIMS;
XREF BEGIN
PROC MGETS; # GET A FREE BUFFER #
PROC BLINK; # SEND THE BUFFER TO THE APPLICATION #
PROC OSCHAPP; # #
PROC XTRACE; # TRACE CALLS #
LABEL RJMAIN; # TO EXIT TO CALLING PROGRAM #
END
#
INTERNAL VARIABLES
#
ITEM BUFADDR; # STORE NEW BUFFER ADDRESS #
# #
BEGIN
CONTROL IFEQ DEBUG,1;
XTRACE("HPRUX") ;
CONTROL FI;
#
GET A BUFFER TO FORMAT MESSAGE
#
MGETS(LPRUA+BLKHSIZE+ABHSIZE,BUFADDR,TRUE) ;
P<SUPMSG> = BUFADDR+BLKHSIZE+ABHSIZE ;
P<AHEADER>= BUFADDR+BLKHSIZE ;
#
FORMAT APPLICATIN HEADER FIELDS
#
ABHTLC[0] = LPRUA ;
ABHABT[0] = APPCMD ;
ABHACT[0] = CT60TRANS ;
ABHABN[0] = 0 ;
ABHADR[0] = 0 ;
#
FORMAT THE MESSAGE
#
PRUACN[0] = PARAMS2 ;
PRURC[0] = PARAMS1 ;
IF PARAMS1 EQ 0
THEN
PFCSFC[0] = PRUONN ;
ELSE
BEGIN
P<ACB> = ACBADDR; # ADRESS OF ACB #
ACBERCNT[0] = ACBERCNT[0] + 1; # INCRE CNT OF QUEUED PRU/ON/A #
PFCSFC[0] = PRUONA ;
END
#
AND SEND IT TO APPLICATION
#
BLINK(BUFADDR,ACBADDR) ;
OSCHAPP(ACBADDR) ;
GOTO RJMAIN ; # RETURN TO CALLING PROGRAM #
END
TERM