Пример #1
0
static void
uart_tx_isr_siop(SIOPCB *siopcb)
{
    if (uart_putready(siopcb)) {
        /*
         *  送信可能コールバックルーチンを呼び出す.
         */
        uart_ierdy_snd(siopcb->exinf);
    }
}
Пример #2
0
/*                                                                            
 *  シリアルI/Oポートに対する割込み処理                                       
 */
static void
uart_isr_siop(SIOPCB *siopcb)
{
    /*
     * エッジ割込みのため割込み処理前にACK
     */
    intc_ack_interrupt(1 << (UARTINTLVL - 1));
    
    if (uart_getready(siopcb)) {
        /*
         *  受信通知コールバックルーチンを呼び出す.
         */
        uart_ierdy_rcv(siopcb->exinf);
    }

    if (uart_putready(siopcb)) {
        /*
         *  送信可能コールバックルーチンを呼び出す.
         */
        uart_ierdy_snd(siopcb->exinf);
    }
}