155 peripheral, aSrc (resp. aDest) is treated as a magic cookie by the PIL and |
155 peripheral, aSrc (resp. aDest) is treated as a magic cookie by the PIL and |
156 passed straight to the PSL. |
156 passed straight to the PSL. |
157 |
157 |
158 The request can be uninitialised or may have been fragmented previously. The |
158 The request can be uninitialised or may have been fragmented previously. The |
159 previous configuration if any is lost whether or not the function succeeds. |
159 previous configuration if any is lost whether or not the function succeeds. |
|
160 |
|
161 The client must ensure that any memory buffers involved in the transfer |
|
162 have been suitably prepared for DMA. For memory allocated on the kernel |
|
163 side or in a shared chunk this amounts to ensuring cache consistency |
|
164 before Queue() is called. However for memory that was allocated on the |
|
165 user side the client must also ensure that the memory is protected from |
|
166 both data paging and RAM defragmentation before Fragment() is called |
|
167 @see Kern::MapAndPinMemory(). Note however, that this function is only |
|
168 available if the flexible memory model (FMM) is in use. |
160 |
169 |
161 @param aSrc Source memory buffer linear address or peripheral magic cookie. |
170 @param aSrc Source memory buffer linear address or peripheral magic cookie. |
162 @param aDest Destination memory buffer linear address or peripheral magic cookie. |
171 @param aDest Destination memory buffer linear address or peripheral magic cookie. |
163 @param aCount Number of bytes to transfer. |
172 @param aCount Number of bytes to transfer. |
164 @param aFlags Bitmask characterising the transfer. |
173 @param aFlags Bitmask characterising the transfer. |