Mercurial > archived > louis > epitech > mq > rathaxes
comparison e1000_wip.patch @ 128:0fdaa93ed62b
Start to clean up new compiler patch
author | Louis Opter <louis@lse.epita.fr> |
---|---|
date | Mon, 26 Aug 2013 22:53:34 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
127:72b5b4a62cc5 | 128:0fdaa93ed62b |
---|---|
1 # HG changeset patch | |
2 # Parent e2e8117a5aede962810a9a561890d2cf80997815 | |
3 diff --git a/rathaxes/samples/e1000/e1000.blt b/rathaxes/samples/e1000/e1000.blt | |
4 --- a/rathaxes/samples/e1000/e1000.blt | |
5 +++ b/rathaxes/samples/e1000/e1000.blt | |
6 @@ -186,9 +186,9 @@ | |
7 goto err_skbuffs_alloc; | |
8 } | |
9 ${Socket::SKBuff.ref} skbuff = &hw_ctx->rx_ring.skbuffs[i]; | |
10 - // XXX breaks rtxGen: ${local.skbuff.init(local.k_sk_buff)}; | |
11 - skbuff->skbuff = k_sk_buff; | |
12 - skbuff->dma_handle = 0; | |
13 + ${local.skbuff.init(local.k_sk_buff)}; | |
14 + // skbuff->skbuff = k_sk_buff; | |
15 + // *(dma_addr_t *)&(skbuff->dma_handle) = 0; | |
16 // XXX #46: ${local.skbuff.map_from(rtx_ether_ctx.device)}; | |
17 if (rtx_socket_skbuff_map(${local.skbuff}, ${rtx_ether_ctx.device}, RTX_DMA_FROM_DEVICE)) | |
18 { | |
19 @@ -228,7 +228,7 @@ | |
20 { | |
21 dma_unmap_single( | |
22 ${rtx_ether_ctx.device}, | |
23 - hw_ctx->rx_ring.skbuffs[i].dma_handle, | |
24 + *((dma_addr_t *)&(hw_ctx->rx_ring.skbuffs[i].dma_handle)), | |
25 ${config.rx_buffer_len}, | |
26 DMA_FROM_DEVICE); | |
27 err_skbuffs_map: | |
28 @@ -350,7 +350,7 @@ | |
29 E1000_TXD_CMD_RS | | |
30 skb_headlen(${local.k_skb.k_sk_buff})); | |
31 tx_desc->upper.data = 0; | |
32 - tx_desc->buff_addr = cpu_to_le64(skb->dma_handle); | |
33 + tx_desc->buff_addr = cpu_to_le64(${local.skb.dma_handle.k_dma_handle}); | |
34 memcpy(&self->skbuffs[self->tail], ${local.k_skb.k_sk_buff}, sizeof(*${local.k_skb.k_sk_buff})); | |
35 self->tail = (self->tail + 1) % ${config.tx_ring_size}; | |
36 } | |
37 @@ -890,15 +890,18 @@ | |
38 */ | |
39 for (int i = 0; i != ${config.rx_ring_size}; ++i) | |
40 { | |
41 + /* | |
42 + * XXX Leaking casts: | |
43 + * | |
44 + * We should go through the rtx types (Socket::SKBuff, | |
45 + * AbstractSKBuff), but we can't because of the array here, | |
46 + * which is not supported by the compiler. | |
47 + */ | |
48 dma_unmap_single( | |
49 ${rtx_ether_ctx.device}, | |
50 - (dma_addr_t)hw_ctx_->rx_ring.skbuffs[i].dma_handle, | |
51 + *((dma_addr_t *)&(hw_ctx_->rx_ring.skbuffs[i].dma_handle)), | |
52 ${config.rx_buffer_len}, | |
53 DMA_FROM_DEVICE); | |
54 - /* XXX Leaking cast | |
55 - * (We should go through the rtx types (Socket::SKBuff, | |
56 - * AbstractSKBuff) | |
57 - */ | |
58 dev_kfree_skb((struct sk_buff *)hw_ctx_->rx_ring.skbuffs[i].skbuff); | |
59 } | |
60 dma_free_coherent(${rtx_ether_ctx.device}, hw_ctx_->rx_ring.size, |