summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/shared/include/genirq.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared/include/genirq.h')
-rw-r--r--c/src/lib/libbsp/sparc/shared/include/genirq.h132
1 files changed, 0 insertions, 132 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/include/genirq.h b/c/src/lib/libbsp/sparc/shared/include/genirq.h
deleted file mode 100644
index 673be173b1..0000000000
--- a/c/src/lib/libbsp/sparc/shared/include/genirq.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/* General Shared Interrupt handling function interface
- *
- * The functions does not manipulate the IRQ controller or the
- * interrupt level of the CPU. It simply helps the caller with
- * managing shared interrupts where multiple interrupt routines
- * share on interrupt vector/number.
- *
- * COPYRIGHT (c) 2008.
- * Cobham Gaisler AB.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef __GENIRQ_H__
-#define __GENIRQ_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef void (*genirq_handler)(void *arg);
-typedef void* genirq_t;
-
-struct genirq_stats {
- unsigned int irq_cnt;
-};
-
-/* Initialize the genirq interface. Must be the first function
- * called.
- *
- * Returns zero on success, otherwise failure.
- */
-extern genirq_t genirq_init(int number_of_irqs);
-
-/* Free the dynamically allocated memory that the genirq interface has
- * allocated. Also the handlers will be freed.
- *
- * Returns zero on success, otherwise failure.
- */
-extern void genirq_destroy(genirq_t d);
-
-/* Check IRQ number validity
- *
- * Returns zero for valid IRQ numbers, -1 of invalid IRQ numbers.
- */
-extern int genirq_check(genirq_t d, int irq);
-
-/* Allocate one ISR handler and initialize it. Input to genirq_register().
- *
- * \param isr The interrupt service routine called upon IRQ
- * \param arg The argument given to isr() when called.
- *
- * Returns a pointer on success, on failure NULL is returned.
- */
-extern void *genirq_alloc_handler(genirq_handler isr, void *arg);
-
-/* Free handler memory */
-#define genirq_free_handler(handler) free(handler)
-
-/* Register shared interrupt handler previously initialized with
- * genirq_alloc_handler().
- *
- * NOTE: internal list structures are accessed and needs to be protected by
- * spin-locks/IRQ disable by the user to guarantee a correct behaviour.
- *
- * \param irq The interrupt number to register ISR on
- * \param handler Install the pre- allocated and initialized handler.
- *
- * Return Values
- * -1 = Failed
- * 0 = Handler registered Successfully, first handler on this IRQ
- * 1 = Handler registered Successfully, _not_ first handler on this IRQ
- */
-extern int genirq_register(genirq_t d, int irq, void *handler);
-
-/* Unregister an previous registered interrupt handler. It is the user's
- * responsibility to free the handler returned by genirq_unregister().
- *
- * NOTE: internal list structures are accessed and needs to be protected by
- * spin-locks/IRQ disable by the user to guarantee a correct behaviour.
- *
- * Return Values
- * NULL = ISR not registered before or unable to unregister enabled ISR
- * Pointer = ISR sucessfully unregistered. Returned is the handler pointer
- * previously allocated with genirq_alloc_handler().
- */
-extern void *genirq_unregister(genirq_t d, int irq,
- genirq_handler isr, void *arg);
-
-/* Enables IRQ only for this isr[arg] combination. Records if this
- * is the first interrupt enable, only then must interrupts be enabled
- * on the interrupt controller.
- *
- * NOTE: internal list structures are accessed and needs to be protected by
- * spin-locks/IRQ disable by the user to guarantee a correct behaviour.
- *
- * Return values
- * -1 = Failure, for example isr[arg] not registered on this irq
- * 0 = IRQ must be enabled, it is the first IRQ handler to be enabled
- * 1 = IRQ has already been enabled, either by isr[arg] or by another handler
- */
-extern int genirq_enable(genirq_t d, int irq, genirq_handler isr, void *arg);
-
-/* Disables IRQ only for this isr[arg] combination. Records if this
- * is the only interrupt handler that is enabled on this IRQ, only then
- * must interrupts be disabled on the interrupt controller.
- *
- * NOTE: internal list structures are accessed and needs to be protected by
- * spin-locks/IRQ disable by the user to guarantee a correct behaviour.
- *
- * Return values
- * -1 = Failure, for example isr[arg] not registered on this irq
- * 0 = IRQ must be disabled, no ISR are enabled for this IRQ
- * 1 = ISR has already been disabled, or other ISRs are still enabled
- */
-extern int genirq_disable(genirq_t d, int irq, genirq_handler isr, void *arg);
-
-/* Must be called by user when an IRQ has fired, the argument 'irq'
- * is the IRQ number of the IRQ which was fired.
- *
- * NOTE: internal list structures are accessed and needs to be protected by
- * spin-locks/IRQ disable by the user to guarantee a correct behaviour.
- */
-extern void genirq_doirq(genirq_t d, int irq);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif