1
0

gic.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. * 2013-07-20 Bernard first version
  9. */
  10. #ifndef __GIC_H__
  11. #define __GIC_H__
  12. #include <rthw.h>
  13. #include <board.h>
  14. int arm_gic_get_active_irq(rt_uint32_t index);
  15. void arm_gic_ack(rt_uint32_t index, int irq);
  16. void arm_gic_mask(rt_uint32_t index, int irq);
  17. void arm_gic_umask(rt_uint32_t index, int irq);
  18. rt_uint32_t arm_gic_get_pending_irq(rt_uint32_t index, int irq);
  19. void arm_gic_set_pending_irq(rt_uint32_t index, int irq);
  20. void arm_gic_clear_pending_irq(rt_uint32_t index, int irq);
  21. void arm_gic_set_configuration(rt_uint32_t index, int irq, rt_uint32_t config);
  22. rt_uint32_t arm_gic_get_configuration(rt_uint32_t index, int irq);
  23. void arm_gic_clear_active(rt_uint32_t index, int irq);
  24. void arm_gic_set_cpu(rt_uint32_t index, int irq, unsigned int cpumask);
  25. rt_uint32_t arm_gic_get_target_cpu(rt_uint32_t index, int irq);
  26. void arm_gic_set_priority(rt_uint32_t index, int irq, rt_uint32_t priority);
  27. rt_uint32_t arm_gic_get_priority(rt_uint32_t index, int irq);
  28. void arm_gic_set_interface_prior_mask(rt_uint32_t index, rt_uint32_t priority);
  29. rt_uint32_t arm_gic_get_interface_prior_mask(rt_uint32_t index);
  30. void arm_gic_set_binary_point(rt_uint32_t index, rt_uint32_t binary_point);
  31. rt_uint32_t arm_gic_get_binary_point(rt_uint32_t index);
  32. rt_uint32_t arm_gic_get_irq_status(rt_uint32_t index, int irq);
  33. void arm_gic_send_sgi(rt_uint32_t index, int irq, rt_uint32_t target_list, rt_uint32_t filter_list);
  34. rt_uint32_t arm_gic_get_high_pending_irq(rt_uint32_t index);
  35. rt_uint32_t arm_gic_get_interface_id(rt_uint32_t index);
  36. void arm_gic_set_group(rt_uint32_t index, int irq, rt_uint32_t group);
  37. rt_uint32_t arm_gic_get_group(rt_uint32_t index, int irq);
  38. int arm_gic_dist_init(rt_uint32_t index, rt_uint32_t dist_base, int irq_start);
  39. int arm_gic_cpu_init(rt_uint32_t index, rt_uint32_t cpu_base);
  40. void arm_gic_dump_type(rt_uint32_t index);
  41. void arm_gic_dump(rt_uint32_t index);
  42. #endif