New upstream version 18.11-rc1
[deb_dpdk.git] / lib / librte_eal / common / include / arch / ppc_64 / rte_pause.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2017 Cavium, Inc
3  */
4
5 #ifndef _RTE_PAUSE_PPC64_H_
6 #define _RTE_PAUSE_PPC64_H_
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 #include "rte_atomic.h"
13
14 #include "generic/rte_pause.h"
15
16 static inline void rte_pause(void)
17 {
18         /* Set hardware multi-threading low priority */
19         asm volatile("or 1,1,1");
20         /* Set hardware multi-threading medium priority */
21         asm volatile("or 2,2,2");
22         rte_compiler_barrier();
23 }
24
25 #ifdef __cplusplus
26 }
27 #endif
28
29 #endif /* _RTE_PAUSE_PPC64_H_ */