# HG changeset patch # User Thomas Sanchez # Date 1325869721 -3600 # Node ID d00a5829811dedcde506c9f3ca90da1dd773f7f7 # Parent 80cfe40c1136050e77ac183744f3253be54441bd rathaxes: add net_dev_ops + register netdev device, but still a bug, see the diff diff -r 80cfe40c1136 -r d00a5829811d rathaxes_start_to_implement_the_ethernet_subsystem_in_the_lkm.patch --- 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()