bitops.h (920c634aff6cb66e7f352668521eb1313897e93c) bitops.h (7b9f71f974a12740e79e918cfd58c2fce0b5b580)
1/*
2 * PowerPC atomic bit operations.
3 *
4 * Merged version by David Gibson <david@gibson.dropbear.id.au>.
5 * Based on ppc64 versions by: Dave Engebretsen, Todd Inglett, Don
6 * Reed, Pat McCarthy, Peter Bergner, Anton Blanchard. They
7 * originally took it from the ppc32 code.
8 *

--- 37 unchanged lines hidden (view full) ---

46#include <asm/asm-compat.h>
47#include <asm/synch.h>
48
49/* PPC bit number conversion */
50#define PPC_BITLSHIFT(be) (BITS_PER_LONG - 1 - (be))
51#define PPC_BIT(bit) (1UL << PPC_BITLSHIFT(bit))
52#define PPC_BITMASK(bs, be) ((PPC_BIT(bs) - PPC_BIT(be)) | PPC_BIT(bs))
53
1/*
2 * PowerPC atomic bit operations.
3 *
4 * Merged version by David Gibson <david@gibson.dropbear.id.au>.
5 * Based on ppc64 versions by: Dave Engebretsen, Todd Inglett, Don
6 * Reed, Pat McCarthy, Peter Bergner, Anton Blanchard. They
7 * originally took it from the ppc32 code.
8 *

--- 37 unchanged lines hidden (view full) ---

46#include <asm/asm-compat.h>
47#include <asm/synch.h>
48
49/* PPC bit number conversion */
50#define PPC_BITLSHIFT(be) (BITS_PER_LONG - 1 - (be))
51#define PPC_BIT(bit) (1UL << PPC_BITLSHIFT(bit))
52#define PPC_BITMASK(bs, be) ((PPC_BIT(bs) - PPC_BIT(be)) | PPC_BIT(bs))
53
54/* Put a PPC bit into a "normal" bit position */
55#define PPC_BITEXTRACT(bits, ppc_bit, dst_bit) \
56 ((((bits) >> PPC_BITLSHIFT(ppc_bit)) & 1) << (dst_bit))
57
54#include <asm/barrier.h>
55
56/* Macro for generating the ***_bits() functions */
57#define DEFINE_BITOP(fn, op, prefix) \
58static __inline__ void fn(unsigned long mask, \
59 volatile unsigned long *_p) \
60{ \
61 unsigned long old; \

--- 256 unchanged lines hidden ---
58#include <asm/barrier.h>
59
60/* Macro for generating the ***_bits() functions */
61#define DEFINE_BITOP(fn, op, prefix) \
62static __inline__ void fn(unsigned long mask, \
63 volatile unsigned long *_p) \
64{ \
65 unsigned long old; \

--- 256 unchanged lines hidden ---