DPDK  1.7.1
Macros | Functions
rte_memcpy.h File Reference
#include <stdint.h>
#include <string.h>
#include <emmintrin.h>

Macros

#define rte_memcpy(dst, src, n)

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)

Detailed Description

Functions for SSE implementation of memcpy().

Macro Definition Documentation

#define rte_memcpy (   dst,
  src,
 
)
Value:
((__builtin_constant_p(n)) ? \
memcpy((dst), (src), (n)) : \
rte_memcpy_func((dst), (src), (n)))

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.
Parameters
dstPointer to the destination of the data.
srcPointer to the source data.
nNumber of bytes to copy.
Returns
Pointer to the destination data.

Function Documentation

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

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

Parameters
dstPointer to the destination of the data.
srcPointer to the source data.
static void rte_mov16 ( uint8_t *  dst,
const uint8_t *  src 
)
inlinestatic

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

Parameters
dstPointer to the destination of the data.
srcPointer to the source data.
static void rte_mov256 ( uint8_t *  dst,
const uint8_t *  src 
)
inlinestatic

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

Parameters
dstPointer to the destination of the data.
srcPointer to the source data.
static void rte_mov32 ( uint8_t *  dst,
const uint8_t *  src 
)
inlinestatic

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

Parameters
dstPointer to the destination of the data.
srcPointer to the source data.
static void rte_mov48 ( uint8_t *  dst,
const uint8_t *  src 
)
inlinestatic

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

Parameters
dstPointer to the destination of the data.
srcPointer to the source data.
static void rte_mov64 ( uint8_t *  dst,
const uint8_t *  src 
)
inlinestatic

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

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