15 #ifndef _GXIO_MPIPE_H_
16 #define _GXIO_MPIPE_H_
27 #include <linux/time.h>
238 return (
unsigned char *)(
long)idesc->
va;
277 return (idesc->
custom1 >> 32) & 0xFF;
290 unsigned char *
va = gxio_mpipe_idesc_get_va(idesc);
291 return va + gxio_mpipe_idesc_get_l2_offset(idesc);
304 unsigned int xfer_size = idesc->
l2_size;
305 return xfer_size - gxio_mpipe_idesc_get_l2_offset(idesc);
338 unsigned int mpipe_instance);
432 buffer_size_enum,
void *
mem,
434 unsigned int mem_flags);
462 #if __SIZEOF_POINTER__ == 4
507 return (
void *)((
unsigned long)val.
551 unsigned int mem_flags);
567 *context,
int x,
int y,
578 *context,
unsigned int ring);
620 bits->
ring_mask[ring / 64] |= (1ull << (ring % 64));
753 unsigned int num_rings,
755 unsigned int num_buckets,
767 int ring,
int bucket,
unsigned int count)
779 MPIPE_MMIO_ADDR__REGION_VAL_IDMA -
828 unsigned int mem_flags);
942 unsigned int num_buckets,
1102 #ifdef __BIG_ENDIAN__
1104 unsigned int swapped;
1117 unsigned int mem_flags);
1135 #ifdef __BIG_ENDIAN__
1137 iqueue->swapped -=
count;
1193 gxio_mpipe_iqueue_advance(iqueue, 1);
1194 gxio_mpipe_iqueue_release(iqueue, idesc);
1233 __insn_prefetch(next);
1235 #ifdef __BIG_ENDIAN__
1239 for (i = iqueue->swapped; i < avail; i++) {
1240 for (j = 0; j < 8; j++)
1242 __builtin_bswap64(next[i].words[j]);
1244 iqueue->swapped =
avail;
1267 unsigned char *
va = gxio_mpipe_idesc_get_va(idesc);
1299 unsigned int edma_ring_id,
1302 unsigned int mem_flags);
1335 *equeue,
unsigned int num)
1353 *equeue,
unsigned int num)
1355 return __gxio_dma_queue_reserve(&equeue->
dma_queue, num,
true,
false);
1374 return __gxio_dma_queue_reserve(&equeue->
dma_queue, num,
false,
false);
1430 gxio_mpipe_equeue_put_at_aux(equeue, edesc.
words, slot);
1445 int64_t
slot = gxio_mpipe_equeue_reserve_fast(equeue, 1);
1449 gxio_mpipe_equeue_put_at(equeue, edesc, slot);
1490 int64_t completion_slot,
1494 completion_slot, update);
1675 const char *link_name,
unsigned int flags);