There is no reason for the DPDK libraries to all have 'librte_' prefix on the directory names. This prefix makes the directory names longer and also makes it awkward to add features referring to individual libraries in the build - should the lib names be specified with or without the prefix. Therefore, we can just remove the library prefix and use the library's unique name as the directory name, i.e. 'eal' rather than 'librte_eal' Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
51 lines
1.1 KiB
C
51 lines
1.1 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(c) 2010-2015 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _RTE_PREFETCH_X86_64_H_
|
|
#define _RTE_PREFETCH_X86_64_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <rte_common.h>
|
|
#include "generic/rte_prefetch.h"
|
|
|
|
static inline void rte_prefetch0(const volatile void *p)
|
|
{
|
|
asm volatile ("prefetcht0 %[p]" : : [p] "m" (*(const volatile char *)p));
|
|
}
|
|
|
|
static inline void rte_prefetch1(const volatile void *p)
|
|
{
|
|
asm volatile ("prefetcht1 %[p]" : : [p] "m" (*(const volatile char *)p));
|
|
}
|
|
|
|
static inline void rte_prefetch2(const volatile void *p)
|
|
{
|
|
asm volatile ("prefetcht2 %[p]" : : [p] "m" (*(const volatile char *)p));
|
|
}
|
|
|
|
static inline void rte_prefetch_non_temporal(const volatile void *p)
|
|
{
|
|
asm volatile ("prefetchnta %[p]" : : [p] "m" (*(const volatile char *)p));
|
|
}
|
|
|
|
/*
|
|
* We use raw byte codes for now as only the newest compiler
|
|
* versions support this instruction natively.
|
|
*/
|
|
__rte_experimental
|
|
static inline void
|
|
rte_cldemote(const volatile void *p)
|
|
{
|
|
asm volatile(".byte 0x0f, 0x1c, 0x06" :: "S" (p));
|
|
}
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _RTE_PREFETCH_X86_64_H_ */
|