# HG changeset patch # User Louis Opter # Date 1350860201 -7200 # Node ID 2cc8fda4c4e3765507c3090abf7f6687cbc0f82c # Parent 5eb746474f0f562eb760b0a0830a7fffd0373086 Add a patch with some wip on the ethernet part of the e1000 sample diff -r 5eb746474f0f -r 2cc8fda4c4e3 rathaxes_cleanups_in_ethernet_rti_blt.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rathaxes_cleanups_in_ethernet_rti_blt.patch Mon Oct 22 00:56:41 2012 +0200 @@ -0,0 +1,119 @@ +# HG changeset patch +# Parent 72057981213815c2bc5f34f50a997ea2e28f2fdc +rathaxes: tidy up ethernet.{rti,blt} in the e1000 sample + +- Remove typedefs; +- Rename Ethernet::SubContext in Ethernet::HardwareContext: I think this + is more clear. This pointcut is here to allow the underlying real + device to store its private data structure within the context of the + Ethernet subsystem. + + +diff --git a/rathaxes/samples/e1000/e1000.blt b/rathaxes/samples/e1000/e1000.blt +--- a/rathaxes/samples/e1000/e1000.blt ++++ b/rathaxes/samples/e1000/e1000.blt +@@ -268,7 +268,7 @@ + + template type e1000::Context() + { +- chunk Ethernet::SubContext() ++ chunk Ethernet::HardwareContext() + { + /* + * Force the generation of the structure in the "headers" part, we +diff --git a/rathaxes/samples/e1000/e1000.rti b/rathaxes/samples/e1000/e1000.rti +--- a/rathaxes/samples/e1000/e1000.rti ++++ b/rathaxes/samples/e1000/e1000.rti +@@ -10,7 +10,7 @@ + + provided type Context + { +- chunk Ethernet::SubContext(); ++ chunk Ethernet::HardwareContext(); + method decl(); + method init(); + } +diff --git a/rathaxes/samples/e1000/ethernet.blt b/rathaxes/samples/e1000/ethernet.blt +--- a/rathaxes/samples/e1000/ethernet.blt ++++ b/rathaxes/samples/e1000/ethernet.blt +@@ -59,7 +59,7 @@ + + chunk ::decl() + { +- typedef struct net_device *net_devp; ++ struct net_device; + } + + map +@@ -76,14 +76,7 @@ + + chunk ::decl() + { +- /* +- * So, at first sight, it sucks to typedef it as pointer but (for +- * now) it makes sense for two reasons: +- * - This structure will always be used through a pointer; +- * - This remove the ambiguity of pointer/not-pointer in the +- * ::init() chunk. +- */ +- typedef struct rtx_ethernet_dev ++ struct rtx_ethernet_dev + { + /* + * I think it's useless to use the ${PCI::Device} "abstraction" +@@ -96,8 +89,8 @@ + * In the long-term, this may disappear for a new concept allowing + * to embbed a descriptor defined and manipulated by the front-end + */ +- ${pointcut Ethernet::SubContext()}; +- } *rtx_ethernet_dev_p; ++ ${pointcut Ethernet::HardwareContext()}; ++ }; + } + + chunk ::init(Ethernet::AbstractDevice net_dev, PCI::Device pci_dev) +@@ -105,7 +98,7 @@ + ${self} = netdev_priv(${net_dev}); + /* + * We can use -> because we know that ${self} will be always a +- * pointer ("thanks" to the typedef) ++ * pointer, but the ambiguity sucks. + */ + ${self}->pci_dev = ${pci_dev}; + ${self}->net_dev = ${net_dev}; +@@ -213,12 +206,8 @@ + /* For now the type is not handled, so we just omit it (see #17) */ + chunk PCI::pci_probe_hook(PCI::Device pdev) + { +- /* +- * This typedef is needed to workaround a bug in CNorm __std__ +- * dialect. +- */ + ${Ethernet::Device} rtx_ether_ctx; +- struct net_device *net_dev; ++ ${Ethernet::AbstractDevice} net_dev; + int error; + + /* Initialize the net_device structure */ +@@ -264,8 +253,7 @@ + { + chunk PCI::pci_remove_hook(PCI::Device pdev) + { +- /* workaround for cnorm unstrict */ +- struct net_device *net_dev = pci_get_drvdata(${pdev}); ++ ${Ethernet::AbstractDevice} net_dev = pci_get_drvdata(${pdev}); + ${Ethernet::Device} rtx_ether_ctx = netdev_priv(net_dev); + + ${pointcut Ethernet::destroy_device(pdev, local.rtx_ether_ctx)}; +diff --git a/rathaxes/samples/e1000/ethernet.rti b/rathaxes/samples/e1000/ethernet.rti +--- a/rathaxes/samples/e1000/ethernet.rti ++++ b/rathaxes/samples/e1000/ethernet.rti +@@ -27,7 +27,7 @@ + chunk LKM::includes(); + method decl(); + method init(Ethernet::AbstractDevice, PCI::Device); +- pointcut Ethernet::SubContext(); ++ pointcut Ethernet::HardwareContext(); + } + + required sequence open(Ethernet::Device) diff -r 5eb746474f0f -r 2cc8fda4c4e3 series --- a/series Fri Oct 19 09:00:25 2012 +0200 +++ b/series Mon Oct 22 00:56:41 2012 +0200 @@ -1,1 +1,2 @@ rathaxes_add_a_test_to_reproduce_the_pointer_to_rathaxes_bug.patch +rathaxes_cleanups_in_ethernet_rti_blt.patch