Xenomai API
2.6.5
|
Macros | |
#define | rtdm_irq_get_arg(irq_handle, type) ((type *)irq_handle->cookie) |
Retrieve IRQ handler argument. More... | |
Typedefs | |
typedef int(* | rtdm_irq_handler_t) (rtdm_irq_t *irq_handle) |
Interrupt handler. More... | |
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. More... | |
int | rtdm_irq_free (rtdm_irq_t *irq_handle) |
Release an interrupt handler. More... | |
int | rtdm_irq_enable (rtdm_irq_t *irq_handle) |
Enable interrupt line. More... | |
int | rtdm_irq_disable (rtdm_irq_t *irq_handle) |
Disable interrupt line. More... | |
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().