.TITLE RPOIDF - RPOI$ MACRO DEFINITION .IDENT /010285/ ; ;+ ;***** ; ; RPOI$ defines parameter list and local offsets for the ; "REQUEST-AND-PASS-OFFSPRING-INFORMATION" subroutine "$RPOI$" ; NOTE: Additional parameters are appended to a standard ; SPWN$ DPB; their offsets depend on S.PWDN being last ; word of DPB. ; ;***** ;- .MACRO RPOI$ TN,PN,PR,GC,MC,PT,CB,CL,SC,DN,DU,RN,OA .MCALL SPWN$,R50$ .IF NDF $$$GLB .WORD 0 ; FORCE ILLEGAL RSX DIC/DPB CODE .WORD $RPOI$ ; ROUTINE TO EXECUTE .ENDC BASE = 4 ; MARK START OF ARGUMENTS R.POSD=BASE ; OFFSET TO START OF RSX SPWN$ DPB .IF NB DN ; GENERATE SPWN$ FOR SPECIFIC DEVICE SPWN$ TN,,,GC,MC,,,,CB,CL,DU,DN .IFF ; ELSE, FORCE DEVICE NAME TO TI: SPWN$ TN,,,GC,MC,,,,CB,CL,0,TI .ENDC ; SPWN$ DPB WILL ALWAYS BE 14. WORDS ; *** NOW, MAKE EQUIVALENCES BETWEEN RPOI$ AND SPWN$ FIELDS R.POTK=S.PWTN+BASE ; TASK NAME TO CHAIN TO R.POUG=S.PWUG+BASE ; GROUP CODE R.POUM=S.PWUM+BASE ; MEMBER CODE R.POBF=S.PWCA+BASE ; COMMAND BUFFER ADDRESS R.POBL=S.PWCL+BASE ; COMMAND LENGTH R.PODV=S.PWDN+BASE ; DEVICE NAME R.POUN=S.PWVT+BASE ; TERMINAL # ; *** REMAINING ARGUMENTS ARE NOT PART OF SPWN$ BASE=R.PODV+2 ; MARK START OF RPOI$-ONLY DATA .IF NDF $$$GLB R50$ PT ; RAD50 PARENT TASK NAME WHOSE OCB SHOULD BE PASSED .WORD SC ; CONTROL FLAGS R50$ RN ; TARGET TASK'S RUN-TIME NAME .WORD OA ; OCB ADDRESS TO PASS TO TARGET .ENDC ;$$$GLB R.POPT=BASE R.POSC=4+BASE RP.OAL=1 ; PASS ALL OCB'S TO TARGET TASK RP.ONX=2 ; PASS FIRST OCB TO TARGET TASK RP.OEX=200 ; FORCE ISSUEING TASK TO EXIT ON SUCCESS R.POTN=6+BASE R.POOA=12+BASE .ENDM ;RPOI$ ;