Mercurial > archived > louis > epitech > mq > rathaxes
view rathaxes_samples_e1000_use_the_dma_abstraction_in_socket.patch @ 112:bfe10def90e3
Wip
author | Louis Opter <louis@lse.epita.fr> |
---|---|
date | Fri, 19 Jul 2013 19:12:10 -0700 |
parents | b072f682823d |
children | b22983cb9e3a |
line wrap: on
line source
# HG changeset patch # Parent c571aba317b28723d36bf15393be227b41fce242 Replace Linux specific code in Socket by DMA calls diff --git a/rathaxes/samples/e1000/socket.blt b/rathaxes/samples/e1000/socket.blt --- a/rathaxes/samples/e1000/socket.blt +++ b/rathaxes/samples/e1000/socket.blt @@ -1,4 +1,4 @@ -with Socket, LKM, Device, Ethernet +with Socket, LKM, Device, DMA, Ethernet { template type Socket::AbstractSKBuff() { @@ -22,15 +22,15 @@ { decl data_types() { - ${Socket::AbstractSKBuff.ref} skbuff; - dma_addr_t dma_handle; + ${Socket::AbstractSKBuff.ref} skbuff; + ${DMA::AbstractDMAHandle.scalar} dma_handle; } chunk LKM::prototypes() { static void rtx_socket_skbuff_dump_infos(${Socket::SKBuff.ref}); - static int rtx_socket_skbuff_map(${Socket::SKBuff.ref}, struct device *, enum dma_data_direction); - static void rtx_socket_skbuff_unmap_and_free(${Socket::SKBuff.ref}, struct device *, enum dma_data_direction); + static int rtx_socket_skbuff_map(${Socket::SKBuff.ref}, struct device *, ${DMA::DMADirection}); + static void rtx_socket_skbuff_unmap_and_free(${Socket::SKBuff.ref}, struct device *, ${DMA::DMADirection}); } chunk LKM::code() @@ -66,7 +66,7 @@ static int rtx_socket_skbuff_map(${Socket::SKBuff.ref} self, struct device *dev, - enum dma_data_direction direction) + ${DMA::DMADirection} direction) { ${Socket::AbstractSKBuff.ref} skb = self->skbuff; @@ -77,7 +77,7 @@ dev, ${local.skb.k_sk_buff}, skb_headlen(${local.skb.k_sk_buff}), - direction); + ${local.direction.dma_direction}); int err = dma_mapping_error(dev, self->dma_handle); if (err) { @@ -89,7 +89,7 @@ static void rtx_socket_skbuff_unmap_and_free(${Socket::SKBuff.ref} self, struct device *dev, - enum dma_data_direction direction) + ${DMA::DMADirection} direction) { ${Socket::AbstractSKBuff.ref} skb = self->skbuff; @@ -100,7 +100,7 @@ dma_unmap_single(dev, self->dma_handle, skb_headlen(${local.skb.k_sk_buff}), - direction); + ${local.direction.dma_direction}); self->dma_handle = 0; } dev_kfree_skb_any(${local.skb.k_sk_buff}); @@ -126,22 +126,22 @@ method map_to(Device::AbstractDevice dev) { - rtx_socket_skbuff_map(${self}, ${dev.k_device}, DMA_TO_DEVICE); + rtx_socket_skbuff_map(${self}, ${dev.k_device}, RTX_DMA_TO_DEVICE); } method map_from(Device::AbstractDevice dev) { - rtx_socket_skbuff_map(${self}, ${dev.k_device}, DMA_FROM_DEVICE); + rtx_socket_skbuff_map(${self}, ${dev.k_device}, RTX_DMA_FROM_DEVICE); } method unmap_to_and_free(Device::AbstractDevice dev) { - rtx_socket_skbuff_unmap_and_free(${self}, ${dev.k_device}, DMA_TO_DEVICE); + rtx_socket_skbuff_unmap_and_free(${self}, ${dev.k_device}, RTX_DMA_TO_DEVICE); } method unmap_from_and_free(Device::AbstractDevice dev) { - rtx_socket_skbuff_unmap_and_free(${self}, ${dev.k_device}, DMA_FROM_DEVICE); + rtx_socket_skbuff_unmap_and_free(${self}, ${dev.k_device}, RTX_DMA_FROM_DEVICE); } map