gic.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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 <stdint.h>
  14. #include <board.h>
  15. int arm_gic_get_active_irq(rt_uint64_t index);
  16. void arm_gic_ack(rt_uint64_t index, int irq);
  17. void arm_gic_mask(rt_uint64_t index, int irq);
  18. void arm_gic_umask(rt_uint64_t index, int irq);
  19. rt_uint64_t arm_gic_get_pending_irq(rt_uint64_t index, int irq);
  20. void arm_gic_set_pending_irq(rt_uint64_t index, int irq);
  21. void arm_gic_clear_pending_irq(rt_uint64_t index, int irq);
  22. void arm_gic_set_configuration(rt_uint64_t index, int irq, uint32_t config);
  23. rt_uint64_t arm_gic_get_configuration(rt_uint64_t index, int irq);
  24. void arm_gic_clear_active(rt_uint64_t index, int irq);
  25. void arm_gic_set_cpu(rt_uint64_t index, int irq, unsigned int cpumask);
  26. rt_uint64_t arm_gic_get_target_cpu(rt_uint64_t index, int irq);
  27. void arm_gic_set_priority(rt_uint64_t index, int irq, rt_uint64_t priority);
  28. rt_uint64_t arm_gic_get_priority(rt_uint64_t index, int irq);
  29. void arm_gic_set_interface_prior_mask(rt_uint64_t index, rt_uint64_t priority);
  30. rt_uint64_t arm_gic_get_interface_prior_mask(rt_uint64_t index);
  31. void arm_gic_set_binary_point(rt_uint64_t index, rt_uint64_t binary_point);
  32. rt_uint64_t arm_gic_get_binary_point(rt_uint64_t index);
  33. rt_uint64_t arm_gic_get_irq_status(rt_uint64_t index, int irq);
  34. void arm_gic_send_sgi(rt_uint64_t index, int irq, rt_uint64_t target_list, rt_uint64_t filter_list);
  35. rt_uint64_t arm_gic_get_high_pending_irq(rt_uint64_t index);
  36. rt_uint64_t arm_gic_get_interface_id(rt_uint64_t index);
  37. void arm_gic_set_group(rt_uint64_t index, int irq, rt_uint64_t group);
  38. rt_uint64_t arm_gic_get_group(rt_uint64_t index, int irq);
  39. int arm_gic_dist_init(rt_uint64_t index, rt_uint64_t dist_base, int irq_start);
  40. int arm_gic_cpu_init(rt_uint64_t index, rt_uint64_t cpu_base);
  41. void arm_gic_dump_type(rt_uint64_t index);
  42. void arm_gic_dump(rt_uint64_t index);
  43. #endif