annotate rathaxes_samples_e1000_add_a_dma_abstraction.patch @ 118:ad21d8a182ad

WIP: put up (hopefully the last) some touches on the dma abstraction
author Louis Opter <louis@lse.epita.fr>
date Fri, 26 Jul 2013 16:44:08 -0700
parents f3c7e9b0c5cf
children d84bc9a46771
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
117
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
2 # Parent 61470dc5e775a696da551b5227663bf2659f8f4b
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
3 e1000: start a DMA allocation/mapping abstraction
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 It currently matches a lot the Linux DMA API but it should be usable by
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
6 other OSes too. The Linux DMA API is described at the end of the chapter
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
7 15 in the LDD3.
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
8
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
9 This will be useful to remove Linux specific DMA code from
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
10 e1000::set_up_device which should be only device independent code.
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
11
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
12 diff --git a/rathaxes/samples/e1000/CMakeLists.txt b/rathaxes/samples/e1000/CMakeLists.txt
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
13 --- a/rathaxes/samples/e1000/CMakeLists.txt
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
14 +++ b/rathaxes/samples/e1000/CMakeLists.txt
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
15 @@ -5,6 +5,7 @@
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
16 log.rti
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
17 lkm.rti
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
18 device.rti
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
19 + dma.rti
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
20 pci.rti
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
21 socket.rti
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
22 ethernet.rti
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
23 @@ -12,8 +13,9 @@
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
24 BLT
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
25 log.blt
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
26 lkm.blt
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
27 + device.blt
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
28 + dma.blt
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
29 pci.blt
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
30 - device.blt
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
31 socket.blt
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
32 e1000.blt
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
33 ethernet.blt)
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
34 diff --git a/rathaxes/samples/e1000/dma.blt b/rathaxes/samples/e1000/dma.blt
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
35 new file mode 100644
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
36 --- /dev/null
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
37 +++ b/rathaxes/samples/e1000/dma.blt
117
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
38 @@ -0,0 +1,103 @@
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
39 +with DMA, Builtin, LKM, Device
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
40 +{
115
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
41 + template type DMA::AbstractDMAHandle()
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
42 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
43 + chunk LKM::includes()
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
44 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
45 + #include <linux/dma-mapping.h>
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
46 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
47 +
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
48 + decl data_types()
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
49 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
50 + dma_addr_t data;
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
51 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
52 +
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
53 + map
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
54 + {
118
ad21d8a182ad WIP: put up (hopefully the last) some touches on the dma abstraction
Louis Opter <louis@lse.epita.fr>
parents: 117
diff changeset
55 + k_dma_handle: (*(dma_addr_t *)&(${self}));
117
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
56 + }
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
57 + }
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
58 +
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
59 + template type DMA::DMAHandle()
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
60 + {
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
61 + decl data_types()
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
62 + {
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
63 + ${DMA::AbstractDMAHandle} data;
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
64 + }
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
65 +
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
66 + map
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
67 + {
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
68 + /* XXX: we should use ${DMA::AbstractDMAHandle} here: */
118
ad21d8a182ad WIP: put up (hopefully the last) some touches on the dma abstraction
Louis Opter <louis@lse.epita.fr>
parents: 117
diff changeset
69 + dma_handle: (*(dma_addr_t *)&(${self}));
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
70 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
71 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
72 +
115
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
73 + template type DMA::AbstractDMADirection()
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
74 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
75 + decl data_types()
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
76 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
77 + enum dma_data_direction data;
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
78 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
79 +
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
80 + map
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
81 + {
118
ad21d8a182ad WIP: put up (hopefully the last) some touches on the dma abstraction
Louis Opter <louis@lse.epita.fr>
parents: 117
diff changeset
82 + k_dma_direction: ((enum dma_data_direction)(${self}));
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
83 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
84 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
85 +
115
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
86 + template type DMA::DMADirection()
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
87 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
88 + decl data_types()
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
89 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
90 + RTX_DMA_BIDIRECTIONAL = DMA_BIDIRECTIONAL,
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
91 + RTX_DMA_TO_DEVICE = DMA_TO_DEVICE,
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
92 + RTX_DMA_FROM_DEVICE = DMA_FROM_DEVICE
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
93 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
94 +
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
95 + map
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
96 + {
115
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
97 + /* XXX: we should use ${DMA::AbstractDMADirection} here: */
117
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
98 + dma_direction: (enum dma_data_direction)(${self});
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
99 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
100 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
101 +
115
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
102 + template sequence map(Device::AbstractDevice dev, Builtin::symbol buf, Builtin::number size, DMA::DMADirection dir)
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
103 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
104 + chunk ::CALL()
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
105 + {
118
ad21d8a182ad WIP: put up (hopefully the last) some touches on the dma abstraction
Louis Opter <louis@lse.epita.fr>
parents: 117
diff changeset
106 + dma_map_single(${dev.k_device}, ${buf}, ${size}, ${dir.dma_direction});
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
107 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
108 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
109 +
115
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
110 + template sequence unmap(Device::AbstractDevice dev, DMA::AbstractDMAHandle handle, Builtin::number size, DMA::DMADirection dir)
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
111 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
112 + chunk ::CALL()
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
113 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
114 + dma_unmap_single(${dev.k_device}, ${handle.k_dma_handle}, ${size}, ${dir.dma_direction});
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
115 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
116 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
117 +
115
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
118 + template sequence mapping_error(Device::AbstractDevice dev, DMA::AbstractDMAHandle handle)
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
119 + {
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
120 + chunk ::CALL()
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
121 + {
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
122 + dma_mapping_error(${dev.k_device}, ${handle.k_dma_handle});
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
123 + }
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
124 + }
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
125 +
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
126 + template sequence alloc_coherent(Device::AbstractDevice dev, Builtin::number size, DMA::AbstractDMAHandle handle)
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
127 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
128 + chunk ::CALL()
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
129 + {
115
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
130 + dma_alloc_coherent(${dev.k_device}, ${size}, &${handle.k_dma_handle}, GFP_KERNEL);
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
131 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
132 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
133 +
115
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
134 + template sequence free_coherent(Device::AbstractDevice dev, Builtin::number size, Builtin::symbol addr, DMA::AbstractDMAHandle handle)
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
135 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
136 + chunk ::CALL()
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
137 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
138 + dma_free_coherent(${dev.k_device}, ${size}, ${addr}, ${handle.k_dma_handle});
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
139 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
140 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
141 +}
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
142 diff --git a/rathaxes/samples/e1000/dma.rti b/rathaxes/samples/e1000/dma.rti
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
143 new file mode 100644
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
144 --- /dev/null
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
145 +++ b/rathaxes/samples/e1000/dma.rti
117
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
146 @@ -0,0 +1,54 @@
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
147 +interface DMA : Builtin, LKM, Device
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
148 +{
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
149 + provided type AbstractDMAHandle
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
150 + {
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
151 + chunk LKM::includes();
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
152 + decl data_types();
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
153 + attribute Builtin::symbol.scalar k_dma_handle;
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
154 + }
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
155 +
117
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
156 + provided type DMAHandle
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
157 + {
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
158 + decl data_types();
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
159 + attribute AbstractDMAHandle.scalar dma_handle;
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
160 + }
f3c7e9b0c5cf WIP on the DMA API
Louis Opter <louis@lse.epita.fr>
parents: 115
diff changeset
161 +
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
162 + provided type AbstractDMADirection
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
163 + {
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
164 + decl data_types();
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
165 + attribute Builtin::symbol.scalar k_dma_direction;
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
166 + }
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
167 +
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
168 + provided type DMADirection
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
169 + {
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
170 + decl data_types();
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
171 + attribute AbstractDMADirection.scalar dma_direction;
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
172 + }
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
173 +
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
174 + provided sequence map(Device::AbstractDevice, Builtin::symbol, Builtin::number, DMADirection)
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
175 + {
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
176 + provided chunk ::CALL(); /* -> DMAHandle */
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
177 + }
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
178 +
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
179 + provided sequence unmap(Device::AbstractDevice, AbstractDMAHandle, Builtin::number, DMADirection)
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
180 + {
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
181 + provided chunk ::CALL();
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
182 + }
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
183 +
115
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
184 + /* XXX: Until we have a real error handling mechanism: */
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
185 + provided sequence mapping_error(Device::AbstractDevice, AbstractDMAHandle)
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
186 + {
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
187 + provided chunk ::CALL(); /* -> != 0 if the mapping failed */
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
188 + }
5a663f8f0e54 WIP, fix another small bug in rathaxes sequence calls
Louis Opter <louis@lse.epita.fr>
parents: 112
diff changeset
189 +
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
190 + provided sequence alloc_coherent(Device::AbstractDevice, Builtin::number, AbstractDMAHandle)
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
191 + {
112
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
192 + /* return the addr and the handle via the AbstractDMAHandle ptr: */
Louis Opter <louis@lse.epita.fr>
parents: 111
diff changeset
193 + provided chunk ::CALL();
111
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
194 + }
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
195 +
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
196 + provided sequence free_coherent(Device::AbstractDevice, Builtin::number, Builtin::symbol, AbstractDMAHandle)
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
197 + {
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
198 + provided chunk ::CALL();
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
199 + }
b072f682823d Start a new series to refactor e1000::set_up_device
Louis Opter <louis@lse.epita.fr>
parents:
diff changeset
200 +}