/* __vxge_hw_fifo_abort - Returns the TxD This function terminates the TxDs of fifo  */
enum vxge_hw_status __vxge_hw_fifo_abort(struct __vxge_hw_fifo *fifo)
/* __vxge_hw_fifo_abort - Returns the TxD This function terminates the TxDs of fifo  */
enum vxge_hw_status __vxge_hw_fifo_abort(struct __vxge_hw_fifo *fifo)
{
	void *txdlh;
	for (;;) {
		vxge_hw_channel_dtr_try_complete(&fifo->channel, &txdlh);
		if (txdlh == NULL)
			break;
		vxge_hw_channel_dtr_complete(&fifo->channel);
		if (fifo->txdl_term) {
			fifo->txdl_term(txdlh,
			VXGE_HW_TXDL_STATE_POSTED,
			fifo->channel.userdata);
		}
		vxge_hw_channel_dtr_free(&fifo->channel, txdlh);
	}
	return VXGE_HW_OK;
}