DPDK  20.11.10
Functions
rte_memcpy.h File Reference

Go to the source code of this file.

Functions

static void rte_mov16 (uint8_t *dst, const uint8_t *src)
 
static void rte_mov32 (uint8_t *dst, const uint8_t *src)
 
static void rte_mov48 (uint8_t *dst, const uint8_t *src)
 
static void rte_mov64 (uint8_t *dst, const uint8_t *src)
 
static void rte_mov128 (uint8_t *dst, const uint8_t *src)
 
static void rte_mov256 (uint8_t *dst, const uint8_t *src)
 
static void * rte_memcpy (void *dst, const void *src, size_t n)
 

Detailed Description

Functions for vectorised implementation of memcpy().

Definition in file rte_memcpy.h.

Function Documentation

◆ rte_mov16()

static void rte_mov16 ( uint8_t *  dst,
const uint8_t *  src 
)
inlinestatic

Copy 16 bytes from one location to another using optimised instructions. The locations should not overlap.

Parameters
dstPointer to the destination of the data.
srcPointer to the source data.

◆ rte_mov32()

static void rte_mov32 ( uint8_t *  dst,
const uint8_t *  src 
)
inlinestatic

Copy 32 bytes from one location to another using optimised instructions. The locations should not overlap.

Parameters
dstPointer to the destination of the data.
srcPointer to the source data.

◆ rte_mov48()

static void rte_mov48 ( uint8_t *  dst,
const uint8_t *  src 
)
inlinestatic

Copy 48 bytes from one location to another using optimised instructions. The locations should not overlap.

Parameters
dstPointer to the destination of the data.
srcPointer to the source data.

◆ rte_mov64()

static void rte_mov64 ( uint8_t *  dst,
const uint8_t *  src 
)
inlinestatic

Copy 64 bytes from one location to another using optimised instructions. The locations should not overlap.

Parameters
dstPointer to the destination of the data.
srcPointer to the source data.

◆ rte_mov128()

static void rte_mov128 ( uint8_t *  dst,
const uint8_t *  src 
)
inlinestatic

Copy 128 bytes from one location to another using optimised instructions. The locations should not overlap.

Parameters
dstPointer to the destination of the data.
srcPointer to the source data.

◆ rte_mov256()

static void rte_mov256 ( uint8_t *  dst,
const uint8_t *  src 
)
inlinestatic

Copy 256 bytes from one location to another using optimised instructions. The locations should not overlap.

Parameters
dstPointer to the destination of the data.
srcPointer to the source data.

◆ rte_memcpy()

static void* rte_memcpy ( void *  dst,
const void *  src,
size_t  n 
)
static

Copy bytes from one location to another. The locations must not overlap.

Note
This is implemented as a macro, so it's address should not be taken and care is needed as parameter expressions may be evaluated multiple times.
For x86 platforms to enable the AVX-512 memcpy implementation, set -DRTE_MEMCPY_AVX512 macro in CFLAGS, or define the RTE_MEMCPY_AVX512 macro explicitly in the source file before including the rte_memcpy header file.
Parameters
dstPointer to the destination of the data.
srcPointer to the source data.
nNumber of bytes to copy.
Returns
Pointer to the destination data.
Examples:
examples/bbdev_app/main.c, examples/ioat/ioatfwd.c, examples/ipsec-secgw/esp.c, examples/l2fwd-cat/cat.c, examples/l2fwd-crypto/main.c, examples/ptpclient/ptpclient.c, examples/vhost/main.c, examples/vhost/virtio_net.c, examples/vmdq/main.c, and examples/vmdq_dcb/main.c.