annotate wip.patch @ 142:cbff597d307e default tip

Wip doc
author Louis Opter <louis@lse.epita.fr>
date Sun, 09 Feb 2014 15:48:57 -0800
parents 6359457dce75
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
130
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
1 # HG changeset patch
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
2 # Parent ead0d8be18437dcd68451112be0652dfdec884b5
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
3 diff --git a/rathaxes/samples/e1000/e1000.blt b/rathaxes/samples/e1000/e1000.blt
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
4 --- a/rathaxes/samples/e1000/e1000.blt
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
5 +++ b/rathaxes/samples/e1000/e1000.blt
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
6 @@ -150,17 +150,10 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
7 /* Allocate the descriptors */
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
8 hw_ctx->rx_ring.size = ${config.rx_ring_size} * sizeof(*hw_ctx->rx_ring.base);
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
9 hw_ctx->rx_ring.size = ALIGN(hw_ctx->rx_ring.size, 4096);
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
10 - hw_ctx->rx_ring.base = dma_alloc_coherent(
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
11 - ${rtx_ether_ctx.device},
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
12 - hw_ctx->rx_ring.size,
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
13 - &hw_ctx->rx_ring.dma_base,
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
14 - GFP_KERNEL);
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
15 - /* XXX
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
16 - * The first arg is recognized as Ethernet::Device instead of
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
17 - * Device::AbstractDevice.
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
18 - */
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
19 hw_ctx->rx_ring.base = ${DMA::alloc_coherent(
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
20 - rtx_ether_ctx.device, local.hw_ctx.rx_ring.size, local.hw_ctx.rx_ring.dma_base.dma_handle
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
21 + rtx_ether_ctx.device,
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
22 + local.hw_ctx.rx_ring.size,
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
23 + local.hw_ctx.rx_ring.dma_base.dma_handle
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
24 )};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
25 if (!hw_ctx->rx_ring.base)
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
26 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
27 @@ -176,19 +169,13 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
28 */
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
29 for (i = 0; i != ${config.rx_ring_size}; ++i)
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
30 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
31 - // XXX #46: ${Socket::SKBuff.ref} skbuff = ${rtx_ether_ctx.net_device.alloc_rx_skbuff(config.rx_buffer_len)};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
32 - ${Socket::AbstractSKBuff.ref} k_sk_buff = (${Socket::AbstractSKBuff.ref})netdev_alloc_skb(
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
33 - ${rtx_ether_ctx.net_device.k_net_dev}, ${config.rx_buffer_len}
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
34 - );
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
35 - if (!k_sk_buff)
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
36 + ${Socket::SKBuff.ref} skbuff = &hw_ctx->rx_ring.skbuffs[i];
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
37 + // XXX #46: ${rtx_ether_ctx.init_rx_skbuff(local.skbuff, config.rx_buffer_len)};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
38 + if (rtx_ethernet_init_rx_skbuff(${local.skbuff}, ${config.rx_buffer_len}))
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
39 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
40 ${Log::info("adapter_init_rx: cannot allocate a skbuff for the rx ring")};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
41 goto err_skbuffs_alloc;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
42 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
43 - ${Socket::SKBuff.ref} skbuff = &hw_ctx->rx_ring.skbuffs[i];
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
44 - // XXX breaks rtxGen: ${local.skbuff.init(local.k_sk_buff)};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
45 - skbuff->skbuff = k_sk_buff;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
46 - *(dma_addr_t *)&(skbuff->dma_handle) = 0;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
47 // XXX #46: ${local.skbuff.map_from(rtx_ether_ctx.device)};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
48 if (rtx_socket_skbuff_map(${local.skbuff}, ${rtx_ether_ctx.device}, RTX_DMA_FROM_DEVICE))
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
49 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
50 @@ -199,7 +186,7 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
51 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
52
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
53 // ${Log::info("adapter_init_rx: skbuffs allocated};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
54 - pr_info("adapter_init_rx: skbuffs allocated, headlen=%d", skb_headlen((struct sk_buff *)hw_ctx->rx_ring.skbuffs[i].skbuff));
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
55 + pr_info("rtx_e1k: adapter_init_rx: skbuffs allocated, headlen=%d", skb_headlen((struct sk_buff *)hw_ctx->rx_ring.skbuffs[i - 1].skbuff));
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
56
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
57 /* 5. Save the emplacement and the size of the ring in RDBA/RDLEN */
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
58 rtx_e1000_register_write32(hw_ctx, E1000_RDBAL, hw_ctx->rx_ring.dma_base & 0xffffffff);
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
59 @@ -565,7 +552,7 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
60 map
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
61 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
62 rx_ring: ((${self})->rx_ring);
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
63 - //tx_ring: ((${self})->tx_ring);
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
64 + //tx_ring: ((${self})->tx_ring); XXX Circular dep with Context
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
65 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
66 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
67
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
68 diff --git a/rathaxes/samples/e1000/e1000.rti b/rathaxes/samples/e1000/e1000.rti
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
69 --- a/rathaxes/samples/e1000/e1000.rti
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
70 +++ b/rathaxes/samples/e1000/e1000.rti
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
71 @@ -48,6 +48,8 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
72 chunk Ethernet::adapter_setup(Ethernet::Device);
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
73
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
74 attribute RxRing.scalar rx_ring;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
75 + /* XXX: circular dependency with Contex: */
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
76 + //attribute TxRing.scalar tx_ring;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
77 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
78
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
79 provided type TxRing
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
80 diff --git a/rathaxes/samples/e1000/ethernet.blt b/rathaxes/samples/e1000/ethernet.blt
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
81 --- a/rathaxes/samples/e1000/ethernet.blt
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
82 +++ b/rathaxes/samples/e1000/ethernet.blt
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
83 @@ -95,6 +95,24 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
84 #include <linux/etherdevice.h>
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
85 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
86
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
87 + chunk LKM::prototypes()
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
88 + {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
89 + static int rtx_ethernet_alloc_rx_skbuff(${Ethernet::Device.ref}, ${Socket::SKBuff.ref}, ${Builtin::number});
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
90 + }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
91 +
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
92 + chunk LKM::code()
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
93 + {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
94 + static int rtx_ethernet_alloc_rx_skbuff(${Ethernet::Device.ref} self, ${Socket::SKBuff.ref} sk_buff, ${Builtin::number} size)
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
95 + {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
96 + ${Socket::AbstractSKBuff} k_sk_buff = netdev_alloc_skb(${local.self.net_device.k_net_dev}, ${local.size});
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
97 + if (${local.k_sk_buff) {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
98 + ${local.sk_buff.init(local.k_sk_buff, local.size)};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
99 + return 0;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
100 + }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
101 + return 1;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
102 + }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
103 + }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
104 +
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
105 /* XXX: if the first arg is not called rtx_net_dev, it breaks. */
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
106 method init(Ethernet::AbstractDevice rtx_net_dev, PCI::AbstractDevice pci_dev)
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
107 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
108 @@ -107,9 +125,9 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
109 ${self}->net_dev = ${rtx_net_dev};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
110 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
111
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
112 - method alloc_rx_skbuff(Builtin::number size)
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
113 + method alloc_rx_skbuff(Socket::SKBuff sk_buff, Builtin::number size)
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
114 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
115 - (${Socket::Skbuff.ref})netdev_alloc_skb(${self}, ${size});
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
116 + rtx_ethernet_alloc_rx_skbuff(${self}, ${sk_buff}, ${size});
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
117 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
118
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
119 map
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
120 diff --git a/rathaxes/samples/e1000/ethernet.rti b/rathaxes/samples/e1000/ethernet.rti
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
121 --- a/rathaxes/samples/e1000/ethernet.rti
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
122 +++ b/rathaxes/samples/e1000/ethernet.rti
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
123 @@ -33,7 +33,11 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
124 pointcut Ethernet::HardwareContext();
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
125
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
126 method init(Ethernet::AbstractDevice, PCI::AbstractDevice);
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
127 - method alloc_rx_skbuff(Builtin::number); /* -> Socket::Skbuff.ref */
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
128 + /*
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
129 + * Alloc (the AbstractSKBuff inside) the given SKBuff and initialize
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
130 + * the SKBuff, return 1 if the allocation failed, 0 on success.
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
131 + */
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
132 + method alloc_rx_skbuff(Socket::SKBuff, Builtin::number);
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
133
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
134 attribute Device::AbstractDevice.ref device;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
135 attribute PCI::AbstractDevice.ref pci_device;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
136 diff --git a/rathaxes/samples/e1000/socket.blt b/rathaxes/samples/e1000/socket.blt
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
137 --- a/rathaxes/samples/e1000/socket.blt
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
138 +++ b/rathaxes/samples/e1000/socket.blt
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
139 @@ -24,6 +24,7 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
140 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
141 ${Socket::AbstractSKBuff.ref} skbuff;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
142 ${DMA::AbstractDMAHandle.scalar} dma_handle;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
143 + unsigned int size;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
144 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
145
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
146 chunk LKM::prototypes()
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
147 @@ -69,8 +70,13 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
148 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
149 WARN_ON(!${local.self.sk_buff});
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
150 WARN_ON(${local.self.dma_handle});
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
151 + /*
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
152 + * TODO: we don't support skbuffs with paged data yet (see also
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
153 + * http://vger.kernel.org/~davem/skb_data.html).
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
154 + */
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
155 + WARN_ON(skb_is_nonlinear(${local.self.sk_buff.k_sk_buff}));
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
156
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
157 - unsigned int len = skb_headlen(${local.self.sk_buff.k_sk_buff});
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
158 + unsigned int len = ${local.self.size};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
159 ${cast local.len as Builtin::number};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
160 ${local.self.dma_handle} = ${DMA::map(local.dev, local.self.sk_buff.k_sk_buff, local.len, local.direction)};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
161 int err = ${DMA::mapping_error(local.dev, local.self.dma_handle)};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
162 @@ -87,10 +93,11 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
163 ${DMA::DMADirection} direction)
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
164 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
165 WARN_ON(!${local.self.sk_buff});
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
166 + WARN_ON(skb_is_nonlinear(${local.self.sk_buff.k_sk_buff});
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
167
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
168 if (${local.self.dma_handle})
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
169 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
170 - unsigned int len = skb_headlen(${local.self.sk_buff.k_sk_buff});
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
171 + unsigned int len = ${local.self.size};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
172 ${cast local.len as Builtin::number};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
173 ${DMA::unmap(local.dev, local.self.dma_handle, local.len, local.direction)};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
174 ${local.self.dma_handle} = 0;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
175 @@ -105,13 +112,14 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
176 * correct C variable from Ethernet::send() (so I named it as the C
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
177 * variable I needed)
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
178 */
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
179 - method init(Socket::AbstractSKBuff kernel_skb)
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
180 + method init(Socket::AbstractSKBuff kernel_skb, Builtin::number size)
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
181 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
182 ${self.sk_buff} = ${kernel_skb};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
183 + ${self.size} = ${size};
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
184 ${self.dma_handle} = 0;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
185 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
186
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
187 - method dump_infos()
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
188 + method dump_infos()
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
189 {
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
190 rtx_socket_skbuff_dump_infos(${self});
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
191 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
192 @@ -149,6 +157,7 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
193 // would yield to a struct type which you can't assign directly;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
194 // but maybe doing the ->data in that case would be acceptable).
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
195 dma_handle: (*((dma_addr_t *)&(${self})->dma_handle));
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
196 + size: (${self})->size;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
197 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
198 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
199 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
200 diff --git a/rathaxes/samples/e1000/socket.rti b/rathaxes/samples/e1000/socket.rti
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
201 --- a/rathaxes/samples/e1000/socket.rti
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
202 +++ b/rathaxes/samples/e1000/socket.rti
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
203 @@ -13,7 +13,7 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
204 chunk LKM::prototypes();
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
205 chunk LKM::code();
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
206 decl data_types();
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
207 - method init(Socket::AbstractSKBuff);
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
208 + method init(Socket::AbstractSKBuff, Builtin::number);
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
209 method dump_infos();
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
210 /*
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
211 * map_to and map_from return a non-zero value on failure (which
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
212 @@ -26,5 +26,6 @@
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
213
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
214 attribute Socket::AbstractSKBuff.ref sk_buff;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
215 attribute DMA::AbstractDMAHandle.scalar dma_handle;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
216 + attribute Builtin::number.scalar size;
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
217 }
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
218 }