37 lines · 914 B · C
RawDownload
#ifndef _LINUX_ATOMIC_H#define _LINUX_ATOMIC_H#include <asm/atomic.h> /** * atomic_inc_not_zero_hint - increment if not null * @v: pointer of type atomic_t * @hint: probable value of the atomic before the increment * * This version of atomic_inc_not_zero() gives a hint of probable * value of the atomic. This helps processor to not read the memory * before doing the atomic read/modify/write cycle, lowering * number of bus transactions on some arches. * * Returns: 0 if increment was not done, 1 otherwise. */#ifndef atomic_inc_not_zero_hintstatic inline int atomic_inc_not_zero_hint(atomic_t *v, int hint){	int val, c = hint; 	/* sanity test, should be removed by compiler if hint is a constant */	if (!hint)		return atomic_inc_not_zero(v); 	do {		val = atomic_cmpxchg(v, c, c + 1);		if (val == c)			return 1;		c = val;	} while (c); 	return 0;}#endif #endif /* _LINUX_ATOMIC_H */