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