void enet_mac_tx_isr(void *enetIfPtr) { struct k64f_enetdata *k64f_enet = &k64f_enetdata; /*Clear interrupt*/ enet_hal_clear_interrupt(((enet_dev_if_t *)enetIfPtr)->deviceNumber, kEnetTxFrameInterrupt); k64f_tx_reclaim(k64f_enet); }
/** \brief Transmit cleanup task * * This task is called when a transmit interrupt occurs and * reclaims the pbuf and descriptor used for the packet once * the packet has been transferred. * * \param[in] pvParameters pointer to the interface data */ static void packet_tx(void* pvParameters) { struct k64f_enetdata *k64f_enet = pvParameters; while (1) { /* Wait for transmit cleanup task to wakeup */ sys_arch_sem_wait(&k64f_enet->TxCleanSem, 0); k64f_tx_reclaim(k64f_enet); } }