Rev 1932 | Rev 2071 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1932 | Rev 1933 | ||
|---|---|---|---|
| Line 69... | Line 69... | ||
| 69 | #ifdef KERNEL |
69 | #ifdef KERNEL |
| 70 | 70 | ||
| 71 | #include <ipc/ipc.h> |
71 | #include <ipc/ipc.h> |
| 72 | #include <typedefs.h> |
72 | #include <typedefs.h> |
| 73 | #include <arch/types.h> |
73 | #include <arch/types.h> |
| - | 74 | #include <adt/list.h> |
|
| 74 | 75 | ||
| 75 | /** IPC notification config structure. |
76 | /** IPC notification config structure. |
| 76 | * |
77 | * |
| 77 | * Primarily, this structure is encapsulated in the irq_t structure. |
78 | * Primarily, this structure is encapsulated in the irq_t structure. |
| 78 | * It is protected by irq_t::lock. |
79 | * It is protected by irq_t::lock. |
| Line 81... | Line 82... | ||
| 81 | bool notify; /**< When false, notifications are not sent. */ |
82 | bool notify; /**< When false, notifications are not sent. */ |
| 82 | answerbox_t *answerbox; /**< Answerbox for notifications. */ |
83 | answerbox_t *answerbox; /**< Answerbox for notifications. */ |
| 83 | unative_t method; /**< Method to be used for the notification. */ |
84 | unative_t method; /**< Method to be used for the notification. */ |
| 84 | irq_code_t *code; /**< Top-half pseudocode. */ |
85 | irq_code_t *code; /**< Top-half pseudocode. */ |
| 85 | count_t counter; /**< Counter. */ |
86 | count_t counter; /**< Counter. */ |
| - | 87 | link_t link; /**< Link between IRQs that are notifying the |
|
| - | 88 | same answerbox. The list is protected by |
|
| - | 89 | the answerbox irq_lock. */ |
|
| 86 | }; |
90 | }; |
| 87 | 91 | ||
| 88 | extern int ipc_irq_register(answerbox_t *box, inr_t inr, devno_t devno, unative_t method, |
92 | extern int ipc_irq_register(answerbox_t *box, inr_t inr, devno_t devno, unative_t method, |
| 89 | irq_code_t *ucode); |
93 | irq_code_t *ucode); |
| 90 | extern void ipc_irq_send_notif(irq_t *irq); |
94 | extern void ipc_irq_send_notif(irq_t *irq); |