Example #1
0
/*---------------------------------------------------------------------------*/
static void _rtp_pbuf_ctx_push_is (void* data)
{
RTP_HANDLE irqHandle;

	irqHandle = rtp_irq_push_disable( );
	_rtp_pbuf_ctx_push(data);
	rtp_irq_pop(irqHandle);
}
Example #2
0
/*---------------------------------------------------------------------------*/
static void* _rtp_pbuf_ctx_pop_is (RTP_PBUF_CTX* pbufCtx)
{
RTP_PBUF_ELEMENT* tempElement;
RTP_HANDLE irqHandle;

	irqHandle   = rtp_irq_push_disable( );
	tempElement = _rtp_pbuf_ctx_pop(pbufCtx);
	rtp_irq_pop(irqHandle);
	return ((void*)tempElement);
}
Example #3
0
/*----------------------------------------------------------------------*
                              rtp_irq_hook_interrupt
 *----------------------------------------------------------------------*/
RTP_BOOL rtp_irq_hook_interrupt(RTP_PFVOID pIface,
                                RTP_IRQ_FN_POINTER c_strategy,
                                RTP_IRQ_FN_POINTER c_interrupt)
{
    int         sp;
    PIFACE      pi;
    int 	    IRQ     =   RTKMAXIRQS - 24; 

    pi = (PIFACE) pIface;
    
    /* Make the index to the isr strategy the same as the interface index. */
    
    
    sp = rtp_irq_push_disable();
    
    _rtkIRQSetSysHandler(IRQ, (RTKIRQHandler) c_interrupt); 
    _rtkIRQSetSysHandlerArgs(IRQ, 1, pi->minor_number, 0);               
    RTKEnableIRQ(IRQ);

#if (INCLUDE_TASK_ISRS)
    pi->irq_no          = pi->ctrl.index;
    
    if (pi->irq_no > (KS_NUM_INTS-1))
    {
        return(RTP_FALSE);
    }

    rtip_isr_strategy[pi->irq_no]  = c_strategy;
    rtip_args[pi->irq_no]          = pi->minor_number;
     
    OS_SET_INTERRUPT_SIGNAL(pi);
#endif

    rtp_irq_pop(sp);
    
    return(RTP_TRUE);

}