Rev 1507 | Rev 1693 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1507 | Rev 1595 | ||
---|---|---|---|
Line 27... | Line 27... | ||
27 | */ |
27 | */ |
28 | 28 | ||
29 | #ifndef __IRQ_H__ |
29 | #ifndef __IRQ_H__ |
30 | #define __IRQ_H__ |
30 | #define __IRQ_H__ |
31 | 31 | ||
- | 32 | /** Maximum length of IPC IRQ program */ |
|
32 | #define IRQ_MAX_PROG_SIZE 10 |
33 | #define IRQ_MAX_PROG_SIZE 10 |
33 | 34 | ||
- | 35 | /** Reserved 'virtual' messages for kernel notifications */ |
|
- | 36 | #define IPC_IRQ_RESERVED_VIRTUAL 10 |
|
- | 37 | ||
- | 38 | #define IPC_IRQ_KLOG (-1) |
|
- | 39 | ||
34 | typedef enum { |
40 | typedef enum { |
35 | CMD_MEM_READ_1 = 0, |
41 | CMD_MEM_READ_1 = 0, |
36 | CMD_MEM_READ_2, |
42 | CMD_MEM_READ_2, |
37 | CMD_MEM_READ_4, |
43 | CMD_MEM_READ_4, |
38 | CMD_MEM_READ_8, |
44 | CMD_MEM_READ_8, |
Line 57... | Line 63... | ||
57 | irq_cmd_t *cmds; |
63 | irq_cmd_t *cmds; |
58 | } irq_code_t; |
64 | } irq_code_t; |
59 | 65 | ||
60 | #ifdef KERNEL |
66 | #ifdef KERNEL |
61 | 67 | ||
- | 68 | #include <ipc/ipc.h> |
|
- | 69 | ||
62 | extern void ipc_irq_make_table(int irqcount); |
70 | extern void ipc_irq_make_table(int irqcount); |
63 | extern int ipc_irq_register(answerbox_t *box, int irq, irq_code_t *ucode); |
71 | extern int ipc_irq_register(answerbox_t *box, int irq, irq_code_t *ucode); |
64 | extern void ipc_irq_send_notif(int irq); |
72 | extern void ipc_irq_send_notif(int irq); |
- | 73 | extern void ipc_irq_send_msg(int irq, __native a2, __native a3); |
|
65 | extern void ipc_irq_unregister(answerbox_t *box, int irq); |
74 | extern void ipc_irq_unregister(answerbox_t *box, int irq); |
66 | extern void irq_ipc_bind_arch(__native irq); |
75 | extern void irq_ipc_bind_arch(__native irq); |
67 | extern void ipc_irq_cleanup(answerbox_t *box); |
76 | extern void ipc_irq_cleanup(answerbox_t *box); |
68 | 77 | ||
69 | #endif |
78 | #endif |