Changeset 657 for trunk/kernel/devices/dev_dma.h
- Timestamp:
- Mar 18, 2020, 11:16:59 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/devices/dev_dma.h
r647 r657 2 2 * dev_dma.h - DMA (Direct Memory Access) generic device API definition. 3 3 * 4 * Authors Alain Greiner (2016,2017,2018 )4 * Authors Alain Greiner (2016,2017,2018,2019,2020) 5 5 * 6 6 * Copyright (c) UPMC Sorbonne Universites … … 36 36 * to/from remote clusters. The burst size is defined by the cache line size. 37 37 * Each DMA channel is described by a specific chdev descriptor, handling its private 38 * waiting threads queue. It implement one single command : move data from a (remote) 39 * source buffer to a (remote) destination buffer. 38 * waiting threads queue. It implements two blocking commands : 39 * - move synchronously data from a remote source buffer to a remote destination buffer, 40 * using a polling policy to wait completion (No DMA_IRQ use). 41 * - move synchronously data from a remote source buffer to a remote destination buffer, 42 * using a descheduling policy to wait completion (reactivated bythe IDMA_IRQ). 40 43 ****************************************************************************************/ 41 44 … … 50 53 typedef struct dma_command_s 51 54 { 52 xptr_t dev_xp; /*! extended pointer on the DMA chdev descriptor */ 55 bool_t sync; /*! polling policy if true / descheduling policy if false */ 56 xptr_t dev_xp; /*! extended pointer on the DMA chdev descriptor */ 53 57 xptr_t src_xp; /*! extended pointer on source buffer. */ 54 58 xptr_t dst_xp; /*! extended pointer on destination buffer. */ … … 83 87 /***************************************************************************************** 84 88 * This blocking function register a DMA request in the device queue. 85 * It uses a descheduling policy to wait completion, and return an error status86 * when the transfer is completed.89 * It uses a descheduling policy to wait completion, 90 * It return an error status when the transfer is completed. 87 91 ***************************************************************************************** 88 * @ dst 89 * @ src : extended pointer on Rsource buffer.92 * @ dst_xp : extended pointer on destination buffer. 93 * @ src_xp : extended pointer on source buffer. 90 94 * @ size : number of bytes to move. 91 95 ****************************************************************************************/ 92 error_t dev_dma_remote_memcpy( xptr_t dst_xp, 93 xptr_t src_xp, 94 uint32_t size ); 96 error_t dev_dma_async_memcpy( xptr_t dst_xp, 97 xptr_t src_xp, 98 uint32_t size ); 99 100 /***************************************************************************************** 101 * This blocking function register a DMA request in the device queue. 102 * It uses a polling policy to wait completion. 103 * It return an error status when the transfer is completed. 104 ***************************************************************************************** 105 * @ dst_xp : extended pointer on destination buffer. 106 * @ src_xp : extended pointer on source buffer. 107 * @ size : number of bytes to move. 108 ****************************************************************************************/ 109 error_t dev_dma_sync_memcpy( xptr_t dst_xp, 110 xptr_t src_xp, 111 uint32_t size ); 95 112 96 113
Note: See TracChangeset
for help on using the changeset viewer.