changeset 13:d00a5829811d

rathaxes: add net_dev_ops + register netdev device, but still a bug, see the diff
author Thomas Sanchez <thomas.sanchz@gmail.com>
date Fri, 06 Jan 2012 18:08:41 +0100
parents 80cfe40c1136
children 4aac69287060
files rathaxes_start_to_implement_the_ethernet_subsystem_in_the_lkm.patch
diffstat 1 files changed, 36 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/rathaxes_start_to_implement_the_ethernet_subsystem_in_the_lkm.patch	Fri Jan 06 17:33:00 2012 +0100
+++ b/rathaxes_start_to_implement_the_ethernet_subsystem_in_the_lkm.patch	Fri Jan 06 18:08:41 2012 +0100
@@ -1,10 +1,10 @@
 # HG changeset patch
-# Parent 44a4871708b167b49df10fc6153a73730f08287a
+# Parent 6d15ec109487b733721b6dbe84c27841f441e196
 rathaxes: start to implement the Ethernet subsystem in linux LKM sample
 
-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
+diff -r 6d15ec109487 rathaxes/samples/lkm/CMakeLists.txt
+--- a/rathaxes/samples/lkm/CMakeLists.txt	Fri Jan 06 17:34:47 2012 +0100
++++ b/rathaxes/samples/lkm/CMakeLists.txt	Fri Jan 06 18:06:48 2012 +0100
 @@ -1,6 +1,6 @@
  ADD_RATHAXES_SOURCES(lkm lkm.rtx
 -                     RTI log.rti lkm.rti pci.rti
@@ -14,11 +14,10 @@
  
  # We can't name lkm since it's already used as the target name to generate the
  # source (with ADD_RATHAXES_SOURCES).
-diff --git a/rathaxes/samples/lkm/ethernet.blt b/rathaxes/samples/lkm/ethernet.blt
-new file mode 100644
---- /dev/null
-+++ b/rathaxes/samples/lkm/ethernet.blt
-@@ -0,0 +1,116 @@
+diff -r 6d15ec109487 rathaxes/samples/lkm/ethernet.blt
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/rathaxes/samples/lkm/ethernet.blt	Fri Jan 06 18:06:48 2012 +0100
+@@ -0,0 +1,135 @@
 +with Ethernet, PCI, LKM
 +{
 +    template type   Ethernet::Device()
@@ -110,6 +109,12 @@
 +            typedef int ${Ethernet::Device};
 +
 +            static ${Ethernet::Device} *rtx_net_dev = NULL;
++            static const struct net_device_ops rtx_ether_ops= {
++                .ndo_open = rtx_ethernet_open,
++                .ndo_stop = rtx_ethernet_close,
++                .ndo_start_xmit = NULL, // XXX: 
++            };
++
 +        }
 +
 +        chunk ::CALL
@@ -125,6 +130,19 @@
 +             *      // What can we do here?
 +             *  }
 +             */
++
++            /*
++             * Does not work atm
++             */
++            // -> this is the problem, dev cannot be resolved ${dev} = 0;
++            // SET_NETDEV_DEV(rtx_net_dev, &${dev}->dev);
++            rtx_net_dev->netdev_ops = rtx_ether_ops;
++
++            /* if (*/register_netdev(rtx_net_dev);/*)*/
++            /* {
++             *   XXX: handle the error
++             * }
++             */
 +        }
 +    }
 +
@@ -135,10 +153,9 @@
 +        }
 +    }
 +}
-diff --git a/rathaxes/samples/lkm/ethernet.rti b/rathaxes/samples/lkm/ethernet.rti
-new file mode 100644
---- /dev/null
-+++ b/rathaxes/samples/lkm/ethernet.rti
+diff -r 6d15ec109487 rathaxes/samples/lkm/ethernet.rti
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/rathaxes/samples/lkm/ethernet.rti	Fri Jan 06 18:06:48 2012 +0100
 @@ -0,0 +1,33 @@
 +interface Ethernet : PCI, LKM
 +{
@@ -173,9 +190,9 @@
 +        provided chunk  ::CALL;
 +    }
 +}
-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
+diff -r 6d15ec109487 rathaxes/samples/lkm/lkm.rtx
+--- a/rathaxes/samples/lkm/lkm.rtx	Fri Jan 06 17:34:47 2012 +0100
++++ b/rathaxes/samples/lkm/lkm.rtx	Fri Jan 06 18:06:48 2012 +0100
 @@ -1,13 +1,24 @@
  device LKM use LKM, PCI, Log
  {
@@ -203,9 +220,9 @@
      }
  
      LKM::init()
-diff --git a/rathaxes/samples/lkm/pci.blt b/rathaxes/samples/lkm/pci.blt
---- a/rathaxes/samples/lkm/pci.blt
-+++ b/rathaxes/samples/lkm/pci.blt
+diff -r 6d15ec109487 rathaxes/samples/lkm/pci.blt
+--- a/rathaxes/samples/lkm/pci.blt	Fri Jan 06 17:34:47 2012 +0100
++++ b/rathaxes/samples/lkm/pci.blt	Fri Jan 06 18:06:48 2012 +0100
 @@ -11,15 +11,12 @@
  
          chunk   ::decl()