/** Process the transmit completion This routine use ::EslSocketTxComplete to perform the transmit completion processing for data packets. This routine is called by the UDPv4 network layer when a data transmit request completes. @param [in] Event The normal transmit completion event @param [in] pIo Address of an ::ESL_IO_MGMT structure **/ VOID EslUdp6TxComplete ( IN EFI_EVENT Event, IN ESL_IO_MGMT * pIo ) { UINT32 LengthInBytes; ESL_PORT * pPort; ESL_PACKET * pPacket; ESL_SOCKET * pSocket; EFI_STATUS Status; DBG_ENTER ( ); // // Locate the active transmit packet // pPacket = pIo->pPacket; pPort = pIo->pPort; pSocket = pPort->pSocket; // // Get the transmit length and status // LengthInBytes = pPacket->Op.Udp6Tx.TxData.DataLength; pSocket->TxBytes -= LengthInBytes; Status = pIo->Token.Udp6Tx.Status; // // Ignore the transmit error // if ( EFI_ERROR ( Status )) { DEBUG (( DEBUG_TX, "0x%08x: Transmit completion error, Packet: 0x%08x, Status: %r\r\n", pPort, pPacket, Status )); Status = EFI_SUCCESS; } // // Complete the transmit operation // EslSocketTxComplete ( pIo, LengthInBytes, Status, "UDP ", &pSocket->pTxPacketListHead, &pSocket->pTxPacketListTail, &pPort->pTxActive, &pPort->pTxFree ); DBG_EXIT ( ); }
/** Process the transmit completion This routine use ::EslSocketTxComplete to perform the transmit completion processing for data packets. This routine is called by the UDPv4 network layer when a data transmit request completes. @param [in] Event The normal transmit completion event @param [in] pIo Address of an ::ESL_IO_MGMT structure **/ VOID EslUdp6TxComplete ( IN EFI_EVENT Event, IN ESL_IO_MGMT * pIo ) { UINT32 LengthInBytes; ESL_PORT * pPort; ESL_PACKET * pPacket; ESL_SOCKET * pSocket; EFI_STATUS Status; DBG_ENTER ( ); // // Locate the active transmit packet // pPacket = pIo->pPacket; pPort = pIo->pPort; pSocket = pPort->pSocket; // // Get the transmit length and status // LengthInBytes = pPacket->Op.Udp6Tx.TxData.DataLength; pSocket->TxBytes -= LengthInBytes; Status = pIo->Token.Udp6Tx.Status; // // Complete the transmit operation // EslSocketTxComplete ( pIo, LengthInBytes, Status, "UDP ", &pSocket->pTxPacketListHead, &pSocket->pTxPacketListTail, &pPort->pTxActive, &pPort->pTxFree ); DBG_EXIT ( ); }