Mercurial > archived > louis > epitech > mq > rathaxes
diff pci_rework_without_explicit_call.patch @ 33:60a59bf708df
merge
author | Thomas Sanchez <thomas.sanchz@gmail.com> |
---|---|
date | Sun, 08 Jan 2012 00:39:56 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pci_rework_without_explicit_call.patch Sun Jan 08 00:39:56 2012 +0100 @@ -0,0 +1,123 @@ +# HG changeset patch +# Parent c5c98e265bb4cf5c3a9d775e56d6599ca73a4c73 +rathaxes: initialize the pci bus in an elegant implicit way + +diff -r c5c98e265bb4 -r 4920b3a97ad6 rathaxes/samples/lkm/lkm.blt +--- a/rathaxes/samples/lkm/lkm.blt Sat Jan 07 22:45:07 2012 +0100 ++++ b/rathaxes/samples/lkm/lkm.blt Sat Jan 07 23:09:24 2012 +0100 +@@ -33,6 +33,7 @@ + static int __attribute__((__section__(".init.text"))) rtx_module_init(void) + { + ${pointcut ::IMPLEMENTATION}; ++ ${pointcut LKM::init_bus_hook}; + + return 0; + } +@@ -48,6 +49,7 @@ + static void __attribute__((__section__(".exit.text"))) rtx_module_exit(void) + { + ${pointcut ::IMPLEMENTATION}; ++ ${pointcut LKM::deinit_bus_hook}; + } + + module_exit(rtx_module_exit); +diff -r c5c98e265bb4 -r 4920b3a97ad6 rathaxes/samples/lkm/lkm.rti +--- a/rathaxes/samples/lkm/lkm.rti Sat Jan 07 22:45:07 2012 +0100 ++++ b/rathaxes/samples/lkm/lkm.rti Sat Jan 07 23:09:24 2012 +0100 +@@ -12,12 +12,14 @@ + + required sequence LKM::init() + { +- provided chunk LKM::includes; +- provided chunk LKM::code; ++ provided chunk LKM::includes; ++ provided chunk LKM::code; ++ provided pointcut LKM::init_bus_hook; + } + + required sequence LKM::exit() + { +- provided chunk LKM::code; ++ provided chunk LKM::code; ++ provided pointcut LKM::deinit_bus_hook; + } + } +diff -r c5c98e265bb4 -r 4920b3a97ad6 rathaxes/samples/lkm/lkm.rtx +--- a/rathaxes/samples/lkm/lkm.rtx Sat Jan 07 22:45:07 2012 +0100 ++++ b/rathaxes/samples/lkm/lkm.rtx Sat Jan 07 23:09:24 2012 +0100 +@@ -37,13 +37,13 @@ + LKM::init() + { + Log::info("Hello this is LKM"); +- PCI::register(); ++ // PCI::register(); + } + + LKM::exit() + { + Log::info("Good bye this was LKM"); +- PCI::unregister(); ++ // PCI::unregister(); + } + } + +diff -r c5c98e265bb4 -r 4920b3a97ad6 rathaxes/samples/lkm/pci.blt +--- a/rathaxes/samples/lkm/pci.blt Sat Jan 07 22:45:07 2012 +0100 ++++ b/rathaxes/samples/lkm/pci.blt Sat Jan 07 23:09:24 2012 +0100 +@@ -102,7 +102,7 @@ + }; + } + +- chunk ::CALL ++ chunk LKM::init_bus_hook() + { + /* + * So how do we use the return value in the parent context? +@@ -116,13 +116,22 @@ + return error; + } + } ++ ++ chunk ::CALL() ++ { ++ // no implementation, we just need to instrument the lkm::bus_hook ++ } + } + + template sequence PCI::unregister() + { +- chunk ::CALL ++ chunk LKM::deinit_bus_hook() + { + pci_unregister_driver(&rtx_pci_driver); + } ++ ++ chunk ::CALL ++ { ++ } + } + } +diff -r c5c98e265bb4 -r 4920b3a97ad6 rathaxes/samples/lkm/pci.rti +--- a/rathaxes/samples/lkm/pci.rti Sat Jan 07 22:45:07 2012 +0100 ++++ b/rathaxes/samples/lkm/pci.rti Sat Jan 07 23:09:24 2012 +0100 +@@ -7,13 +7,20 @@ + + provided sequence PCI::register() + { ++ // it is impossible to provide a "dummy" sequence ++ // which just hook itself. The PCI:register juste ++ // inject its code in the module_init function ++ // in order to load the pci driver. ++ // Everything is done with the configuration. + provided chunk ::CALL; + provided chunk LKM::data; ++ provided chunk LKM::init_bus_hook; + } + + provided sequence PCI::unregister() + { + provided chunk ::CALL; ++ provided chunk LKM::deinit_bus_hook; + } + + required sequence PCI::probe(PCI::Device)