cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

sys_membarrier.h (737B)


      1/*
      2 * Process-global memory barriers
      3 *
      4 * Copyright (c) 2018 Red Hat, Inc.
      5 *
      6 * Author: Paolo Bonzini <pbonzini@redhat.com>
      7 */
      8
      9#ifndef QEMU_SYS_MEMBARRIER_H
     10#define QEMU_SYS_MEMBARRIER_H
     11
     12#ifdef CONFIG_MEMBARRIER
     13/* Only block reordering at the compiler level in the performance-critical
     14 * side.  The slow side forces processor-level ordering on all other cores
     15 * through a system call.
     16 */
     17extern void smp_mb_global_init(void);
     18extern void smp_mb_global(void);
     19#define smp_mb_placeholder()       barrier()
     20#else
     21/* Keep it simple, execute a real memory barrier on both sides.  */
     22static inline void smp_mb_global_init(void) {}
     23#define smp_mb_global()            smp_mb()
     24#define smp_mb_placeholder()       smp_mb()
     25#endif
     26
     27#endif