Mercurial > archived > louis > epitech > mq > rathaxes
diff 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 diff
--- a/rathaxes_samples_e1000_use_the_dma_abstraction_in_socket.patch Sun Jul 14 23:14:33 2013 -0700 +++ b/rathaxes_samples_e1000_use_the_dma_abstraction_in_socket.patch Fri Jul 19 19:12:10 2013 -0700 @@ -1,5 +1,96 @@ # HG changeset patch -# Parent df8528e511f471ceaf70e9145e4c6d0f58b0a26a +# 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