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