vbus_hw.h 781 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2015-01-07 Grissiom init commit
  9. */
  10. #ifndef __VBUS_HW_H__
  11. #define __VBUS_HW_H__
  12. #include <rtthread.h>
  13. #include <stddef.h>
  14. #include <gic.h>
  15. rt_inline void rt_vbus_tick(unsigned int target_cpu, unsigned int irqnr)
  16. {
  17. arm_gic_trigger(0, 1, irqnr);
  18. }
  19. /* Read memory barrier. */
  20. rt_inline void rt_vbus_smp_rmb(void)
  21. {
  22. asm volatile ("dsb" : : : "memory");
  23. }
  24. /* Write memory barrier. */
  25. rt_inline void rt_vbus_smp_wmb(void)
  26. {
  27. asm volatile ("dsb" : : : "memory");
  28. }
  29. /* General memory barrier. */
  30. rt_inline void rt_vbus_smp_mb(void)
  31. {
  32. asm volatile ("dsb" : : : "memory");
  33. }
  34. #endif /* __VBUS_HW_H__ */