barrier.h 833 B

123456789101112131415161718192021222324252627282930
  1. /*
  2. * Copyright (C) 2004-2006 Atmel Corporation
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. #ifndef __ASM_AVR32_BARRIER_H
  9. #define __ASM_AVR32_BARRIER_H
  10. #define nop() asm volatile("nop")
  11. #define mb() asm volatile("" : : : "memory")
  12. #define rmb() mb()
  13. #define wmb() asm volatile("sync 0" : : : "memory")
  14. #define read_barrier_depends() do { } while(0)
  15. #define set_mb(var, value) do { var = value; mb(); } while(0)
  16. #ifdef CONFIG_SMP
  17. # error "The AVR32 port does not support SMP"
  18. #else
  19. # define smp_mb() barrier()
  20. # define smp_rmb() barrier()
  21. # define smp_wmb() barrier()
  22. # define smp_read_barrier_depends() do { } while(0)
  23. #endif
  24. #endif /* __ASM_AVR32_BARRIER_H */