|
Xenomai API
2.6.3
|
|
Macros | |
| #define | rtdm_irq_get_arg(irq_handle, type) ((type *)irq_handle->cookie) |
| Retrieve IRQ handler argument. | |
Typedefs | |
| typedef int(* | rtdm_irq_handler_t )(rtdm_irq_t *irq_handle) |
| Interrupt handler. | |
Functions | |
| int | rtdm_irq_request (rtdm_irq_t *irq_handle, unsigned int irq_no, rtdm_irq_handler_t handler, unsigned long flags, const char *device_name, void *arg) |
| Register an interrupt handler. | |
| int | rtdm_irq_free (rtdm_irq_t *irq_handle) |
| Release an interrupt handler. | |
| int | rtdm_irq_enable (rtdm_irq_t *irq_handle) |
| Enable interrupt line. | |
| int | rtdm_irq_disable (rtdm_irq_t *irq_handle) |
| Disable interrupt line. | |
RTDM_IRQTYPE_xxx | |
| #define | RTDM_IRQTYPE_SHARED XN_ISR_SHARED |
| Enable IRQ-sharing with other real-time drivers. | |
| #define | RTDM_IRQTYPE_EDGE XN_ISR_EDGE |
| Mark IRQ as edge-triggered, relevant for correct handling of shared edge-triggered IRQs. | |
RTDM_IRQ_xxx | |
| #define | RTDM_IRQ_NONE XN_ISR_NONE |
| Unhandled interrupt. | |
| #define | RTDM_IRQ_HANDLED XN_ISR_HANDLED |
| Denote handled interrupt. | |
| #define rtdm_irq_get_arg | ( | irq_handle, | |
| type | |||
| ) | ((type *)irq_handle->cookie) |
Retrieve IRQ handler argument.
| irq_handle | IRQ handle |
| type | Type of the pointer to return |
Environments:
This service can be called from:
Rescheduling: never.
| typedef int(* rtdm_irq_handler_t)(rtdm_irq_t *irq_handle) |
Interrupt handler.
| [in] | irq_handle | IRQ handle as returned by rtdm_irq_request() |
| int rtdm_irq_disable | ( | rtdm_irq_t * | irq_handle | ) |
Disable interrupt line.
| [in,out] | irq_handle | IRQ handle as returned by rtdm_irq_request() |
Environments:
This service can be called from:
Rescheduling: never.
| int rtdm_irq_enable | ( | rtdm_irq_t * | irq_handle | ) |
Enable interrupt line.
| [in,out] | irq_handle | IRQ handle as returned by rtdm_irq_request() |
Environments:
This service can be called from:
Rescheduling: possible.
| int rtdm_irq_free | ( | rtdm_irq_t * | irq_handle | ) |
Release an interrupt handler.
| [in,out] | irq_handle | IRQ handle as returned by rtdm_irq_request() |
Environments:
This service can be called from:
Rescheduling: never.
| int rtdm_irq_request | ( | rtdm_irq_t * | irq_handle, |
| unsigned int | irq_no, | ||
| rtdm_irq_handler_t | handler, | ||
| unsigned long | flags, | ||
| const char * | device_name, | ||
| void * | arg | ||
| ) |
Register an interrupt handler.
This function registers the provided handler with an IRQ line and enables the line.
| [in,out] | irq_handle | IRQ handle |
| [in] | irq_no | Line number of the addressed IRQ |
| [in] | handler | Interrupt handler |
| [in] | flags | Registration flags, see RTDM_IRQTYPE_xxx for details |
| [in] | device_name | Device name to show up in real-time IRQ lists |
| [in] | arg | Pointer to be passed to the interrupt handler on invocation |
Environments:
This service can be called from:
Rescheduling: never.
References xnintr_attach(), xnintr_detach(), xnintr_enable(), and xnintr_init().