microblaze_intc.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * (C) Copyright 2007 Michal Simek
  4. *
  5. * Michal SIMEK <monstr@monstr.cz>
  6. */
  7. typedef volatile struct microblaze_intc_t {
  8. int isr; /* interrupt status register */
  9. int ipr; /* interrupt pending register */
  10. int ier; /* interrupt enable register */
  11. int iar; /* interrupt acknowledge register */
  12. int sie; /* set interrupt enable bits */
  13. int cie; /* clear interrupt enable bits */
  14. int ivr; /* interrupt vector register */
  15. int mer; /* master enable register */
  16. } microblaze_intc_t;
  17. struct irq_action {
  18. interrupt_handler_t *handler; /* pointer to interrupt rutine */
  19. void *arg;
  20. int count; /* number of interrupt */
  21. };
  22. /**
  23. * Register and unregister interrupt handler rutines
  24. *
  25. * @param irq IRQ number
  26. * @param hdlr Interrupt handler rutine
  27. * @param arg Pointer to argument which is passed to int. handler rutine
  28. * @return 0 if registration pass, 1 if unregistration pass,
  29. * or an error code < 0 otherwise
  30. */
  31. int install_interrupt_handler(int irq, interrupt_handler_t *hdlr,
  32. void *arg);