comparison 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
comparison
equal deleted inserted replaced
119:d84bc9a46771 120:cbd9b9a49b63
1 # HG changeset patch 1 # HG changeset patch
2 # Parent 17641176926da447613bc9729bccf37d673276a0 2 # Parent e06ebc5e25f35ad135ab454c3f157698e00e69ac
3 rathaxes: add an alloc_rx_skbuff method to Ethernet::Device in e1000 3 rathaxes: add an alloc_rx_skbuff method to Ethernet::Device in e1000
4 4
5 This will help to hide platform dependent code from 5 This will help to hide platform dependent code from
6 e1000::set_up_device. 6 e1000::set_up_device.
7 7
8 diff --git a/rathaxes/samples/e1000/e1000.blt b/rathaxes/samples/e1000/e1000.blt
9 --- a/rathaxes/samples/e1000/e1000.blt
10 +++ b/rathaxes/samples/e1000/e1000.blt
11 @@ -752,8 +752,10 @@
12 */
13 for (i = 0; i != ${config.rx_ring_size}; ++i)
14 {
15 + /* XXX #46: */
16 + // hw_ctx->rx_ring.skbuffs[i].skbuff = ${rtx_ether_ctx.net_device.alloc_rx_skb(${config.rx_buffer_len})};
17 hw_ctx->rx_ring.skbuffs[i].skbuff = (${Socket::AbstractSKBuff}*)netdev_alloc_skb(
18 - ${rtx_ether_ctx.net_device.k_net_dev}, /* XXX: .k_net_dev isn't expanded here */
19 + ${rtx_ether_ctx.net_device.k_net_dev},
20 ${config.rx_buffer_len});
21 if (!hw_ctx->rx_ring.skbuffs[i].skbuff)
22 {
23 diff --git a/rathaxes/samples/e1000/ethernet.blt b/rathaxes/samples/e1000/ethernet.blt
24 --- a/rathaxes/samples/e1000/ethernet.blt
25 +++ b/rathaxes/samples/e1000/ethernet.blt
26 @@ -107,6 +107,13 @@
27 ${self}->net_dev = ${rtx_net_dev};
28 }
29
30 + /*
31 + method alloc_rx_skbuff(Builtin::number size)
32 + {
33 + ($(Socket::Skbuff.ref})netdev_alloc_skb(${self}, ${size});
34 + }
35 + */
36 +
37 map
38 {
39 /*
8 diff --git a/rathaxes/samples/e1000/ethernet.rti b/rathaxes/samples/e1000/ethernet.rti 40 diff --git a/rathaxes/samples/e1000/ethernet.rti b/rathaxes/samples/e1000/ethernet.rti
9 --- a/rathaxes/samples/e1000/ethernet.rti 41 --- a/rathaxes/samples/e1000/ethernet.rti
10 +++ b/rathaxes/samples/e1000/ethernet.rti 42 +++ b/rathaxes/samples/e1000/ethernet.rti
11 @@ -30,8 +30,10 @@ 43 @@ -30,8 +30,10 @@
12 { 44 {
14 decl data_types(); 46 decl data_types();
15 + pointcut Ethernet::HardwareContext(); 47 + pointcut Ethernet::HardwareContext();
16 + 48 +
17 method init(Ethernet::AbstractDevice, PCI::AbstractDevice); 49 method init(Ethernet::AbstractDevice, PCI::AbstractDevice);
18 - pointcut Ethernet::HardwareContext(); 50 - pointcut Ethernet::HardwareContext();
19 + method alloc_rx_skbuff(Builtin::number, …); 51 + //method alloc_rx_skbuff(Builtin::number); /* -> Socket::Skbuff.ref */
20 52
21 attribute Device::AbstractDevice.ref device; 53 attribute Device::AbstractDevice.ref device;
22 attribute PCI::AbstractDevice.ref pci_device; 54 attribute PCI::AbstractDevice.ref pci_device;
23 diff --git a/rathaxes/samples/e1000/socket.rti b/rathaxes/samples/e1000/socket.rti 55 diff --git a/rathaxes/samples/e1000/socket.rti b/rathaxes/samples/e1000/socket.rti
24 --- a/rathaxes/samples/e1000/socket.rti 56 --- a/rathaxes/samples/e1000/socket.rti