changeset 21:052f9209ca09

rathaxes:: add the ifs
author Thomas Sanchez <thomas.sanchz@gmail.com>
date Sat, 07 Jan 2012 18:30:20 +0100
parents ecf2a0e61fff
children 65523c345b40
files rathaxes_start_to_implement_pci_stuff_in_the_lkm.patch rathaxes_start_to_implement_the_ethernet_subsystem_in_the_lkm.patch
diffstat 2 files changed, 56 insertions(+), 54 deletions(-) [+]
line wrap: on
line diff
--- a/rathaxes_start_to_implement_pci_stuff_in_the_lkm.patch	Sat Jan 07 12:46:45 2012 +0100
+++ b/rathaxes_start_to_implement_pci_stuff_in_the_lkm.patch	Sat Jan 07 18:30:20 2012 +0100
@@ -1,10 +1,10 @@
 # HG changeset patch
-# Parent 873b66890128280637d97a24221258bb297a1ac8
+# Parent c08fffb84a93af26c6155c9776c5628fd556064b
 rathaxes: start to implement the PCI registration part in the 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 c08fffb84a93 rathaxes/samples/lkm/CMakeLists.txt
+--- a/rathaxes/samples/lkm/CMakeLists.txt	Sat Jan 07 18:10:31 2012 +0100
++++ b/rathaxes/samples/lkm/CMakeLists.txt	Sat Jan 07 18:13:48 2012 +0100
 @@ -1,3 +1,7 @@
  ADD_RATHAXES_SOURCES(lkm lkm.rtx
 -                     RTI log.rti lkm.rti
@@ -15,9 +15,9 @@
 +# We can't name lkm since it's already used as the target name to generate the
 +# source (with ADD_RATHAXES_SOURCES).
 +ADD_RATHAXES_LKM(lkm_hello lkm)
-diff --git a/rathaxes/samples/lkm/lkm.blt b/rathaxes/samples/lkm/lkm.blt
---- a/rathaxes/samples/lkm/lkm.blt
-+++ b/rathaxes/samples/lkm/lkm.blt
+diff -r c08fffb84a93 rathaxes/samples/lkm/lkm.blt
+--- a/rathaxes/samples/lkm/lkm.blt	Sat Jan 07 18:10:31 2012 +0100
++++ b/rathaxes/samples/lkm/lkm.blt	Sat Jan 07 18:13:48 2012 +0100
 @@ -1,8 +1,10 @@
  with LKM
  {
@@ -82,9 +82,9 @@
          }
      }
  }
-diff --git a/rathaxes/samples/lkm/lkm.rti b/rathaxes/samples/lkm/lkm.rti
---- a/rathaxes/samples/lkm/lkm.rti
-+++ b/rathaxes/samples/lkm/lkm.rti
+diff -r c08fffb84a93 rathaxes/samples/lkm/lkm.rti
+--- a/rathaxes/samples/lkm/lkm.rti	Sat Jan 07 18:10:31 2012 +0100
++++ b/rathaxes/samples/lkm/lkm.rti	Sat Jan 07 18:13:48 2012 +0100
 @@ -1,8 +1,10 @@
  interface LKM
  {
@@ -112,9 +112,9 @@
 +        provided chunk  LKM::code;
      }
  }
-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 c08fffb84a93 rathaxes/samples/lkm/lkm.rtx
+--- a/rathaxes/samples/lkm/lkm.rtx	Sat Jan 07 18:10:31 2012 +0100
++++ b/rathaxes/samples/lkm/lkm.rtx	Sat Jan 07 18:13:48 2012 +0100
 @@ -1,19 +1,35 @@
 -device LKM use LKM, Log
 +device LKM use LKM, PCI, Log
@@ -152,11 +152,10 @@
 +    PCI::vendor_id = 0x8086;
 +    PCI::product_id = 0x100f;
  }
-diff --git a/rathaxes/samples/lkm/pci.blt b/rathaxes/samples/lkm/pci.blt
-new file mode 100644
---- /dev/null
-+++ b/rathaxes/samples/lkm/pci.blt
-@@ -0,0 +1,129 @@
+diff -r c08fffb84a93 rathaxes/samples/lkm/pci.blt
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/rathaxes/samples/lkm/pci.blt	Sat Jan 07 18:13:48 2012 +0100
+@@ -0,0 +1,124 @@
 +with PCI, LKM, Log
 +{
 +    template type   PCI::Device()
@@ -206,8 +205,8 @@
 +                ${PCI::Device}  *dev = NULL;
 +
 +                err = pci_enable_device(pdev);
-+//              if (err < 0) /* `if' doesn't work */
-+//                  goto fail;
++                if (err < 0)
++                    goto fail;
 +
 +                ${pointcut ::IMPLEMENTATION};
 +
@@ -266,15 +265,10 @@
 +             * So how do we use the return value in the parent context?
 +             */
 +            pci_register_driver(&rtx_pci_driver);
-+            /*
-+             * if (pci_register_driver(&rtx_pci_driver))
-+             * {
-+             *     `if' still doesn't work.
-+             *
-+             *      Also, can I call the Log interface from here?
-+             *      ${Log::info("Message")}; doesn't seem to work.
-+             * }
-+             */
++            if (pci_register_driver(&rtx_pci_driver))
++            {
++                 ${Log::info("Message")};
++            }
 +        }
 +    }
 +
@@ -286,10 +280,9 @@
 +        }
 +    }
 +}
-diff --git a/rathaxes/samples/lkm/pci.rti b/rathaxes/samples/lkm/pci.rti
-new file mode 100644
---- /dev/null
-+++ b/rathaxes/samples/lkm/pci.rti
+diff -r c08fffb84a93 rathaxes/samples/lkm/pci.rti
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/rathaxes/samples/lkm/pci.rti	Sat Jan 07 18:13:48 2012 +0100
 @@ -0,0 +1,30 @@
 +interface PCI : LKM
 +{
--- a/rathaxes_start_to_implement_the_ethernet_subsystem_in_the_lkm.patch	Sat Jan 07 12:46:45 2012 +0100
+++ b/rathaxes_start_to_implement_the_ethernet_subsystem_in_the_lkm.patch	Sat Jan 07 18:30:20 2012 +0100
@@ -1,10 +1,10 @@
 # HG changeset patch
-# Parent 5c8a128a8804aa592e3ccc74e86e109d0b577896
+# Parent 2d1319eabf8acf2a7afeb6c8061d7a2c4793655f
 rathaxes: start to implement the Ethernet subsystem in linux LKM sample
 
-diff -r 5c8a128a8804 rathaxes/samples/lkm/CMakeLists.txt
---- a/rathaxes/samples/lkm/CMakeLists.txt	Sat Jan 07 11:23:27 2012 +0100
-+++ b/rathaxes/samples/lkm/CMakeLists.txt	Sat Jan 07 12:15:32 2012 +0100
+diff -r 2d1319eabf8a rathaxes/samples/lkm/CMakeLists.txt
+--- a/rathaxes/samples/lkm/CMakeLists.txt	Sat Jan 07 18:13:48 2012 +0100
++++ b/rathaxes/samples/lkm/CMakeLists.txt	Sat Jan 07 18:27:27 2012 +0100
 @@ -1,6 +1,6 @@
  ADD_RATHAXES_SOURCES(lkm lkm.rtx
 -                     RTI log.rti lkm.rti pci.rti
@@ -14,10 +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 -r 5c8a128a8804 rathaxes/samples/lkm/ethernet.blt
+diff -r 2d1319eabf8a rathaxes/samples/lkm/ethernet.blt
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/rathaxes/samples/lkm/ethernet.blt	Sat Jan 07 12:15:32 2012 +0100
-@@ -0,0 +1,164 @@
++++ b/rathaxes/samples/lkm/ethernet.blt	Sat Jan 07 18:27:27 2012 +0100
+@@ -0,0 +1,173 @@
 +with Ethernet, PCI, LKM
 +{
 +    template type   Ethernet::Device()
@@ -133,10 +133,16 @@
 +            typedef int ${Ethernet::Device};
 +            ${Ethernet::Device} *rtx_ether_ctx;
 +            struct net_device   *net_dev;
++            int error;
 +
++            error = 0;
 +            net_dev = alloc_etherdev(sizeof(*rtx_ether_ctx));
-+            //if (net_dev == NULL)
-+                // How should we raise the error in the parent context?
++            if (net_dev == 0)
++            {
++                //Log::info("Cannot allocate memory");
++                // is it the thing to do?
++                return -ENOMEM;
++            }
 +            strlcpy(net_dev->name, ${config.ifname}, sizeof(net_dev->name));
 +            net_dev->irq = pdev->irq;
 +            // Maybe we should try ${rtx_ether_ctx.init()} here:
@@ -156,9 +162,12 @@
 +            //SET_NETDEV_DEV(net_dev, &${pdev}->dev);
 +            SET_NETDEV_DEV(net_dev, &pdev->dev);
 +            net_dev->netdev_ops = &rtx_ether_ops;
-+
-+            /* if (*/register_netdev(net_dev);/*)*/
-+                // Handle the error
++            if ((error = register_netdev(net_dev)))
++            {
++                // Log::info("Cannot register the driver");
++                // is it the thing to do?
++                return error;
++            }
 +
 +            /* same problem as above with ${pdev} */
 +            //pci_set_drvdata(${pdev}, net_dev);
@@ -182,9 +191,9 @@
 +        }
 +    }
 +}
-diff -r 5c8a128a8804 rathaxes/samples/lkm/ethernet.rti
+diff -r 2d1319eabf8a rathaxes/samples/lkm/ethernet.rti
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/rathaxes/samples/lkm/ethernet.rti	Sat Jan 07 12:15:32 2012 +0100
++++ b/rathaxes/samples/lkm/ethernet.rti	Sat Jan 07 18:27:27 2012 +0100
 @@ -0,0 +1,37 @@
 +interface Ethernet : PCI, LKM
 +{
@@ -223,9 +232,9 @@
 +        provided chunk  ::CALL;
 +    }
 +}
-diff -r 5c8a128a8804 rathaxes/samples/lkm/lkm.rtx
---- a/rathaxes/samples/lkm/lkm.rtx	Sat Jan 07 11:23:27 2012 +0100
-+++ b/rathaxes/samples/lkm/lkm.rtx	Sat Jan 07 12:15:32 2012 +0100
+diff -r 2d1319eabf8a rathaxes/samples/lkm/lkm.rtx
+--- a/rathaxes/samples/lkm/lkm.rtx	Sat Jan 07 18:13:48 2012 +0100
++++ b/rathaxes/samples/lkm/lkm.rtx	Sat Jan 07 18:27:27 2012 +0100
 @@ -1,13 +1,30 @@
  device LKM use LKM, PCI, Log
  {
@@ -266,9 +275,9 @@
 +
 +    Ethernet::ifname = "rtx%d";
  }
-diff -r 5c8a128a8804 rathaxes/samples/lkm/pci.blt
---- a/rathaxes/samples/lkm/pci.blt	Sat Jan 07 11:23:27 2012 +0100
-+++ b/rathaxes/samples/lkm/pci.blt	Sat Jan 07 12:15:32 2012 +0100
+diff -r 2d1319eabf8a rathaxes/samples/lkm/pci.blt
+--- a/rathaxes/samples/lkm/pci.blt	Sat Jan 07 18:13:48 2012 +0100
++++ b/rathaxes/samples/lkm/pci.blt	Sat Jan 07 18:27:27 2012 +0100
 @@ -11,15 +11,12 @@
  
          chunk   ::decl()
@@ -317,7 +326,7 @@
 -                ${PCI::Device}  *dev = NULL;
  
                  err = pci_enable_device(pdev);
- //              if (err < 0) /* `if' doesn't work */
+                 if (err < 0)
 @@ -52,8 +55,6 @@
  
                  ${pointcut ::IMPLEMENTATION};