* Enqueue a fill operation onto the virtual DMA channel. * * This queues up a fill operation to be performed by hardware, if the 'flags' * parameter contains RTE_DMA_OP_FLAG_SUBMIT then trigger doorbell to begin * this operation, otherwise do not trigger doorbell. * * @param dev_id * The identifier of the device. * @param vchan * The identifier of virtual DMA channel. * @param patter
| 923 | * - other values < 0 on failure. |
| 924 | */ |
| 925 | static inline int |
| 926 | rte_dma_fill(int16_t dev_id, uint16_t vchan, uint64_t pattern, |
| 927 | rte_iova_t dst, uint32_t length, uint64_t flags) |
| 928 | { |
| 929 | struct rte_dma_fp_object *obj = &rte_dma_fp_objs[dev_id]; |
| 930 | |
| 931 | #ifdef RTE_DMADEV_DEBUG |
| 932 | if (!rte_dma_is_valid(dev_id) || length == 0) |
| 933 | return -EINVAL; |
| 934 | if (*obj->fill == NULL) |
| 935 | return -ENOTSUP; |
| 936 | #endif |
| 937 | |
| 938 | return (*obj->fill)(obj->dev_private, vchan, pattern, dst, length, |
| 939 | flags); |
| 940 | } |
| 941 | |
| 942 | /** |
| 943 | * Trigger hardware to begin performing enqueued operations. |