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 (1059B)


      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
      7/* sync_bitops functions are equivalent to the SMP implementation of the
      8 * original functions, independently from CONFIG_SMP being defined.
      9 *
     10 * We need them because _set_bit etc are not SMP safe if !CONFIG_SMP. But
     11 * under Xen you might be communicating with a completely external entity
     12 * who might be on another CPU (e.g. two uniprocessor guests communicating
     13 * via event channels and grant tables). So we need a variant of the bit
     14 * ops which are SMP safe even on a UP kernel.
     15 */
     16
     17#define sync_set_bit(nr, p)		_set_bit(nr, p)
     18#define sync_clear_bit(nr, p)		_clear_bit(nr, p)
     19#define sync_change_bit(nr, p)		_change_bit(nr, p)
     20#define sync_test_and_set_bit(nr, p)	_test_and_set_bit(nr, p)
     21#define sync_test_and_clear_bit(nr, p)	_test_and_clear_bit(nr, p)
     22#define sync_test_and_change_bit(nr, p)	_test_and_change_bit(nr, p)
     23#define sync_test_bit(nr, addr)		test_bit(nr, addr)
     24#define arch_sync_cmpxchg		arch_cmpxchg
     25
     26
     27#endif