psect sigmask: link a5,#$0000 move.l d1,-(a7) move.l d0,d1 moveq #0,d0 os9 F$SigMask bcs.s sigerr moveq #0,d0 sigret move.l (a7)+,d1 unlk a5 rts sigerr move.l d1,errno(a6) moveq #-1,d0 bra.s sigret remove_alarm: link a5,#$0000 movem.l d1,-(a7) moveq.l #0,d0 move.w #A$Delete,d1 os9 F$Alarm exg d0,d1 movem.l (a7)+,d1 bcc.s return_success bra.s return_error add_alarm: link a5,#$0000 movem.l d1-d3,-(a7) move.l d0,d3 move.l d1,d2 moveq.l #0,d0 move.w #A$Set,d1 lsl.l #8,d3 times 256 bset.l #31,d3 1/256 seconds os9 F$Alarm exg d0,d1 movem.l (a7)+,d1-d3 bcc.s return_success return_error move.l d0,errno(a6) moveq #-1,d0 bra.s ret return_success moveq #0,d0 ret unlk a5 rts *int send_break(path) int path; * sends a break on path using the SS_break setstat call to the driver * return 0 on success, -1 on error with appropriate errorcode in errno send_break: link a5,#$0000 movem.l d1,-(a7) move.w #SS_Break,d1 os9 I$SetStt exg d0,d1 movem.l (a7)+,d1 bcc.s return_success bra.s return_error ends