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

dec_unless_positive (249B)


      1cat <<EOF
      2static __always_inline bool
      3arch_${atomic}_dec_unless_positive(${atomic}_t *v)
      4{
      5	${int} c = arch_${atomic}_read(v);
      6
      7	do {
      8		if (unlikely(c > 0))
      9			return false;
     10	} while (!arch_${atomic}_try_cmpxchg(v, &c, c - 1));
     11
     12	return true;
     13}
     14EOF