- File:
-
- 1 edited
-
libcfa/src/concurrency/kernel/private.hfa (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/kernel/private.hfa
ra8667ab ra757ba1 10 10 // Created On : Mon Feb 13 12:27:26 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Mar 2 16:04:46 202313 // Update Count : 1112 // Last Modified On : Wed Aug 12 08:21:33 2020 13 // Update Count : 9 14 14 // 15 15 … … 29 29 30 30 extern "C" { 31 #if defined(CFA_HAVE_LINUX_LIBRSEQ) 32 #include <rseq/rseq.h> 33 #elif defined(CFA_HAVE_LINUX_RSEQ_H) 34 #include <linux/rseq.h> 35 #else 36 #ifndef _GNU_SOURCE 37 #error kernel/private requires gnu_source 38 #endif 31 39 #include <sched.h> 40 #endif 32 41 } 33 42 … … 101 110 // Hardware 102 111 112 #if defined(CFA_HAVE_LINUX_LIBRSEQ) 113 // No data needed 114 #elif defined(CFA_HAVE_LINUX_RSEQ_H) 115 extern "Cforall" { 116 extern __attribute__((aligned(64))) __thread volatile struct rseq __cfaabi_rseq; 117 } 118 #else 119 // No data needed 120 #endif 121 103 122 static inline int __kernel_getcpu() { 104 123 /* paranoid */ verify( ! __preemption_enabled() ); 124 #if defined(CFA_HAVE_LINUX_LIBRSEQ) 125 return rseq_current_cpu(); 126 #elif defined(CFA_HAVE_LINUX_RSEQ_H) 127 int r = __cfaabi_rseq.cpu_id; 128 /* paranoid */ verify( r >= 0 ); 129 return r; 130 #else 105 131 return sched_getcpu(); 132 #endif 106 133 } 107 134
Note:
See TracChangeset
for help on using the changeset viewer.