| /OK3568_Linux_fs/external/xserver/test/ |
| H A D | fixes.c | 37 _fixes_test_direction(struct PointerBarrier *barrier, int d[4], int permitted) in _fixes_test_direction() argument 43 barrier->directions = 0; in _fixes_test_direction() 44 blocking = barrier_is_blocking_direction(barrier, dir); in _fixes_test_direction() 49 barrier->directions |= 1 << i; in _fixes_test_direction() 50 blocking = barrier_is_blocking_direction(barrier, dir); in _fixes_test_direction() 51 assert((barrier->directions & permitted) == in _fixes_test_direction() 61 struct PointerBarrier barrier; in fixes_pointer_barrier_direction_test() local 77 barrier.x1 = x; in fixes_pointer_barrier_direction_test() 78 barrier.x2 = x; in fixes_pointer_barrier_direction_test() 79 barrier.y1 = y - 50; in fixes_pointer_barrier_direction_test() [all …]
|
| /OK3568_Linux_fs/external/xserver/Xi/ |
| H A D | xibarriers.c | 84 struct PointerBarrier barrier; member 86 /* num_devices/device_ids are devices the barrier applies to */ 144 barrier_is_horizontal(const struct PointerBarrier *barrier) in barrier_is_horizontal() argument 146 return barrier->y1 == barrier->y2; in barrier_is_horizontal() 150 barrier_is_vertical(const struct PointerBarrier *barrier) in barrier_is_vertical() argument 152 return barrier->x1 == barrier->x2; in barrier_is_vertical() 156 * @return The set of barrier movement directions the movement vector 178 * Test if the barrier may block movement in the direction defined by 180 * blocked, it does not test if the barrier actually blocks the movement. 182 * @return TRUE if the barrier blocks the direction of movement or FALSE [all …]
|
| /OK3568_Linux_fs/external/xserver/hw/dmx/glxProxy/ |
| H A D | glxswap.c | 46 static Bool SwapBarrierIsReadyToSwap(GLuint barrier); 47 static void SwapSwapBarrier(GLuint barrier); 48 static void UpdateSwapBarrierList(GLuint barrier, 63 GLuint barrier; member 141 if (pSwap->barrier && SwapBarrierIsReadyToSwap(pSwap->barrier)) { in SGSwapBuffers() 142 /* The swap group is bound to a barrier and the barrier is ready in SGSwapBuffers() 144 * group's swap barrier */ in SGSwapBuffers() 145 SwapSwapBarrier(pSwap->barrier); in SGSwapBuffers() 147 else if (!pSwap->barrier && SwapGroupIsReadyToSwap(pSwap)) { in SGSwapBuffers() 149 * group is not bound to a swap barrier */ in SGSwapBuffers() [all …]
|
| /OK3568_Linux_fs/kernel/tools/include/asm/ |
| H A D | barrier.h | 4 #include "../../arch/x86/include/asm/barrier.h" 6 #include "../../arch/arm/include/asm/barrier.h" 8 #include "../../arch/arm64/include/asm/barrier.h" 10 #include "../../arch/powerpc/include/asm/barrier.h" 12 #include "../../arch/s390/include/asm/barrier.h" 14 #include "../../arch/sh/include/asm/barrier.h" 16 #include "../../arch/sparc/include/asm/barrier.h" 18 #include "../../arch/tile/include/asm/barrier.h" 20 #include "../../arch/alpha/include/asm/barrier.h" 22 #include "../../arch/mips/include/asm/barrier.h" [all …]
|
| /OK3568_Linux_fs/kernel/include/linux/ |
| H A D | spinlock_up.h | 9 #include <asm/barrier.h> 32 barrier(); in arch_spin_lock() 40 barrier(); in arch_spin_trylock() 47 barrier(); in arch_spin_unlock() 54 #define arch_read_lock(lock) do { barrier(); (void)(lock); } while (0) 55 #define arch_write_lock(lock) do { barrier(); (void)(lock); } while (0) 56 #define arch_read_trylock(lock) ({ barrier(); (void)(lock); 1; }) 57 #define arch_write_trylock(lock) ({ barrier(); (void)(lock); 1; }) 58 #define arch_read_unlock(lock) do { barrier(); (void)(lock); } while (0) 59 #define arch_write_unlock(lock) do { barrier(); (void)(lock); } while (0) [all …]
|
| H A D | preempt.h | 172 barrier(); \ 177 barrier(); \ 188 barrier(); \ 195 barrier(); \ 209 barrier(); \ 215 barrier(); \ 225 barrier(); \ 230 barrier(); \ 242 #define preempt_disable() barrier() 243 #define sched_preempt_enable_no_resched() barrier() [all …]
|
| /OK3568_Linux_fs/kernel/Documentation/ |
| H A D | memory-barriers.txt | 29 particular barrier, and 34 for any particular barrier, but if the architecture provides less than 37 Note also that it is possible that a barrier may be a no-op for an 38 architecture because the way that arch works renders an explicit barrier 53 - Varieties of memory barrier. 57 - SMP barrier pairing. 58 - Examples of memory barrier sequences. 64 - Compiler barrier. 74 (*) Inter-CPU acquiring barrier effects. 85 (*) Kernel I/O barrier effects. [all …]
|
| /OK3568_Linux_fs/kernel/arch/mips/include/asm/ |
| H A D | sync.h | 11 * Two types of barrier are provided: 18 * restrictions imposed by the barrier. 31 * b) Multiple variants of ordering barrier are provided which allow the 34 * than a barrier are observed prior to stores that are younger than a 35 * barrier & don't care about the ordering of loads then the 'wmb' 36 * ordering barrier can be used. Limiting the barrier's effects to stores 49 * A full completion barrier; all memory accesses appearing prior to this sync 56 * For now we use a full completion barrier to implement all sync types, until 66 * barrier since 2010 & omit 'rmb' barriers because the CPUs don't perform 104 * don't implicitly provide a memory barrier. In general this is most MIPS [all …]
|
| /OK3568_Linux_fs/kernel/arch/sparc/include/asm/ |
| H A D | barrier_64.h | 6 * #51. Essentially, if a memory barrier occurs soon after a mispredicted 10 * It used to be believed that the memory barrier had to be right in the 11 * delay slot, but a case has been traced recently wherein the memory barrier 23 * the memory barrier explicitly into a "branch always, predicted taken" 44 barrier(); \ 52 barrier(); \ 56 #define __smp_mb__before_atomic() barrier() 57 #define __smp_mb__after_atomic() barrier() 59 #include <asm-generic/barrier.h>
|
| /OK3568_Linux_fs/kernel/tools/virtio/ringtest/ |
| H A D | main.h | 90 /* Compiler barrier - similar to what Linux uses */ 91 #define barrier() asm volatile("" ::: "memory") macro 97 #define cpu_relax() barrier() 110 barrier(); in busy_wait() 125 * adds a compiler barrier. 128 barrier(); \ 134 barrier(); \ 138 #define smp_wmb() barrier() 158 barrier(); \ in __read_once_size() 160 barrier(); \ in __read_once_size() [all …]
|
| H A D | virtio_ring_0_9.c | 133 /* Barrier A (for pairing) */ in add_inbuf() 140 /* Barrier A (for pairing) */ in add_inbuf() 145 /* Barrier A (for pairing) */ in add_inbuf() 163 /* Barrier B (for pairing) */ in get_buf() 169 /* Barrier B (for pairing) */ in get_buf() 221 /* Barrier D (for pairing) */ in enable_call() 231 /* Barrier C (for pairing) */ in kick_available() 253 /* Barrier C (for pairing) */ in enable_kick() 280 /* Barrier A (for pairing) */ in use_buf() 289 /* Barrier A (for pairing) */ in use_buf() [all …]
|
| H A D | ring.c | 130 * add an explicit full barrier to avoid this. in add_inbuf() 132 barrier(); in add_inbuf() 136 /* Barrier A (for pairing) */ in add_inbuf() 151 /* Barrier B (for pairing) */ in get_buf() 182 /* Barrier D (for pairing) */ in enable_call() 192 /* Barrier C (for pairing) */ in kick_available() 214 /* Barrier C (for pairing) */ in enable_kick() 234 /* Barrier A (for pairing) */ in use_buf() 247 /* Barrier B (for pairing) */ in use_buf() 259 /* Barrier D (for pairing) */ in call_used()
|
| /OK3568_Linux_fs/kernel/include/asm-generic/ |
| H A D | barrier.h | 3 * Generic barrier definitions. 31 #define mb() barrier() 79 #define smp_mb() barrier() 83 #define smp_rmb() barrier() 87 #define smp_wmb() barrier() 148 #define smp_store_mb(var, value) do { WRITE_ONCE(var, value); barrier(); } while (0) 152 #define smp_mb__before_atomic() barrier() 156 #define smp_mb__after_atomic() barrier() 163 barrier(); \ 173 barrier(); \ [all …]
|
| /OK3568_Linux_fs/kernel/arch/csky/include/asm/ |
| H A D | barrier.h | 12 * sync: completion barrier, all sync.xx instructions 19 * bar.brwarw: ordering barrier for all load/store instructions before it 20 * bar.brwarws: ordering barrier for all load/store instructions before it 22 * bar.brar: ordering barrier for all load instructions before it 23 * bar.brars: ordering barrier for all load instructions before it 25 * bar.bwaw: ordering barrier for all store instructions before it 26 * bar.bwaws: ordering barrier for all store instructions before it 45 #include <asm-generic/barrier.h>
|
| /OK3568_Linux_fs/kernel/Documentation/core-api/ |
| H A D | atomic_ops.rst | 44 proper implicit or explicit read memory barrier is needed before reading the 65 or explicit memory barrier is needed before the value set with the operation 75 implicit or explicit memory barrier is used after possible runtime 80 barrier. 92 appropriate compiler and/or memory barrier for each use case. Failure 124 Alternatively, you could place a barrier() call in the loop. 184 ``READ_ONCE()`` OR ``WRITE_ONCE()`` DO NOT IMPLY A BARRIER! 222 memory barrier semantics which satisfy the above requirements, that is 232 This means that like atomic_{inc,dec}_return(), the memory barrier 244 Again, these primitives provide explicit memory barrier semantics around [all …]
|
| /OK3568_Linux_fs/kernel/arch/mips/mm/ |
| H A D | tlb-r3k.c | 32 #define BARRIER \ macro 51 entry++; /* BARRIER */ in local_flush_tlb_from() 96 start += PAGE_SIZE; /* BARRIER */ in local_flush_tlb_range() 101 if (idx < 0) /* BARRIER */ in local_flush_tlb_range() 133 start += PAGE_SIZE; /* BARRIER */ in local_flush_tlb_kernel_range() 138 if (idx < 0) /* BARRIER */ in local_flush_tlb_kernel_range() 166 BARRIER; in local_flush_tlb_page() 171 if (idx < 0) /* BARRIER */ in local_flush_tlb_page() 205 BARRIER; in __update_tlb() 210 if (idx < 0) { /* BARRIER */ in __update_tlb() [all …]
|
| /OK3568_Linux_fs/kernel/arch/s390/include/asm/ |
| H A D | barrier.h | 26 #define rmb() barrier() 27 #define wmb() barrier() 37 barrier(); \ 45 barrier(); \ 49 #define __smp_mb__before_atomic() barrier() 50 #define __smp_mb__after_atomic() barrier() 76 #include <asm-generic/barrier.h>
|
| /OK3568_Linux_fs/kernel/arch/powerpc/kernel/ |
| H A D | security.c | 55 * functions as a barrier), but on which the hypervisor (KVM/Qemu) has in setup_barrier_nospec() 56 * not been updated, we would like to enable the barrier. Dropping the in setup_barrier_nospec() 58 * we potentially enable the barrier on systems where the host firmware in setup_barrier_nospec() 191 seq_buf_printf(&s, ", ori31 speculation barrier enabled"); in cpu_show_spectre_v1() 248 * Store-forwarding barrier support. 257 pr_info("stf-barrier: disabled on command line."); in handle_no_stf_barrier() 273 /* Until firmware tells us, we have the barrier with auto */ in handle_ssbd() 325 pr_info("stf-barrier: fallback barrier available\n"); in setup_stf_barrier() 327 pr_info("stf-barrier: hwsync barrier available\n"); in setup_stf_barrier() 329 pr_info("stf-barrier: eieio barrier available\n"); in setup_stf_barrier() [all …]
|
| H A D | smp-tbsync.c | 53 barrier(); in smp_generic_take_timebase() 59 barrier(); in smp_generic_take_timebase() 70 barrier(); in smp_generic_take_timebase() 96 barrier(); in start_contest() 99 barrier(); in start_contest() 104 barrier(); in start_contest() 125 barrier(); in smp_generic_give_timebase() 166 barrier(); in smp_generic_give_timebase()
|
| /OK3568_Linux_fs/u-boot/include/linux/ |
| H A D | compiler-intel.h | 16 #undef barrier 21 #define barrier() __memory_barrier() macro 22 #define barrier_data(ptr) barrier() 29 /* This should act as an optimization barrier on var. 30 * Given that this compiler does not have inline assembly, a compiler barrier 33 #define OPTIMIZER_HIDE_VAR(var) barrier()
|
| /OK3568_Linux_fs/kernel/arch/x86/include/asm/ |
| H A D | barrier.h | 51 /* Prevent speculative execution past this barrier. */ 54 #define dma_rmb() barrier() 55 #define dma_wmb() barrier() 63 #define __smp_wmb() barrier() 69 barrier(); \ 77 barrier(); \ 85 #include <asm-generic/barrier.h> 97 * do not require this barrier. This is only required for the
|
| /OK3568_Linux_fs/kernel/arch/ia64/include/asm/ |
| H A D | barrier.h | 3 * Memory barrier definitions. This is based on information published 48 #define __smp_mb__before_atomic() barrier() 49 #define __smp_mb__after_atomic() barrier() 59 barrier(); \ 67 barrier(); \ 72 * The group barrier in front of the rsm & ssm are necessary to ensure 77 #include <asm-generic/barrier.h>
|
| /OK3568_Linux_fs/kernel/arch/arc/include/asm/ |
| H A D | barrier.h | 15 * Explicit barrier provided by DMB instruction 19 * - DMB guarantees SMP as well as local barrier semantics 20 * (asm-generic/barrier.h ensures sane smp_*mb if not defined here, i.e. 21 * UP: barrier(), SMP: smp_*mb == *mb) 23 * in the general case. Plus it only provides full barrier. 42 #include <asm-generic/barrier.h>
|
| /OK3568_Linux_fs/kernel/tools/arch/sparc/include/asm/ |
| H A D | barrier_64.h | 8 * #51. Essentially, if a memory barrier occurs soon after a mispredicted 12 * It used to be believed that the memory barrier had to be right in the 13 * delay slot, but a case has been traced recently wherein the memory barrier 25 * the memory barrier explicitly into a "branch always, predicted taken" 45 barrier(); \ 52 barrier(); \
|
| /OK3568_Linux_fs/kernel/kernel/sched/ |
| H A D | membarrier.c | 81 * Issue a memory barrier after setting in ipi_sync_rq_state() 92 * Issue a memory barrier before clearing membarrier_state to in membarrier_exec_mmap() 163 * Memory barrier on the caller thread _after_ we finished in membarrier_global_expedited() 250 * and the new cpu will execute a full barrier in the in membarrier_private_expedited() 253 * For SYNC_CORE, we do need a barrier on the current cpu -- in membarrier_private_expedited() 278 * Memory barrier on the caller thread _after_ we finished in membarrier_private_expedited() 297 * For single mm user, we can simply issue a memory barrier in sync_runqueues_membarrier_state() 428 * the semantic "barrier()" to represent a compiler barrier forcing memory 429 * accesses to be performed in program order across the barrier, and 431 * ordering across the barrier, we have the following ordering table for [all …]
|