ULONG amigaGetTriggerSigs(void) { ULONG trigs = 0, sigr; sigr = SetSignal(0L,0L); if ( sigr & SIGBREAKF_CTRL_C ) trigs |= DNETC_MSG_SHUTDOWN; #ifndef NO_GUI if ( DnetcBase && ModeReqIsSet(-1) ) trigs |= dnetcguiHandleMsgs(sigr); #endif #ifndef __OS3PPC__ /* ** 68K / OS4 / MorphOS */ if ( TriggerPort && sigr & 1L << TriggerPort->mp_SigBit ) { struct TriggerMessage *msg; while ((msg = (struct TriggerMessage *)GetMsg(TriggerPort))) { trigs |= msg->tm_TriggerType; ReplyMsg((struct Message *)msg); } } #elif !defined(__POWERUP__) /* ** WarpOS */ if ( TriggerPort && sigr & 1L << TriggerPort->mp_Port.mp_SigBit ) { struct TriggerMessage *msg; while ((msg = (struct TriggerMessage *)GetMsgPPC(TriggerPort))) { trigs |= msg->tm_TriggerType; ReplyMsgPPC((struct Message *)msg); } } #else /* ** PowerUp */ { void *msg; while ((msg = PPCGetMessage(TriggerPort))) { trigs |= PPCGetMessageAttr(msg,PPCMSGTAG_MSGID); PPCReplyMessage(msg); } } #endif return(trigs); }
/************* * DESCRIPTION: save exit a subtask * INPUT: st subtask structure * stm SHUTDOWN message received from main task * OUTPUT: - *************/ void ExitSubTaskPPC(struct SubTask *st,struct SubTaskMsg *stm) { stm->stm_Result = FALSE; ReplyMsgPPC((struct Message *)stm); }