changeset 23:f0ab7ee21dd8

Merge
author Louis Opter <kalessin@kalessin.fr>
date Sat, 07 Jan 2012 19:28:54 +0100
parents 65523c345b40
children 60dd543b67b0
files rathaxes_start_to_implement_sk_buff_in_the_lkm.patch
diffstat 1 files changed, 107 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/rathaxes_start_to_implement_sk_buff_in_the_lkm.patch	Sat Jan 07 19:19:28 2012 +0100
+++ b/rathaxes_start_to_implement_sk_buff_in_the_lkm.patch	Sat Jan 07 19:28:54 2012 +0100
@@ -1,29 +1,103 @@
 # HG changeset patch
-# Parent 3af2c7465a59483f6980e4e819beb3520bc023a7
+# Parent 7ed8c85f91b681a259ea6f7fcb39ec9ed4591a57
 rathaxes: add sk_buff abstraction and add the implementation of the xmit function for the ethernet system. We have a fully (empty) functionnal ethernet driver
 
-diff -r 3af2c7465a59 rathaxes/samples/lkm/CMakeLists.txt
---- a/rathaxes/samples/lkm/CMakeLists.txt	Sat Jan 07 19:18:24 2012 +0100
-+++ b/rathaxes/samples/lkm/CMakeLists.txt	Sat Jan 07 19:19:17 2012 +0100
+diff --git a/rathaxes/samples/lkm/CMakeLists.txt b/rathaxes/samples/lkm/CMakeLists.txt
+--- a/rathaxes/samples/lkm/CMakeLists.txt
++++ b/rathaxes/samples/lkm/CMakeLists.txt
 @@ -1,6 +1,6 @@
  ADD_RATHAXES_SOURCES(lkm lkm.rtx
 -                     RTI log.rti lkm.rti pci.rti ethernet.rti
 -                     BLT log.blt lkm.blt pci.blt ethernet.blt)
-+                     RTI log.rti lkm.rti pci.rti socket.rti ethernet.rti
-+                     BLT log.blt lkm.blt pci.blt socket.blt ethernet.blt)
++                     RTI log.rti lkm.rti pci.rti socket.rti ethernet.rti e1000.rti
++                     BLT log.blt lkm.blt pci.blt socket.blt ethernet.blt e1000.blt)
  
  # We can't name lkm since it's already used as the target name to generate the
  # source (with ADD_RATHAXES_SOURCES).
-diff -r 3af2c7465a59 rathaxes/samples/lkm/ethernet.blt
---- a/rathaxes/samples/lkm/ethernet.blt	Sat Jan 07 19:18:24 2012 +0100
-+++ b/rathaxes/samples/lkm/ethernet.blt	Sat Jan 07 19:19:17 2012 +0100
+diff --git a/rathaxes/samples/lkm/e1000.blt b/rathaxes/samples/lkm/e1000.blt
+new file mode 100644
+--- /dev/null
++++ b/rathaxes/samples/lkm/e1000.blt
+@@ -0,0 +1,40 @@
++with e1000, Ethernet, Socket, PCI, LKM, Log
++{
++    template type   e1000::Context()
++    {
++        chunk   LKM::includes()
++        {
++            /*
++             * Force the generation of the structure in the "headers part, we
++             * have to do this since we do not use the structure in this blt
++             * (we hacked a bit and used it in ethernet.blt directly).
++             */
++            typedef int ${e1000::Context}; /* CNorm __std__ workaround */
++            ${e1000::Context} force_declaration_in_includes;
++        }
++
++        chunk   ::decl()
++        {
++            struct rtx_e1000_ctx
++            {
++                unsigned char   *bar;
++            };
++        }
++
++        map
++        {
++        }
++    }
++
++    template sequence   e1000::create()
++    {
++        chunk ::CALL
++        {
++            int bars = pci_select_bars(pdev, IORESOURCE_MEM);
++            if (pci_enable_device_mem(pdev))
++            {
++                ${Log::info("e1000::create: pci_enable_device_mem failed")};
++            }
++        }
++    }
++}
+diff --git a/rathaxes/samples/lkm/e1000.rti b/rathaxes/samples/lkm/e1000.rti
+new file mode 100644
+--- /dev/null
++++ b/rathaxes/samples/lkm/e1000.rti
+@@ -0,0 +1,10 @@
++interface e1000 : Socket, Ethernet, PCI, LKM
++{
++    provided type   e1000::Context;
++
++    /* Not sure if we need the argument */
++    provided sequence   e1000::create()
++    {
++        provided chunk  ::CALL;
++    }
++}
+diff --git a/rathaxes/samples/lkm/ethernet.blt b/rathaxes/samples/lkm/ethernet.blt
+--- a/rathaxes/samples/lkm/ethernet.blt
++++ b/rathaxes/samples/lkm/ethernet.blt
 @@ -1,4 +1,4 @@
--with Ethernet, PCI, LKM, Log
-+with Ethernet, Socket, PCI, LKM, Log
+-with Ethernet, PCI, LKM
++with Ethernet, Socket, PCI, LKM
  {
      template type   Ethernet::Device()
      {
-@@ -51,6 +51,24 @@
+@@ -18,8 +18,11 @@
+                  * I think it's useless to use the ${PCI::Device} "abstraction"
+                  * here, since we are already in a Linux specific context here.
+                  */
+-                struct pci_dev      *pci_dev;
+-                struct net_device   *net_dev;
++                struct pci_dev          *pci_dev;
++                struct net_device       *net_dev;
++
++                /* while waiting on issue #8 */
++                struct rtx_e1000_ctx    hw_ctx;
+             };
+         }
+ 
+@@ -51,6 +54,24 @@
          }
      }
  
@@ -48,7 +122,7 @@
      template sequence   Ethernet::close(Ethernet::Device dev)
      {
          chunk LKM::prototypes()
-@@ -100,7 +118,7 @@
+@@ -100,7 +121,7 @@
              {
                  .ndo_open = rtx_ethernet_open,
                  .ndo_stop = rtx_ethernet_close,
@@ -57,9 +131,9 @@
              };
          }
  
-diff -r 3af2c7465a59 rathaxes/samples/lkm/ethernet.rti
---- a/rathaxes/samples/lkm/ethernet.rti	Sat Jan 07 19:18:24 2012 +0100
-+++ b/rathaxes/samples/lkm/ethernet.rti	Sat Jan 07 19:19:17 2012 +0100
+diff --git a/rathaxes/samples/lkm/ethernet.rti b/rathaxes/samples/lkm/ethernet.rti
+--- a/rathaxes/samples/lkm/ethernet.rti
++++ b/rathaxes/samples/lkm/ethernet.rti
 @@ -1,4 +1,4 @@
 -interface Ethernet : PCI, LKM
 +interface Ethernet : Socket, PCI, LKM
@@ -79,10 +153,10 @@
      required sequence   Ethernet::close(Ethernet::Device)
      {
          provided chunk  LKM::prototypes;
-diff -r 3af2c7465a59 rathaxes/samples/lkm/lkm.rtx
---- a/rathaxes/samples/lkm/lkm.rtx	Sat Jan 07 19:18:24 2012 +0100
-+++ b/rathaxes/samples/lkm/lkm.rtx	Sat Jan 07 19:19:17 2012 +0100
-@@ -15,6 +15,11 @@
+diff --git a/rathaxes/samples/lkm/lkm.rtx b/rathaxes/samples/lkm/lkm.rtx
+--- a/rathaxes/samples/lkm/lkm.rtx
++++ b/rathaxes/samples/lkm/lkm.rtx
+@@ -15,10 +15,16 @@
          Log::info("Got an interruption");
      }
  
@@ -94,9 +168,15 @@
      PCI::probe(PCI::Device dev)
      {
          Log::info("Probe the device");
-diff -r 3af2c7465a59 rathaxes/samples/lkm/socket.blt
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/rathaxes/samples/lkm/socket.blt	Sat Jan 07 19:19:17 2012 +0100
+         Ethernet::init(dev);
++        e1000::create();
+     }
+ 
+     PCI::remove(PCI::Device dev)
+diff --git a/rathaxes/samples/lkm/socket.blt b/rathaxes/samples/lkm/socket.blt
+new file mode 100644
+--- /dev/null
++++ b/rathaxes/samples/lkm/socket.blt
 @@ -0,0 +1,27 @@
 +with Socket, LKM
 +{
@@ -125,9 +205,10 @@
 +        }
 +    }
 +}
-diff -r 3af2c7465a59 rathaxes/samples/lkm/socket.rti
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/rathaxes/samples/lkm/socket.rti	Sat Jan 07 19:19:17 2012 +0100
+diff --git a/rathaxes/samples/lkm/socket.rti b/rathaxes/samples/lkm/socket.rti
+new file mode 100644
+--- /dev/null
++++ b/rathaxes/samples/lkm/socket.rti
 @@ -0,0 +1,4 @@
 +interface Socket : LKM
 +{