OSDN Git Service

(none)
[hos/hos-v4a.git] / aplfw / driver / ether / lan9000 / lan9000drv_isr.c
1 /** 
2  *  Hyper Operating System  Application Framework
3  *
4  * @file  scidrv.c
5  * @brief %jp{LAN9000用デバイスドライバ}
6  *
7  * Copyright (C) 2006 by Project HOS
8  * http://sourceforge.jp/projects/hos/
9  */
10
11
12 #include "lan9000drv_local.h"
13
14
15 /* 受信割り込み */
16 void Lan9000Drv_Isr(VPARAM Param)
17 {
18         C_LAN9000DRV    *self;
19         unsigned short  uhStatus;
20
21         self = (C_LAN9000DRV *)Param;
22         
23         /* 状態取得 */
24         uhStatus = Lan9000Hal_GetInterruptStatus(&self->Lan9000Hal);
25         
26         /* 受信していたら */
27         if ( uhStatus & LAN9000HAL_ISTATUS_RCVINT )
28         {
29                 SysEvt_Set(self->hEvtRecv);
30                 uhStatus &= ~LAN9000HAL_IMASK_RCVINT;
31         }
32
33         /* 送信可能なら */
34         if ( uhStatus & LAN9000HAL_ISTATUS_ALLOCINT )
35         {
36                 SysEvt_Set(self->hEvtSend);
37                 uhStatus &= ~LAN9000HAL_IMASK_ALLOCINT;
38         }
39         
40         /* 割込みマスク更新 */
41         Lan9000Hal_SetInterruptMask(&self->Lan9000Hal, uhStatus);       
42         
43         /* 割込みクリア */
44         SysInt_Clear(self->iIntNum);
45 }
46
47
48 /* end of file */