.TITLE PPP_VCI_JKT .IDENT /V1.0/ ;++ ; ; Copyright © 1996 Digital Equipment Corporation. ; All rights reserved. ; ; Redistribution and use in source and binary forms are permitted ; provided that the above copyright notice and this paragraph are ; duplicated in all such forms and that any documentation, ; advertising materials, and other materials related to such ; distribution and use acknowledge that the software was developed ; by Digital Equipment Corporation. The name of the ; Corporation may not be used to endorse or promote products derived ; from this software without specific prior written permission. ; THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ; IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ; WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. ; ; Jacket routines for calls between PPP and other VCMs; required to ; deal with calling sequences not supported by DECC. ; ; Barry Kierstein 17-December-1996 ; Replaced the standard Digital copyright with ; one compatible with the CMU copyright. ; ; Barry Kierstein 24-July-1996 ; Corrected copyright notice. ; ; Patrick Crilly 13-December-1995 ; Derived from similar jackets provided for XTI by Dave Porter ; ;-- .LIBRARY /SYS$LIBRARY:LIB/ $VCRPDEF $FKBDEF $SPLCODDEF .PSECT $CODE,SHR,EXE,NOWRT,PIC,LONG .SBTTL Call-outs ;++ ; VCICALL ; ; Parameters: ; ; 4(AP) = address of target routine ; 8(AP) = address of VCRP ; 12(AP) = address of VCIB ; ; Return value: ; ; R0 = completion status ; ;-- .ENTRY VCICALL,^M MOVL 8(AP),R3 MOVL 12(AP),R4 JSB @4(AP) RET ;++ ; VCICREATE ; ; Parameters: ; ; 4(AP) = address of target routine ; 8(AP) = address of VCIB ; ; Return value: ; ; R0 = completion status ; ;-- .ENTRY VCICREATE,^M MOVL 8(AP),R4 JSB @4(AP) RET ;++ ; VCIDELETE ; ; Parameters: ; ; 4(AP) = address of target routine ; 8(AP) = address of VCIB ; ; Return value: ; ; R0 = completion status ; ;-- .ENTRY VCIDELETE,^M MOVL 8(AP),R4 JSB @4(AP) RET ;++ ; VCIFORKCALL ; ; Parameters: ; ; 4(AP) = address of target routine ; 8(AP) = address of VCRP ; 12(AP) = address of VCIB ; ; Return value: ; ; none ; ;-- .ENTRY VCIFORKCALL,^M MOVL 8(AP),R3 MOVL 12(AP),R4 ADDL3 #VCRP$K_SCRATCH_AREA_OFFSET,R3,R5 ; "create" fkb in scratch area MOVB #SPL$C_IOLOCK8,FKB$B_FLCK(R5) ; use IOLOCK8 spinlock MOVL 4(AP), FKB$L_FPC(R5) ; upper vcm rtn to fork to JSB @#EXE$PRIMITIVE_FORK ; rqst the fork ; JSB @4(AP) RET ;++ ; VCIREPORTEVENT ; ; Parameters: ; ; 4(AP) = address of target routine ; 8(AP) = address of VCIB ; 12(AP) = Event ; 16(AP) = Reason for Event ; ; Return value: ; ; R0 = completion status ; ;-- .ENTRY VCIREPORTEVENT,^M MOVL 8(AP), R4 MOVL 12(AP), R1 MOVL 16(AP), R2 JSB @4(AP) RET .END