annotate ethernet_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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
33
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
1 # HG changeset patch
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
2 # Parent 4920b3a97ad6f031437c63ca3ae756678fde92a3
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
3 rathaxes: initialize the ethernet subsystem in an elegant implicit way
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
4
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
5 diff -r 4920b3a97ad6 -r c3265ca219d5 rathaxes/samples/lkm/e1000.blt
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
6 --- a/rathaxes/samples/lkm/e1000.blt Sat Jan 07 23:09:24 2012 +0100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
7 +++ b/rathaxes/samples/lkm/e1000.blt Sun Jan 08 00:13:22 2012 +0100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
8 @@ -62,7 +62,6 @@
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
9 {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
10 // XXX: add a check in order to avoid freeing none allocated
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
11 // resources.
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
12 - struct net_device *net_dev = pci_get_drvdata(pdev);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
13 struct rtx_ethernet_dev* rtx_ether_ctx = netdev_priv(net_dev);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
14 iounmap(rtx_ether_ctx->hw_ctx.ioaddr);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
15 pci_release_selected_regions(pdev, rtx_ether_ctx->hw_ctx.bars);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
16 diff -r 4920b3a97ad6 -r c3265ca219d5 rathaxes/samples/lkm/ethernet.blt
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
17 --- a/rathaxes/samples/lkm/ethernet.blt Sat Jan 07 23:09:24 2012 +0100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
18 +++ b/rathaxes/samples/lkm/ethernet.blt Sun Jan 08 00:13:22 2012 +0100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
19 @@ -125,7 +125,7 @@
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
20 };
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
21 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
22
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
23 - chunk ::CALL
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
24 + chunk PCI::pci_probe_hook()
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
25 {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
26 /*
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
27 * This typedef is needed to workaround a bug in CNorm __std__
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
28 @@ -174,12 +174,18 @@
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
29 //pci_set_drvdata(${pdev}, net_dev);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
30 pci_set_drvdata(pdev, net_dev);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
31 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
32 +
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
33 + chunk ::CALL
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
34 + {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
35 + }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
36 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
37
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
38 template sequence Ethernet::exit(PCI::Device pdev)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
39 {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
40 - chunk ::CALL
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
41 + chunk PCI::pci_remove_hook()
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
42 {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
43 + struct net_device *net_dev = pci_get_drvdata(pdev);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
44 +
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
45 unregister_netdev(net_dev);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
46 /*
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
47 * If we had some cleanup todo with struct rtx_ether_ctx we would
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
48 @@ -187,5 +193,10 @@
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
49 */
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
50 free_netdev(net_dev);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
51 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
52 +
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
53 + chunk ::CALL
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
54 + {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
55 + }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
56 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
57 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
58 +
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
59 diff -r 4920b3a97ad6 -r c3265ca219d5 rathaxes/samples/lkm/ethernet.rti
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
60 --- a/rathaxes/samples/lkm/ethernet.rti Sat Jan 07 23:09:24 2012 +0100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
61 +++ b/rathaxes/samples/lkm/ethernet.rti Sun Jan 08 00:13:22 2012 +0100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
62 @@ -28,10 +28,10 @@
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
63 provided chunk LKM::code;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
64 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
65
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
66 - /* Kinda extends PCI::probe */
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
67 provided sequence Ethernet::init(PCI::Device)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
68 {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
69 provided chunk LKM::data;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
70 + provided chunk PCI::pci_probe_hook;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
71 provided chunk ::CALL;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
72 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
73
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
74 @@ -39,5 +39,6 @@
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
75 provided sequence Ethernet::exit(PCI::Device)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
76 {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
77 provided chunk ::CALL;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
78 + provided chunk PCI::pci_remove_hook;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
79 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
80 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
81 diff -r 4920b3a97ad6 -r c3265ca219d5 rathaxes/samples/lkm/lkm.rtx
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
82 --- a/rathaxes/samples/lkm/lkm.rtx Sat Jan 07 23:09:24 2012 +0100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
83 +++ b/rathaxes/samples/lkm/lkm.rtx Sun Jan 08 00:13:22 2012 +0100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
84 @@ -20,19 +20,19 @@
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
85 Log::info("We have one packet to transmit!");
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
86 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
87
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
88 - PCI::probe(PCI::Device dev)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
89 - {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
90 - Log::info("Probe the device");
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
91 - Ethernet::init(dev);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
92 - e1000::create();
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
93 - }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
94 +// PCI::probe(PCI::Device dev)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
95 +// {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
96 +// Log::info("Probe the device");
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
97 +// Ethernet::init(dev);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
98 +// e1000::create();
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
99 +// }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
101 - PCI::remove(PCI::Device dev)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
102 - {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
103 - Log::info("Remove the pci device");
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
104 - e1000::destroy();
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
105 - Ethernet::exit(dev);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
106 - }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
107 +// PCI::remove(PCI::Device dev)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
108 +// {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
109 +// Log::info("Remove the pci device");
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
110 +// e1000::destroy();
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
111 +// Ethernet::exit(dev);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
112 +// }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
113
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
114 LKM::init()
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
115 {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
116 diff -r 4920b3a97ad6 -r c3265ca219d5 rathaxes/samples/lkm/pci.blt
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
117 --- a/rathaxes/samples/lkm/pci.blt Sat Jan 07 23:09:24 2012 +0100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
118 +++ b/rathaxes/samples/lkm/pci.blt Sun Jan 08 00:13:22 2012 +0100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
119 @@ -53,7 +53,7 @@
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
120 if (err < 0)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
121 goto fail;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
122
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
123 - ${pointcut ::IMPLEMENTATION};
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
124 + ${pointcut PCI::pci_probe_hook};
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
125
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
126 return 0;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
127
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
128 @@ -61,6 +61,10 @@
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
129 return err;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
130 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
131 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
132 +
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
133 + chunk ::CALL
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
134 + {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
135 + }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
136 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
137
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
138 template sequence PCI::remove(PCI::Device pdev)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
139 @@ -74,11 +78,15 @@
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
140 {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
141 static void rtx_pci_remove(struct pci_dev *pdev)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
142 {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
143 - ${pointcut ::IMPLEMENTATION};
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
144 + ${pointcut PCI::pci_remove_hook};
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
145
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
146 pci_disable_device(pdev);
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
147 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
148 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
149 +
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
150 + chunk ::CALL()
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
151 + {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
152 + }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
153 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
154
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
155 template sequence PCI::register()
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
156 diff -r 4920b3a97ad6 -r c3265ca219d5 rathaxes/samples/lkm/pci.rti
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
157 --- a/rathaxes/samples/lkm/pci.rti Sat Jan 07 23:09:24 2012 +0100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
158 +++ b/rathaxes/samples/lkm/pci.rti Sun Jan 08 00:13:22 2012 +0100
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
159 @@ -23,15 +23,19 @@
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
160 provided chunk LKM::deinit_bus_hook;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
161 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
162
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
163 - required sequence PCI::probe(PCI::Device)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
164 + provided sequence PCI::probe(PCI::Device)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
165 {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
166 provided chunk LKM::prototypes;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
167 provided chunk LKM::code;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
168 +
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
169 + provided pointcut PCI::pci_probe_hook;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
170 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
171
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
172 - required sequence PCI::remove(PCI::Device)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
173 + provided sequence PCI::remove(PCI::Device)
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
174 {
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
175 provided chunk LKM::prototypes;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
176 provided chunk LKM::code;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
177 +
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
178 + provided pointcut PCI::pci_remove_hook;
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
179 }
Thomas Sanchez <thomas.sanchz@gmail.com>
parents:
diff changeset
180 }