.title synccheck ; Check the clock synchronization between VAXes connected ; by shared memory. ; Note that CMKRNL privilege is required to execute this routine. ; ; Author: Mark Paulk ; System Development Corporation ; 4810 Bradford Blvd NW ; Huntsville, AL 35805 ; Date: 22 September 1983 .library "sys$library:lib.mlb" .psect microtime ; ; Synchronize check for MASTER. ; SYNC_CHECK_MASTER:: .word 0 ifnowrt #4,@4(ap),10$ ifnord #4,@8(ap),10$ movzwl #ss$_normal,r0 ; set up good return $cmkrnl_s - routin=CHECK_M,- arglst=(ap) ret 10$: movzwl #ss$_accvio,r0 ; access violation ret CHECK_M: .word ^M movl @8(ap), r2 ; get number of times to check movl 4(ap),r4 ; get address of result array movl #0,r0 ;* 10$: addl2 #1,r0 ;* cmpl (r4),#0 ; check for set beql 10$ ; remote sets odd elements addl #4,r4 ; step to even element in array ;* mfpr #pr$_icr,(r4)+ ; store local clock movl r0,(r4)+ ;* movl #0,r0 ;* sobgtr r2,10$ ret ; ; Synchronize check for SLAVE. ; SYNC_CHECK_SLAVE:: .word 0 ifnowrt #4,@4(ap),10$ ifnord #4,@8(ap),10$ movzwl #ss$_normal,r0 ; set up good return $cmkrnl_s - routin=CHECK_S,- arglst=(ap) ret 10$: movzwl #ss$_accvio,r0 ; access violation ret CHECK_S: .word ^M movl @8(ap), r2 ; get number of times to check movl 4(ap),r4 ; get address of result array ;* mfpr #pr$_icr,(r4)+ ; store local clock movl #1,(r4)+ ;* movl #0,r0 ;* 10$: addl2 #1,r0 ;* cmpl (r4),#0 ; check for set beql 10$ ; master sets even elements addl #4,r4 ; step to odd element in array ;* mfpr #pr$_icr,(r4)+ ; store local clock movl r0,(r4)+ ;* movl #0,r0 ;* sobgtr r2,10$ ret .end