Changeset b3f8fb7 in mainline for kernel/generic/include/ddi/irq.h
- Timestamp:
- 2007-01-28T13:25:49Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8e8c1a5
- Parents:
- 1ba41c5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/ddi/irq.h
r1ba41c5 rb3f8fb7 36 36 #define KERN_IRQ_H_ 37 37 38 typedef enum { 39 CMD_MEM_READ_1 = 0, 40 CMD_MEM_READ_2, 41 CMD_MEM_READ_4, 42 CMD_MEM_READ_8, 43 CMD_MEM_WRITE_1, 44 CMD_MEM_WRITE_2, 45 CMD_MEM_WRITE_4, 46 CMD_MEM_WRITE_8, 47 CMD_PORT_READ_1, 48 CMD_PORT_WRITE_1, 49 CMD_IA64_GETCHAR, 50 CMD_PPC32_GETCHAR, 51 CMD_LAST 52 } irq_cmd_type; 53 54 typedef struct { 55 irq_cmd_type cmd; 56 void *addr; 57 unsigned long long value; 58 int dstarg; 59 } irq_cmd_t; 60 61 typedef struct { 62 unsigned int cmdcount; 63 irq_cmd_t *cmds; 64 } irq_code_t; 65 66 #ifdef KERNEL 67 38 68 #include <arch/types.h> 39 #include <typedefs.h>40 69 #include <adt/list.h> 41 #include <ipc/irq.h>42 70 #include <synch/spinlock.h> 71 #include <proc/task.h> 43 72 44 73 typedef enum { … … 52 81 } irq_trigger_t; 53 82 54 typedef void (* irq_handler_t)(irq_t *irq, void *arg, ...); 83 struct irq; 84 typedef void (* irq_handler_t)(struct irq *irq, void *arg, ...); 85 86 87 88 /** IPC notification config structure. 89 * 90 * Primarily, this structure is encapsulated in the irq_t structure. 91 * It is protected by irq_t::lock. 92 */ 93 typedef struct { 94 bool notify; /**< When false, notifications are not sent. */ 95 answerbox_t *answerbox; /**< Answerbox for notifications. */ 96 unative_t method; /**< Method to be used for the notification. */ 97 irq_code_t *code; /**< Top-half pseudocode. */ 98 count_t counter; /**< Counter. */ 99 link_t link; /**< Link between IRQs that are notifying the 100 same answerbox. The list is protected by 101 the answerbox irq_lock. */ 102 } ipc_notif_cfg_t; 55 103 56 104 /** Structure representing one device IRQ. … … 60 108 * devno. 61 109 */ 62 struct irq {110 typedef struct irq { 63 111 /** Hash table link. */ 64 112 link_t link; … … 87 135 /** Notification configuration structure. */ 88 136 ipc_notif_cfg_t notif_cfg; 89 } ;137 } irq_t; 90 138 91 139 extern void irq_init(count_t inrs, count_t chains); … … 97 145 #endif 98 146 147 #endif 148 99 149 /** @} 100 150 */
Note:
See TracChangeset
for help on using the changeset viewer.