cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sync_bitops.h (1085B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __ASM_SYNC_BITOPS_H__
      3#define __ASM_SYNC_BITOPS_H__
      4
      5#include <asm/bitops.h>
      6#include <asm/cmpxchg.h>
      7
      8/* sync_bitops functions are equivalent to the SMP implementation of the
      9 * original functions, independently from CONFIG_SMP being defined.
     10 *
     11 * We need them because _set_bit etc are not SMP safe if !CONFIG_SMP. But
     12 * under Xen you might be communicating with a completely external entity
     13 * who might be on another CPU (e.g. two uniprocessor guests communicating
     14 * via event channels and grant tables). So we need a variant of the bit
     15 * ops which are SMP safe even on a UP kernel.
     16 */
     17
     18#define sync_set_bit(nr, p)			set_bit(nr, p)
     19#define sync_clear_bit(nr, p)			clear_bit(nr, p)
     20#define sync_change_bit(nr, p)			change_bit(nr, p)
     21#define sync_test_and_set_bit(nr, p)		test_and_set_bit(nr, p)
     22#define sync_test_and_clear_bit(nr, p)		test_and_clear_bit(nr, p)
     23#define sync_test_and_change_bit(nr, p)		test_and_change_bit(nr, p)
     24#define sync_test_bit(nr, addr)			test_bit(nr, addr)
     25#define arch_sync_cmpxchg			arch_cmpxchg
     26
     27#endif