Mercurial > archived > louis > epitech > mq > rathaxes
view ethernet_rework_without_explicit_call.patch @ 34:62fba8b9db06
Minor fixes
author | Thomas Sanchez <thomas.sanchz@gmail.com> |
---|---|
date | Sun, 08 Jan 2012 01:02:43 +0100 |
parents | 60a59bf708df |
children |
line wrap: on
line source
# HG changeset patch # Parent 4920b3a97ad6f031437c63ca3ae756678fde92a3 rathaxes: initialize the ethernet subsystem in an elegant implicit way diff -r 4920b3a97ad6 -r c3265ca219d5 rathaxes/samples/lkm/e1000.blt --- a/rathaxes/samples/lkm/e1000.blt Sat Jan 07 23:09:24 2012 +0100 +++ b/rathaxes/samples/lkm/e1000.blt Sun Jan 08 00:13:22 2012 +0100 @@ -62,7 +62,6 @@ { // XXX: add a check in order to avoid freeing none allocated // resources. - struct net_device *net_dev = pci_get_drvdata(pdev); struct rtx_ethernet_dev* rtx_ether_ctx = netdev_priv(net_dev); iounmap(rtx_ether_ctx->hw_ctx.ioaddr); pci_release_selected_regions(pdev, rtx_ether_ctx->hw_ctx.bars); diff -r 4920b3a97ad6 -r c3265ca219d5 rathaxes/samples/lkm/ethernet.blt --- a/rathaxes/samples/lkm/ethernet.blt Sat Jan 07 23:09:24 2012 +0100 +++ b/rathaxes/samples/lkm/ethernet.blt Sun Jan 08 00:13:22 2012 +0100 @@ -125,7 +125,7 @@ }; } - chunk ::CALL + chunk PCI::pci_probe_hook() { /* * This typedef is needed to workaround a bug in CNorm __std__ @@ -174,12 +174,18 @@ //pci_set_drvdata(${pdev}, net_dev); pci_set_drvdata(pdev, net_dev); } + + chunk ::CALL + { + } } template sequence Ethernet::exit(PCI::Device pdev) { - chunk ::CALL + chunk PCI::pci_remove_hook() { + struct net_device *net_dev = pci_get_drvdata(pdev); + unregister_netdev(net_dev); /* * If we had some cleanup todo with struct rtx_ether_ctx we would @@ -187,5 +193,10 @@ */ free_netdev(net_dev); } + + chunk ::CALL + { + } } } + diff -r 4920b3a97ad6 -r c3265ca219d5 rathaxes/samples/lkm/ethernet.rti --- a/rathaxes/samples/lkm/ethernet.rti Sat Jan 07 23:09:24 2012 +0100 +++ b/rathaxes/samples/lkm/ethernet.rti Sun Jan 08 00:13:22 2012 +0100 @@ -28,10 +28,10 @@ provided chunk LKM::code; } - /* Kinda extends PCI::probe */ provided sequence Ethernet::init(PCI::Device) { provided chunk LKM::data; + provided chunk PCI::pci_probe_hook; provided chunk ::CALL; } @@ -39,5 +39,6 @@ provided sequence Ethernet::exit(PCI::Device) { provided chunk ::CALL; + provided chunk PCI::pci_remove_hook; } } diff -r 4920b3a97ad6 -r c3265ca219d5 rathaxes/samples/lkm/lkm.rtx --- a/rathaxes/samples/lkm/lkm.rtx Sat Jan 07 23:09:24 2012 +0100 +++ b/rathaxes/samples/lkm/lkm.rtx Sun Jan 08 00:13:22 2012 +0100 @@ -20,19 +20,19 @@ Log::info("We have one packet to transmit!"); } - PCI::probe(PCI::Device dev) - { - Log::info("Probe the device"); - Ethernet::init(dev); - e1000::create(); - } +// PCI::probe(PCI::Device dev) +// { +// Log::info("Probe the device"); +// Ethernet::init(dev); +// e1000::create(); +// } - PCI::remove(PCI::Device dev) - { - Log::info("Remove the pci device"); - e1000::destroy(); - Ethernet::exit(dev); - } +// PCI::remove(PCI::Device dev) +// { +// Log::info("Remove the pci device"); +// e1000::destroy(); +// Ethernet::exit(dev); +// } LKM::init() { diff -r 4920b3a97ad6 -r c3265ca219d5 rathaxes/samples/lkm/pci.blt --- a/rathaxes/samples/lkm/pci.blt Sat Jan 07 23:09:24 2012 +0100 +++ b/rathaxes/samples/lkm/pci.blt Sun Jan 08 00:13:22 2012 +0100 @@ -53,7 +53,7 @@ if (err < 0) goto fail; - ${pointcut ::IMPLEMENTATION}; + ${pointcut PCI::pci_probe_hook}; return 0; @@ -61,6 +61,10 @@ return err; } } + + chunk ::CALL + { + } } template sequence PCI::remove(PCI::Device pdev) @@ -74,11 +78,15 @@ { static void rtx_pci_remove(struct pci_dev *pdev) { - ${pointcut ::IMPLEMENTATION}; + ${pointcut PCI::pci_remove_hook}; pci_disable_device(pdev); } } + + chunk ::CALL() + { + } } template sequence PCI::register() diff -r 4920b3a97ad6 -r c3265ca219d5 rathaxes/samples/lkm/pci.rti --- a/rathaxes/samples/lkm/pci.rti Sat Jan 07 23:09:24 2012 +0100 +++ b/rathaxes/samples/lkm/pci.rti Sun Jan 08 00:13:22 2012 +0100 @@ -23,15 +23,19 @@ provided chunk LKM::deinit_bus_hook; } - required sequence PCI::probe(PCI::Device) + provided sequence PCI::probe(PCI::Device) { provided chunk LKM::prototypes; provided chunk LKM::code; + + provided pointcut PCI::pci_probe_hook; } - required sequence PCI::remove(PCI::Device) + provided sequence PCI::remove(PCI::Device) { provided chunk LKM::prototypes; provided chunk LKM::code; + + provided pointcut PCI::pci_remove_hook; } }