31 #include <rte_config.h> 32 #include <rte_memcpy.h> 35 #ifdef DATAPLANE_STATS 36 void dma_dump_stats(
void);
39 static inline void dma_read(uintptr_t addr,
size_t len,
void *buf)
41 assert(addr + len >= addr && addr + len <= config.shm_len);
43 rte_memcpy(buf, (uint8_t *) tas_shm + addr, len);
45 #ifdef FLEXNIC_TRACE_DMA 50 trace_event2(FLEXNIC_TRACE_EV_DMARD,
sizeof(evt), &evt,
51 MIN(len, UINT16_MAX -
sizeof(evt)), buf);
55 static inline void dma_write(uintptr_t addr,
size_t len,
const void *buf)
57 assert(addr + len >= addr && addr + len <= config.shm_len);
59 rte_memcpy((uint8_t *) tas_shm + addr, buf, len);
61 #ifdef FLEXNIC_TRACE_DMA 66 trace_event2(FLEXNIC_TRACE_EV_DMAWR,
sizeof(evt), &evt,
67 MIN(len, UINT16_MAX -
sizeof(evt)), buf);
71 static inline void *dma_pointer(uintptr_t addr,
size_t len)
74 assert(addr + len >= addr && addr + len <= config.shm_len);
76 return (uint8_t *) tas_shm + addr;