Mercurial > archived > louis > epitech > mq > rathaxes
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 |
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; |