changeset 120:cbd9b9a49b63

wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
author Louis Opter <louis@lse.epita.fr>
date Fri, 26 Jul 2013 21:06:45 -0700
parents d84bc9a46771
children 6f600f83a763
files rathaxes_samples_e1000_add_alloc_sequences_in_socket.patch rathaxes_samples_e1000_use_the_dma_abstraction_in_socket.patch
diffstat 2 files changed, 37 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/rathaxes_samples_e1000_add_alloc_sequences_in_socket.patch	Fri Jul 26 17:35:12 2013 -0700
+++ b/rathaxes_samples_e1000_add_alloc_sequences_in_socket.patch	Fri Jul 26 21:06:45 2013 -0700
@@ -1,10 +1,42 @@
 # HG changeset patch
-# Parent 17641176926da447613bc9729bccf37d673276a0
+# Parent e06ebc5e25f35ad135ab454c3f157698e00e69ac
 rathaxes: add an alloc_rx_skbuff method to Ethernet::Device in e1000
 
 This will help to hide platform dependent code from
 e1000::set_up_device.
 
+diff --git a/rathaxes/samples/e1000/e1000.blt b/rathaxes/samples/e1000/e1000.blt
+--- a/rathaxes/samples/e1000/e1000.blt
++++ b/rathaxes/samples/e1000/e1000.blt
+@@ -752,8 +752,10 @@
+              */
+             for (i = 0; i != ${config.rx_ring_size}; ++i)
+             {
++                /* XXX #46: */
++                // hw_ctx->rx_ring.skbuffs[i].skbuff = ${rtx_ether_ctx.net_device.alloc_rx_skb(${config.rx_buffer_len})}; 
+                 hw_ctx->rx_ring.skbuffs[i].skbuff = (${Socket::AbstractSKBuff}*)netdev_alloc_skb(
+-                        ${rtx_ether_ctx.net_device.k_net_dev}, /* XXX: .k_net_dev isn't expanded here */
++                        ${rtx_ether_ctx.net_device.k_net_dev},
+                         ${config.rx_buffer_len});
+                 if (!hw_ctx->rx_ring.skbuffs[i].skbuff)
+                 {
+diff --git a/rathaxes/samples/e1000/ethernet.blt b/rathaxes/samples/e1000/ethernet.blt
+--- a/rathaxes/samples/e1000/ethernet.blt
++++ b/rathaxes/samples/e1000/ethernet.blt
+@@ -107,6 +107,13 @@
+             ${self}->net_dev = ${rtx_net_dev};
+         }
+ 
++        /*
++        method alloc_rx_skbuff(Builtin::number size)
++        {
++            ($(Socket::Skbuff.ref})netdev_alloc_skb(${self}, ${size});
++        }
++        */
++
+         map
+         {
+             /*
 diff --git a/rathaxes/samples/e1000/ethernet.rti b/rathaxes/samples/e1000/ethernet.rti
 --- a/rathaxes/samples/e1000/ethernet.rti
 +++ b/rathaxes/samples/e1000/ethernet.rti
@@ -16,7 +48,7 @@
 +
          method      init(Ethernet::AbstractDevice, PCI::AbstractDevice);
 -        pointcut    Ethernet::HardwareContext();
-+        method      alloc_rx_skbuff(Builtin::number, …);
++        //method      alloc_rx_skbuff(Builtin::number); /* -> Socket::Skbuff.ref */
  
          attribute   Device::AbstractDevice.ref      device;
          attribute   PCI::AbstractDevice.ref         pci_device;
--- a/rathaxes_samples_e1000_use_the_dma_abstraction_in_socket.patch	Fri Jul 26 17:35:12 2013 -0700
+++ b/rathaxes_samples_e1000_use_the_dma_abstraction_in_socket.patch	Fri Jul 26 21:06:45 2013 -0700
@@ -1,8 +1,8 @@
 # HG changeset patch
-# Parent c096b6162035042fbafb60b040180a6a5beb2a47
-rathaxes: remove some Linux DMA specific code in the socket abstraction in e1000
+# Parent 8f0f99a85db3d5b034644962b33352a04c4eda59
+rathaxes: abstract away netdev_alloc_skb() from e1000::set_up_device
 
-By using the new DMA abstraction.
+By adding a new method to Ethernet::Device.
 
 diff --git a/rathaxes/samples/e1000/socket.blt b/rathaxes/samples/e1000/socket.blt
 --- a/rathaxes/samples/e1000/socket.blt