# HG changeset patch # User Thomas Sanchez # Date 1325963487 -3600 # Node ID e330b0cea45e873e39163923345c614023e61475 # Parent 60dd543b67b00a61918a3f37d91606ad11e3fd4b rathaxes: workaround resolution bug + update the license since we use pci_ioremap which is only available for gpl driver diff -r 60dd543b67b0 -r e330b0cea45e rathaxes_start_to_implement_sk_buff_in_the_lkm.patch --- a/rathaxes_start_to_implement_sk_buff_in_the_lkm.patch Sat Jan 07 20:02:23 2012 +0100 +++ b/rathaxes_start_to_implement_sk_buff_in_the_lkm.patch Sat Jan 07 20:11:27 2012 +0100 @@ -1,10 +1,10 @@ # HG changeset patch -# Parent bffc8f046282cb07fab2c8ef86cf4fff344fdefc +# Parent 606e807b8bc7a3a7ea6f1b895bfe909cd7875c2e 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 --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 606e807b8bc7 rathaxes/samples/lkm/CMakeLists.txt +--- a/rathaxes/samples/lkm/CMakeLists.txt Sat Jan 07 20:02:55 2012 +0100 ++++ b/rathaxes/samples/lkm/CMakeLists.txt Sat Jan 07 20:10:46 2012 +0100 @@ -1,6 +1,6 @@ ADD_RATHAXES_SOURCES(lkm lkm.rtx - RTI log.rti lkm.rti pci.rti ethernet.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/e1000.blt b/rathaxes/samples/lkm/e1000.blt -new file mode 100644 ---- /dev/null -+++ b/rathaxes/samples/lkm/e1000.blt -@@ -0,0 +1,49 @@ +diff -r 606e807b8bc7 rathaxes/samples/lkm/e1000.blt +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/rathaxes/samples/lkm/e1000.blt Sat Jan 07 20:10:46 2012 +0100 +@@ -0,0 +1,57 @@ +with e1000, Ethernet, Socket, PCI, LKM, Log +{ + template type e1000::Context() @@ -53,25 +52,32 @@ + { + int bars = pci_select_bars(pdev, IORESOURCE_MEM); + if (pci_enable_device_mem(pdev)) ++ { + ${Log::info("e1000::create: pci_enable_device_mem failed")}; ++ } + + if (pci_request_selected_regions(pdev, bars, ${config.name})) ++ { + ${Log::info("e1000::create: pci_request_selected_regions failed")}; ++ } + + if (${config.set_master}) ++ { + pci_set_master(pdev); ++ } + + /* 0 here is for BAR_0: */ + rtx_ether_ctx->hw_ctx.ioaddr = pci_ioremap_bar(pdev, 0); + if (!rtx_ether_ctx->hw_ctx.ioaddr) ++ { + ${Log::info("e1000::create: pci_ioremap_bar 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 +diff -r 606e807b8bc7 rathaxes/samples/lkm/e1000.rti +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/rathaxes/samples/lkm/e1000.rti Sat Jan 07 20:10:46 2012 +0100 @@ -0,0 +1,10 @@ +interface e1000 : Socket, Ethernet, PCI, LKM +{ @@ -83,9 +89,9 @@ + 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 +diff -r 606e807b8bc7 rathaxes/samples/lkm/ethernet.blt +--- a/rathaxes/samples/lkm/ethernet.blt Sat Jan 07 20:02:55 2012 +0100 ++++ b/rathaxes/samples/lkm/ethernet.blt Sat Jan 07 20:10:46 2012 +0100 @@ -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. @@ -134,9 +140,9 @@ }; } -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 +diff -r 606e807b8bc7 rathaxes/samples/lkm/ethernet.rti +--- a/rathaxes/samples/lkm/ethernet.rti Sat Jan 07 20:02:55 2012 +0100 ++++ b/rathaxes/samples/lkm/ethernet.rti Sat Jan 07 20:10:46 2012 +0100 @@ -1,4 +1,4 @@ -interface Ethernet : PCI, LKM +interface Ethernet : Socket, PCI, LKM @@ -156,9 +162,9 @@ required sequence Ethernet::close(Ethernet::Device) { provided chunk LKM::prototypes; -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 606e807b8bc7 rathaxes/samples/lkm/lkm.rtx +--- a/rathaxes/samples/lkm/lkm.rtx Sat Jan 07 20:02:55 2012 +0100 ++++ b/rathaxes/samples/lkm/lkm.rtx Sat Jan 07 20:10:46 2012 +0100 @@ -15,10 +15,16 @@ Log::info("Got an interruption"); } @@ -176,7 +182,12 @@ } PCI::remove(PCI::Device dev) -@@ -49,6 +55,7 @@ +@@ -45,10 +51,11 @@ + LKM::name = "hello"; + LKM::author = "Rathaxes"; + LKM::description = "Hello World Loadable Kernel Module (LKM)"; +- LKM::license = "BSD"; ++ LKM::license = "GPL"; PCI::vendor_id = 0x8086; PCI::product_id = 0x100f; @@ -184,10 +195,9 @@ Ethernet::ifname = "rtx%d"; } -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 +diff -r 606e807b8bc7 rathaxes/samples/lkm/socket.blt +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/rathaxes/samples/lkm/socket.blt Sat Jan 07 20:10:46 2012 +0100 @@ -0,0 +1,27 @@ +with Socket, LKM +{ @@ -216,10 +226,9 @@ + } + } +} -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 +diff -r 606e807b8bc7 rathaxes/samples/lkm/socket.rti +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/rathaxes/samples/lkm/socket.rti Sat Jan 07 20:10:46 2012 +0100 @@ -0,0 +1,4 @@ +interface Socket : LKM +{