Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /* Copyright (c) 2019 Facebook */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) #ifndef __LIBBPF_LIBBPF_UTIL_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) #define __LIBBPF_LIBBPF_UTIL_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) #include <stdbool.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #ifdef __cplusplus
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) extern "C" {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) /* Use these barrier functions instead of smp_[rw]mb() when they are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)  * used in a libbpf header file. That way they can be built into the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)  * application that uses libbpf.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #if defined(__i386__) || defined(__x86_64__)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) # define libbpf_smp_rmb() asm volatile("" : : : "memory")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) # define libbpf_smp_wmb() asm volatile("" : : : "memory")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) # define libbpf_smp_mb() \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	asm volatile("lock; addl $0,-4(%%rsp)" : : : "memory", "cc")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) /* Hinders stores to be observed before older loads. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) # define libbpf_smp_rwmb() asm volatile("" : : : "memory")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) #elif defined(__aarch64__)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) # define libbpf_smp_rmb() asm volatile("dmb ishld" : : : "memory")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) # define libbpf_smp_wmb() asm volatile("dmb ishst" : : : "memory")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) # define libbpf_smp_mb() asm volatile("dmb ish" : : : "memory")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) # define libbpf_smp_rwmb() libbpf_smp_mb()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #elif defined(__arm__)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) /* These are only valid for armv7 and above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) # define libbpf_smp_rmb() asm volatile("dmb ish" : : : "memory")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) # define libbpf_smp_wmb() asm volatile("dmb ishst" : : : "memory")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) # define libbpf_smp_mb() asm volatile("dmb ish" : : : "memory")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) # define libbpf_smp_rwmb() libbpf_smp_mb()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) /* Architecture missing native barrier functions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) # define libbpf_smp_rmb() __sync_synchronize()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) # define libbpf_smp_wmb() __sync_synchronize()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) # define libbpf_smp_mb() __sync_synchronize()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) # define libbpf_smp_rwmb() __sync_synchronize()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #ifdef __cplusplus
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) } /* extern "C" */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #endif