comparison rathaxes_samples_e1000_use_the_dma_abstraction_in_socket.patch @ 112:bfe10def90e3

Wip
author Louis Opter <louis@lse.epita.fr>
date Fri, 19 Jul 2013 19:12:10 -0700
parents b072f682823d
children b22983cb9e3a
comparison
equal deleted inserted replaced
111:b072f682823d 112:bfe10def90e3
1 # HG changeset patch 1 # HG changeset patch
2 # Parent df8528e511f471ceaf70e9145e4c6d0f58b0a26a 2 # Parent c571aba317b28723d36bf15393be227b41fce242
3 Replace Linux specific code in Socket by DMA calls 3 Replace Linux specific code in Socket by DMA calls
4 4
5 5 diff --git a/rathaxes/samples/e1000/socket.blt b/rathaxes/samples/e1000/socket.blt
6 --- a/rathaxes/samples/e1000/socket.blt
7 +++ b/rathaxes/samples/e1000/socket.blt
8 @@ -1,4 +1,4 @@
9 -with Socket, LKM, Device, Ethernet
10 +with Socket, LKM, Device, DMA, Ethernet
11 {
12 template type Socket::AbstractSKBuff()
13 {
14 @@ -22,15 +22,15 @@
15 {
16 decl data_types()
17 {
18 - ${Socket::AbstractSKBuff.ref} skbuff;
19 - dma_addr_t dma_handle;
20 + ${Socket::AbstractSKBuff.ref} skbuff;
21 + ${DMA::AbstractDMAHandle.scalar} dma_handle;
22 }
23
24 chunk LKM::prototypes()
25 {
26 static void rtx_socket_skbuff_dump_infos(${Socket::SKBuff.ref});
27 - static int rtx_socket_skbuff_map(${Socket::SKBuff.ref}, struct device *, enum dma_data_direction);
28 - static void rtx_socket_skbuff_unmap_and_free(${Socket::SKBuff.ref}, struct device *, enum dma_data_direction);
29 + static int rtx_socket_skbuff_map(${Socket::SKBuff.ref}, struct device *, ${DMA::DMADirection});
30 + static void rtx_socket_skbuff_unmap_and_free(${Socket::SKBuff.ref}, struct device *, ${DMA::DMADirection});
31 }
32
33 chunk LKM::code()
34 @@ -66,7 +66,7 @@
35
36 static int rtx_socket_skbuff_map(${Socket::SKBuff.ref} self,
37 struct device *dev,
38 - enum dma_data_direction direction)
39 + ${DMA::DMADirection} direction)
40 {
41 ${Socket::AbstractSKBuff.ref} skb = self->skbuff;
42
43 @@ -77,7 +77,7 @@
44 dev,
45 ${local.skb.k_sk_buff},
46 skb_headlen(${local.skb.k_sk_buff}),
47 - direction);
48 + ${local.direction.dma_direction});
49 int err = dma_mapping_error(dev, self->dma_handle);
50 if (err)
51 {
52 @@ -89,7 +89,7 @@
53
54 static void rtx_socket_skbuff_unmap_and_free(${Socket::SKBuff.ref} self,
55 struct device *dev,
56 - enum dma_data_direction direction)
57 + ${DMA::DMADirection} direction)
58 {
59 ${Socket::AbstractSKBuff.ref} skb = self->skbuff;
60
61 @@ -100,7 +100,7 @@
62 dma_unmap_single(dev,
63 self->dma_handle,
64 skb_headlen(${local.skb.k_sk_buff}),
65 - direction);
66 + ${local.direction.dma_direction});
67 self->dma_handle = 0;
68 }
69 dev_kfree_skb_any(${local.skb.k_sk_buff});
70 @@ -126,22 +126,22 @@
71
72 method map_to(Device::AbstractDevice dev)
73 {
74 - rtx_socket_skbuff_map(${self}, ${dev.k_device}, DMA_TO_DEVICE);
75 + rtx_socket_skbuff_map(${self}, ${dev.k_device}, RTX_DMA_TO_DEVICE);
76 }
77
78 method map_from(Device::AbstractDevice dev)
79 {
80 - rtx_socket_skbuff_map(${self}, ${dev.k_device}, DMA_FROM_DEVICE);
81 + rtx_socket_skbuff_map(${self}, ${dev.k_device}, RTX_DMA_FROM_DEVICE);
82 }
83
84 method unmap_to_and_free(Device::AbstractDevice dev)
85 {
86 - rtx_socket_skbuff_unmap_and_free(${self}, ${dev.k_device}, DMA_TO_DEVICE);
87 + rtx_socket_skbuff_unmap_and_free(${self}, ${dev.k_device}, RTX_DMA_TO_DEVICE);
88 }
89
90 method unmap_from_and_free(Device::AbstractDevice dev)
91 {
92 - rtx_socket_skbuff_unmap_and_free(${self}, ${dev.k_device}, DMA_FROM_DEVICE);
93 + rtx_socket_skbuff_unmap_and_free(${self}, ${dev.k_device}, RTX_DMA_FROM_DEVICE);
94 }
95
96 map