---
name: "rte_memcpy.h"
section: "3"
platform: "linux"
package: "dpdk-doc"
version: "24.11.4-0+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rte_memcpy.h"
---

# rte\_memcpy.h(3)

## NAME

rte\_memcpy.h

## SYNOPSIS

### 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

### static void rte\_mov16 (uint8\_t \* dst, const uint8\_t \* src)` [inline]`, ` [static]`

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

**Parameters**

*dst* Pointer to the destination of the data. \
 *src* Pointer to the source data.

### static void rte\_mov32 (uint8\_t \* dst, const uint8\_t \* src)` [inline]`, ` [static]`

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

**Parameters**

*dst* Pointer to the destination of the data. \
 *src* Pointer to the source data.

### static void rte\_mov48 (uint8\_t \* dst, const uint8\_t \* src)` [inline]`, ` [static]`

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

**Parameters**

*dst* Pointer to the destination of the data. \
 *src* Pointer to the source data.

### static void rte\_mov64 (uint8\_t \* dst, const uint8\_t \* src)` [inline]`, ` [static]`

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

**Parameters**

*dst* Pointer to the destination of the data. \
 *src* Pointer to the source data.

### static void rte\_mov128 (uint8\_t \* dst, const uint8\_t \* src)` [inline]`, ` [static]`

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

**Parameters**

*dst* Pointer to the destination of the data. \
 *src* Pointer to the source data.

### static void rte\_mov256 (uint8\_t \* dst, const uint8\_t \* src)` [inline]`, ` [static]`

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

**Parameters**

*dst* Pointer to the destination of the data. \
 *src* Pointer to the source data.

### 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**

*dst* Pointer to the destination of the data. \
 *src* Pointer to the source data. \
 *n* Number of bytes to copy.

**Returns**

Pointer to the destination data.

## Author

Generated automatically by Doxygen for DPDK from the source code.
