bitops.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * OpenRISC Linux
  3. *
  4. * Linux architectural port borrowing liberally from similar works of
  5. * others. All original copyrights apply as per the original source
  6. * declaration.
  7. *
  8. * OpenRISC implementation:
  9. * Copyright (C) 2003 Matjaz Breskvar <phoenix@bsemi.com>
  10. * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se>
  11. * et al.
  12. *
  13. * This program is free software; you can redistribute it and/or modify
  14. * it under the terms of the GNU General Public License as published by
  15. * the Free Software Foundation; either version 2 of the License, or
  16. * (at your option) any later version.
  17. */
  18. #ifndef __ASM_OPENRISC_BITOPS_H
  19. #define __ASM_OPENRISC_BITOPS_H
  20. /*
  21. * Where we haven't written assembly versions yet, we fall back to the
  22. * generic implementations. Otherwise, we pull in our (hopefully)
  23. * optimized versions.
  24. */
  25. #include <linux/irqflags.h>
  26. #include <linux/compiler.h>
  27. /*
  28. * clear_bit may not imply a memory barrier
  29. */
  30. #ifndef smp_mb__before_clear_bit
  31. #define smp_mb__before_clear_bit() smp_mb()
  32. #define smp_mb__after_clear_bit() smp_mb()
  33. #endif
  34. #include <asm/bitops/__ffs.h>
  35. #include <asm-generic/bitops/ffz.h>
  36. #include <asm/bitops/fls.h>
  37. #include <asm/bitops/__fls.h>
  38. #include <asm-generic/bitops/fls64.h>
  39. #include <asm-generic/bitops/find.h>
  40. #ifndef _LINUX_BITOPS_H
  41. #error only <linux/bitops.h> can be included directly
  42. #endif
  43. #include <asm-generic/bitops/sched.h>
  44. #include <asm/bitops/ffs.h>
  45. #include <asm-generic/bitops/hweight.h>
  46. #include <asm-generic/bitops/lock.h>
  47. #include <asm-generic/bitops/atomic.h>
  48. #include <asm-generic/bitops/non-atomic.h>
  49. #include <asm-generic/bitops/ext2-atomic.h>
  50. #endif /* __ASM_GENERIC_BITOPS_H */