33
|
1 # HG changeset patch
|
|
2 # Parent c3265ca219d51aa493db9639444eba7d72812e69
|
|
3 rathaxes: initialize the e1000 sepcific code in an elegant implicit way
|
|
4
|
|
5 diff -r c3265ca219d5 -r 5c8bb469d5a5 rathaxes/samples/lkm/e1000.blt
|
|
6 --- a/rathaxes/samples/lkm/e1000.blt Sun Jan 08 00:13:22 2012 +0100
|
|
7 +++ b/rathaxes/samples/lkm/e1000.blt Sun Jan 08 00:35:30 2012 +0100
|
|
8 @@ -27,9 +27,9 @@
|
|
9 }
|
|
10 }
|
|
11
|
|
12 - template sequence e1000::create()
|
|
13 + template sequence e1000::create_device()
|
|
14 {
|
|
15 - chunk ::CALL
|
|
16 + chunk Ethernet::create_device()
|
|
17 {
|
|
18 rtx_ether_ctx->hw_ctx.bars = pci_select_bars(pdev, IORESOURCE_MEM);
|
|
19 if (pci_enable_device_mem(pdev))
|
|
20 @@ -54,11 +54,15 @@
|
|
21 ${Log::info("e1000::create: pci_ioremap_bar failed")};
|
|
22 }
|
|
23 }
|
|
24 +
|
|
25 + chunk ::CALL
|
|
26 + {
|
|
27 + }
|
|
28 }
|
|
29
|
|
30 - template sequence e1000::destroy()
|
|
31 + template sequence e1000::destroy_device()
|
|
32 {
|
|
33 - chunk ::CALL
|
|
34 + chunk Ethernet::destroy_device
|
|
35 {
|
|
36 // XXX: add a check in order to avoid freeing none allocated
|
|
37 // resources.
|
|
38 @@ -67,5 +71,9 @@
|
|
39 pci_release_selected_regions(pdev, rtx_ether_ctx->hw_ctx.bars);
|
|
40 pci_release_region(pdev, 0);
|
|
41 }
|
|
42 +
|
|
43 + chunk ::CALL
|
|
44 + {
|
|
45 + }
|
|
46 }
|
|
47 }
|
|
48 diff -r c3265ca219d5 -r 5c8bb469d5a5 rathaxes/samples/lkm/e1000.rti
|
|
49 --- a/rathaxes/samples/lkm/e1000.rti Sun Jan 08 00:13:22 2012 +0100
|
|
50 +++ b/rathaxes/samples/lkm/e1000.rti Sun Jan 08 00:35:30 2012 +0100
|
|
51 @@ -3,13 +3,15 @@
|
|
52 provided type e1000::Context;
|
|
53
|
|
54 /* Not sure if we need the argument */
|
|
55 - provided sequence e1000::create()
|
|
56 + provided sequence e1000::create_device()
|
|
57 {
|
|
58 + provided chunk Ethernet::create_device;
|
|
59 provided chunk ::CALL;
|
|
60 }
|
|
61
|
|
62 - provided sequence e1000::destroy()
|
|
63 + provided sequence e1000::destroy_device()
|
|
64 {
|
|
65 + provided chunk Ethernet::destroy_device;
|
|
66 provided chunk ::CALL;
|
|
67 }
|
|
68 }
|
|
69 diff -r c3265ca219d5 -r 5c8bb469d5a5 rathaxes/samples/lkm/ethernet.blt
|
|
70 --- a/rathaxes/samples/lkm/ethernet.blt Sun Jan 08 00:13:22 2012 +0100
|
|
71 +++ b/rathaxes/samples/lkm/ethernet.blt Sun Jan 08 00:35:30 2012 +0100
|
|
72 @@ -173,6 +173,7 @@
|
|
73 /* same problem as above with ${pdev} */
|
|
74 //pci_set_drvdata(${pdev}, net_dev);
|
|
75 pci_set_drvdata(pdev, net_dev);
|
|
76 + ${pointcut Ethernet::create_device};
|
|
77 }
|
|
78
|
|
79 chunk ::CALL
|
|
80 @@ -186,6 +187,8 @@
|
|
81 {
|
|
82 struct net_device *net_dev = pci_get_drvdata(pdev);
|
|
83
|
|
84 + ${pointcut Ethernet::destroy_device};
|
|
85 +
|
|
86 unregister_netdev(net_dev);
|
|
87 /*
|
|
88 * If we had some cleanup todo with struct rtx_ether_ctx we would
|
|
89 diff -r c3265ca219d5 -r 5c8bb469d5a5 rathaxes/samples/lkm/ethernet.rti
|
|
90 --- a/rathaxes/samples/lkm/ethernet.rti Sun Jan 08 00:13:22 2012 +0100
|
|
91 +++ b/rathaxes/samples/lkm/ethernet.rti Sun Jan 08 00:35:30 2012 +0100
|
|
92 @@ -33,6 +33,8 @@
|
|
93 provided chunk LKM::data;
|
|
94 provided chunk PCI::pci_probe_hook;
|
|
95 provided chunk ::CALL;
|
|
96 +
|
|
97 + provided pointcut Ethernet::create_device;
|
|
98 }
|
|
99
|
|
100 /* Likely extends PCI::remove */
|
|
101 @@ -40,5 +42,7 @@
|
|
102 {
|
|
103 provided chunk ::CALL;
|
|
104 provided chunk PCI::pci_remove_hook;
|
|
105 +
|
|
106 + provided pointcut Ethernet::destroy_device;
|
|
107 }
|
|
108 }
|