changeset 119:d84bc9a46771

WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
author Louis Opter <louis@lse.epita.fr>
date Fri, 26 Jul 2013 17:35:12 -0700
parents ad21d8a182ad
children cbd9b9a49b63
files rathaxes_samples_e1000_add_a_dma_abstraction.patch rathaxes_samples_e1000_add_alloc_sequences_in_socket.patch rathaxes_samples_e1000_use_the_dma_abstraction_in_socket.patch
diffstat 3 files changed, 27 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/rathaxes_samples_e1000_add_a_dma_abstraction.patch	Fri Jul 26 16:44:08 2013 -0700
+++ b/rathaxes_samples_e1000_add_a_dma_abstraction.patch	Fri Jul 26 17:35:12 2013 -0700
@@ -1,6 +1,6 @@
 # HG changeset patch
-# Parent 61470dc5e775a696da551b5227663bf2659f8f4b
-e1000: start a DMA allocation/mapping abstraction
+# Parent fb28afe4be73b2dc25945c07dcac93718b0f3e3e
+rathaxes: start a DMA allocation/mapping abstraction in the e1000 sample
 
 It currently matches a lot the Linux DMA API but it should be usable by
 other OSes too. The Linux DMA API is described at the end of the chapter
--- a/rathaxes_samples_e1000_add_alloc_sequences_in_socket.patch	Fri Jul 26 16:44:08 2013 -0700
+++ b/rathaxes_samples_e1000_add_alloc_sequences_in_socket.patch	Fri Jul 26 17:35:12 2013 -0700
@@ -1,20 +1,35 @@
 # HG changeset patch
-# Parent 9f743313820393d900d65aa6f2532c7d820de04b
-Add alloc_rx and alloc_tx in the Socket abstraction
+# Parent 17641176926da447613bc9729bccf37d673276a0
+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/ethernet.rti b/rathaxes/samples/e1000/ethernet.rti
+--- a/rathaxes/samples/e1000/ethernet.rti
++++ b/rathaxes/samples/e1000/ethernet.rti
+@@ -30,8 +30,10 @@
+     {
+         chunk       LKM::includes();
+         decl        data_types();
++        pointcut    Ethernet::HardwareContext();
++
+         method      init(Ethernet::AbstractDevice, PCI::AbstractDevice);
+-        pointcut    Ethernet::HardwareContext();
++        method      alloc_rx_skbuff(Builtin::number, …);
+ 
+         attribute   Device::AbstractDevice.ref      device;
+         attribute   PCI::AbstractDevice.ref         pci_device;
 diff --git a/rathaxes/samples/e1000/socket.rti b/rathaxes/samples/e1000/socket.rti
 --- a/rathaxes/samples/e1000/socket.rti
 +++ b/rathaxes/samples/e1000/socket.rti
 @@ -1,4 +1,4 @@
 -interface Socket : LKM, Device, DMA
-+interface Socket : LKM, Device, DMA, Ethernet, Builtin
++interface Socket : LKM, Device, DMA, Builtin
  {
      /* The SKBuff type from the kernel */
      provided type   AbstractSKBuff
-@@ -10,15 +10,25 @@
+@@ -10,15 +10,15 @@
  
      provided type   SKBuff
      {
@@ -36,16 +51,6 @@
 +        method  map_from(Device::AbstractDevice);
 +        method  unmap_to_and_free(Device::AbstractDevice);
 +        method  unmap_from_and_free(Device::AbstractDevice);
-+    }
-+
-+    provided sequence   alloc_rx(Ethernet::Device, Builtin::number)
-+    {
-+        chunk   ::CALL();
-+    }
-+
-+    provided sequence   alloc_tx(Ethernet::Device, Builtin::number)
-+    {
-+        chunk   ::CALL();
  
-         attribute   Socket::AbstractSKBuff.ref      k_sk_buff;
-         attribute   DMA::AbstractDMAHandle.scalar   k_dma_handle;
+         attribute   Socket::AbstractSKBuff.ref      sk_buff;
+         attribute   DMA::AbstractDMAHandle.scalar   dma_handle;
--- a/rathaxes_samples_e1000_use_the_dma_abstraction_in_socket.patch	Fri Jul 26 16:44:08 2013 -0700
+++ b/rathaxes_samples_e1000_use_the_dma_abstraction_in_socket.patch	Fri Jul 26 17:35:12 2013 -0700
@@ -1,6 +1,8 @@
 # HG changeset patch
-# Parent 0645a1612cc02ac70c718cabeaaa726cb2ecfdfd
-Replace Linux specific code in Socket by DMA calls
+# Parent c096b6162035042fbafb60b040180a6a5beb2a47
+rathaxes: remove some Linux DMA specific code in the socket abstraction in e1000
+
+By using the new DMA abstraction.
 
 diff --git a/rathaxes/samples/e1000/socket.blt b/rathaxes/samples/e1000/socket.blt
 --- a/rathaxes/samples/e1000/socket.blt