source: rtems/c/src/lib/libcpu/arm/pxa255/irq/irq.h @ 359e537

4.104.115
Last change on this file since 359e537 was 359e537, checked in by Ralf Corsepius <ralf.corsepius@…>, on 11/30/09 at 05:09:41

Whitespace removal.

  • Property mode set to 100755
File size: 2.4 KB
Line 
1/*
2 * Interrupt handler Header file for PXA By Yang Xi <hiyangxi@gmail.com>
3 * Copyright (c) 2004 by Jay Monkman <jtm@lopingdog.com>
4 *
5 *  The license and distribution terms for this file may be
6 *  found in the file LICENSE in this distribution or at
7 *  http://www.rtems.com/license/LICENSE.
8 *
9 *  $Id$
10 */
11
12#ifndef __IRQ_H__
13#define __IRQ_H__
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19#ifndef __asm__
20
21/*
22 * Include some preprocessor value also used by assember code
23 */
24
25#include <rtems.h>
26#include <pxa255.h>
27
28extern void default_int_handler();
29extern void (*IRQ_table[PRIMARY_IRQS])(uint32_t vector);
30extern void dummy_handler(uint32_t vector);
31
32
33
34/* vector table used by shared/irq_init.c */
35
36typedef unsigned char  rtems_irq_level;
37typedef unsigned char  rtems_irq_trigger;
38struct  __rtems_irq_connect_data__;     /* forward declaratiuon */
39typedef unsigned int rtems_irq_number;
40typedef void (*rtems_irq_hdl)       (uint32_t vector);
41typedef void (*rtems_irq_enable)    (const struct __rtems_irq_connect_data__*);
42typedef void (*rtems_irq_disable)   (const struct __rtems_irq_connect_data__*);
43typedef int  (*rtems_irq_is_enabled)(const struct __rtems_irq_connect_data__*);
44
45typedef struct __rtems_irq_connect_data__ {
46    /* IRQ line */
47    rtems_irq_number             name;
48
49    /* Handler */
50    rtems_irq_hdl                 hdl;
51
52    /* function for enabling interrupts at device level. */
53    rtems_irq_enable              on;
54
55    /* function for disabling interrupts at device level. */
56    rtems_irq_disable             off;
57
58    /* Function to test if interrupt is enabled */
59    rtems_irq_is_enabled        isOn;
60
61    /* priority level of interrupt */
62    rtems_irq_level               irqLevel;
63
64    /* Trigger method (rising/falling edge or high/low level) */
65    rtems_irq_trigger             irqTrigger;
66} rtems_irq_connect_data;
67
68/*
69 * function to initialize the interrupt for a specific BSP
70 */
71void BSP_rtems_irq_mngt_init();
72
73
74/*
75 * function to connect a particular irq handler.
76 */
77int BSP_install_rtems_irq_handler       (const rtems_irq_connect_data*);
78
79/*
80 * function to get the current RTEMS irq handler for ptr->name.
81 */
82int BSP_get_current_rtems_irq_handler   (rtems_irq_connect_data* ptr);
83
84/*
85 * function to disconnect the RTEMS irq handler for ptr->name.
86 */
87int BSP_remove_rtems_irq_handler        (const rtems_irq_connect_data*);
88
89#endif /* __asm__ */
90
91#ifdef __cplusplus
92}
93#endif
94
95#endif /* __IRQ_H__ */
Note: See TracBrowser for help on using the repository browser.