comparison 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
comparison
equal deleted inserted replaced
117:f3c7e9b0c5cf 118:ad21d8a182ad
50 + dma_addr_t data; 50 + dma_addr_t data;
51 + } 51 + }
52 + 52 +
53 + map 53 + map
54 + { 54 + {
55 + k_dma_handle: (dma_addr_t)(${self}); 55 + k_dma_handle: (*(dma_addr_t *)&(${self}));
56 + } 56 + }
57 + } 57 + }
58 + 58 +
59 + template type DMA::DMAHandle() 59 + template type DMA::DMAHandle()
60 + { 60 + {
64 + } 64 + }
65 + 65 +
66 + map 66 + map
67 + { 67 + {
68 + /* XXX: we should use ${DMA::AbstractDMAHandle} here: */ 68 + /* XXX: we should use ${DMA::AbstractDMAHandle} here: */
69 + dma_handle: (dma_addr_t)(${self}); 69 + dma_handle: (*(dma_addr_t *)&(${self}));
70 + } 70 + }
71 + } 71 + }
72 + 72 +
73 + template type DMA::AbstractDMADirection() 73 + template type DMA::AbstractDMADirection()
74 + { 74 + {
77 + enum dma_data_direction data; 77 + enum dma_data_direction data;
78 + } 78 + }
79 + 79 +
80 + map 80 + map
81 + { 81 + {
82 + k_dma_direction: (enum dma_data_direction)(${self}); 82 + k_dma_direction: ((enum dma_data_direction)(${self}));
83 + } 83 + }
84 + } 84 + }
85 + 85 +
86 + template type DMA::DMADirection() 86 + template type DMA::DMADirection()
87 + { 87 + {
101 + 101 +
102 + template sequence map(Device::AbstractDevice dev, Builtin::symbol buf, Builtin::number size, DMA::DMADirection dir) 102 + template sequence map(Device::AbstractDevice dev, Builtin::symbol buf, Builtin::number size, DMA::DMADirection dir)
103 + { 103 + {
104 + chunk ::CALL() 104 + chunk ::CALL()
105 + { 105 + {
106 + ((${DMA::DMAHandle})dma_map_single(${dev.k_device}, ${buf}, ${size}, ${dir.dma_direction})); 106 + dma_map_single(${dev.k_device}, ${buf}, ${size}, ${dir.dma_direction});
107 + } 107 + }
108 + } 108 + }
109 + 109 +
110 + template sequence unmap(Device::AbstractDevice dev, DMA::AbstractDMAHandle handle, Builtin::number size, DMA::DMADirection dir) 110 + template sequence unmap(Device::AbstractDevice dev, DMA::AbstractDMAHandle handle, Builtin::number size, DMA::DMADirection dir)
111 + { 111 + {