NetDev_ISR_Handler() (Ethernet)
A device’s ISR_Handler()
function is used to handle each device’s interrupts. See section 7-5-5 “NetDev_ISR_Handler()” for more details on how to handle each device’s interrupts.
Files
Every device driver’s net_dev.c
Prototype
static void NetDev_ISR_Handler (NET_IF *pif, NET_DEV_ISR_TYPE type);
Note that since every device driver’s ISR_Handler()
function is accessed only by function pointer via the device driver’s API structure, it doesn’t need to be globally available and should therefore be declared as ‘static
’.
Arguments
pif
Pointer to the interface to handle network device interrupts.
type
Device’s interrupt type:
NET_DEV_ISR_TYPE_UNKNOWN
NET_DEV_ISR_TYPE_RX
NET_DEV_ISR_TYPE_RX_RUNT
NET_DEV_ISR_TYPE_RX_OVERRUN
NET_DEV_ISR_TYPE_TX_RDY
NET_DEV_ISR_TYPE_TX_COMPLETE
NET_DEV_ISR_TYPE_TX_COLLISION_LATE
NET_DEV_ISR_TYPE_TX_COLLISION_EXCESS
NET_DEV_ISR_TYPE_JABBER
NET_DEV_ISR_TYPE_BABBLE
NET_DEV_ISR_TYPE_PHY
Returned Value
None.
Required Configuration
None.
Notes / Warnings
Each device’s NetDev_ISR_Handler()
should never return early but check all applicable interrupt sources to see if they are active. This additional checking is necessary because multiple interrupt sources may be set within the interrupt response time and will reduce the number and overhead of handling interrupts.