1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2016-2020 Intel Corporation
3 */
4
5 #ifndef _DLB2_INLINE_FNS_H_
6 #define _DLB2_INLINE_FNS_H_
7
8 /* Inline functions required in more than one source file. */
9
10 static inline struct dlb2_eventdev *
dlb2_pmd_priv(const struct rte_eventdev * eventdev)11 dlb2_pmd_priv(const struct rte_eventdev *eventdev)
12 {
13 return eventdev->data->dev_private;
14 }
15
16 static inline void
dlb2_movntdq_single(void * pp_addr,void * qe4)17 dlb2_movntdq_single(void *pp_addr, void *qe4)
18 {
19 long long *_qe = (long long *)qe4;
20 __m128i src_data0 = (__m128i){_qe[0], _qe[1]};
21
22 _mm_stream_si128(pp_addr, src_data0);
23 }
24
25 static inline void
dlb2_movdir64b(void * dest,void * src)26 dlb2_movdir64b(void *dest, void *src)
27 {
28 asm volatile(".byte 0x66, 0x0f, 0x38, 0xf8, 0x02"
29 :
30 : "a" (dest), "d" (src));
31 }
32
33 #endif /* _DLB2_INLINE_FNS_H_ */
34