annotate rathaxes_samples_e1000_add_alloc_sequences_in_socket.patch @ 120:cbd9b9a49b63

wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
author Louis Opter <louis@lse.epita.fr>
date Fri, 26 Jul 2013 21:06:45 -0700
parents d84bc9a46771
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
1 # HG changeset patch
120
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
2 # Parent e06ebc5e25f35ad135ab454c3f157698e00e69ac
119
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
3 rathaxes: add an alloc_rx_skbuff method to Ethernet::Device in e1000
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
4
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
5 This will help to hide platform dependent code from
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
6 e1000::set_up_device.
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
7
120
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
8 diff --git a/rathaxes/samples/e1000/e1000.blt b/rathaxes/samples/e1000/e1000.blt
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
9 --- a/rathaxes/samples/e1000/e1000.blt
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
10 +++ b/rathaxes/samples/e1000/e1000.blt
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
11 @@ -752,8 +752,10 @@
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
12 */
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
13 for (i = 0; i != ${config.rx_ring_size}; ++i)
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
14 {
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
15 + /* XXX #46: */
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
16 + // hw_ctx->rx_ring.skbuffs[i].skbuff = ${rtx_ether_ctx.net_device.alloc_rx_skb(${config.rx_buffer_len})};
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
17 hw_ctx->rx_ring.skbuffs[i].skbuff = (${Socket::AbstractSKBuff}*)netdev_alloc_skb(
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
18 - ${rtx_ether_ctx.net_device.k_net_dev}, /* XXX: .k_net_dev isn't expanded here */
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
19 + ${rtx_ether_ctx.net_device.k_net_dev},
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
20 ${config.rx_buffer_len});
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
21 if (!hw_ctx->rx_ring.skbuffs[i].skbuff)
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
22 {
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
23 diff --git a/rathaxes/samples/e1000/ethernet.blt b/rathaxes/samples/e1000/ethernet.blt
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
24 --- a/rathaxes/samples/e1000/ethernet.blt
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
25 +++ b/rathaxes/samples/e1000/ethernet.blt
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
26 @@ -107,6 +107,13 @@
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
27 ${self}->net_dev = ${rtx_net_dev};
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
28 }
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
29
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
30 + /*
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
31 + method alloc_rx_skbuff(Builtin::number size)
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
32 + {
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
33 + ($(Socket::Skbuff.ref})netdev_alloc_skb(${self}, ${size});
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
34 + }
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
35 + */
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
36 +
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
37 map
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
38 {
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
39 /*
119
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
40 diff --git a/rathaxes/samples/e1000/ethernet.rti b/rathaxes/samples/e1000/ethernet.rti
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
41 --- a/rathaxes/samples/e1000/ethernet.rti
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
42 +++ b/rathaxes/samples/e1000/ethernet.rti
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
43 @@ -30,8 +30,10 @@
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
44 {
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
45 chunk LKM::includes();
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
46 decl data_types();
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
47 + pointcut Ethernet::HardwareContext();
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
48 +
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
49 method init(Ethernet::AbstractDevice, PCI::AbstractDevice);
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
50 - pointcut Ethernet::HardwareContext();
120
cbd9b9a49b63 wip, alloc_rx_skbuff actually an abstraction for netdev_allock_skb
Louis Opter <louis@lse.epita.fr>
parents: 119
diff changeset
51 + //method alloc_rx_skbuff(Builtin::number); /* -> Socket::Skbuff.ref */
119
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
52
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
53 attribute Device::AbstractDevice.ref device;
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
54 attribute PCI::AbstractDevice.ref pci_device;
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
55 diff --git a/rathaxes/samples/e1000/socket.rti b/rathaxes/samples/e1000/socket.rti
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
56 --- a/rathaxes/samples/e1000/socket.rti
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
57 +++ b/rathaxes/samples/e1000/socket.rti
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
58 @@ -1,4 +1,4 @@
113
b22983cb9e3a WIP, thanks joa for some fixes on the compiler
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
59 -interface Socket : LKM, Device, DMA
119
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
60 +interface Socket : LKM, Device, DMA, Builtin
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
61 {
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
62 /* The SKBuff type from the kernel */
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
63 provided type AbstractSKBuff
119
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
64 @@ -10,15 +10,15 @@
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
65
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
66 provided type SKBuff
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
67 {
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
68 - chunk LKM::prototypes();
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
69 - chunk LKM::code();
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
70 - decl data_types();
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
71 - method init(Socket::AbstractSKBuff);
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
72 - method dump_infos();
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
73 - method map_to(Device::AbstractDevice);
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
74 - method map_from(Device::AbstractDevice);
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
75 - method unmap_to_and_free(Device::AbstractDevice);
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
76 - method unmap_from_and_free(Device::AbstractDevice);
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
77 + chunk LKM::prototypes();
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
78 + chunk LKM::code();
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
79 + decl data_types();
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
80 + method init(Socket::AbstractSKBuff);
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
81 + method dump_infos();
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
82 + method map_to(Device::AbstractDevice);
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
83 + method map_from(Device::AbstractDevice);
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
84 + method unmap_to_and_free(Device::AbstractDevice);
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
85 + method unmap_from_and_free(Device::AbstractDevice);
113
b22983cb9e3a WIP, thanks joa for some fixes on the compiler
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
86
119
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
87 attribute Socket::AbstractSKBuff.ref sk_buff;
d84bc9a46771 WIP, finally the alloc_skbuff method will be in the Ethernet subsystem since, the socket subsystem cannot depend on Ethernet (that would cause a circular dependency)
Louis Opter <louis@lse.epita.fr>
parents: 113
diff changeset
88 attribute DMA::AbstractDMAHandle.scalar dma_handle;