Changes in kernel/generic/include/ddi/irq.h [c0699467:180255f] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/ddi/irq.h
rc0699467 r180255f 33 33 */ 34 34 35 #ifndef KERN_DDI_IRQ_H_ 36 #define KERN_DDI_IRQ_H_ 35 #ifndef KERN_IRQ_H_ 36 #define KERN_IRQ_H_ 37 38 #ifdef KERNEL 37 39 38 40 #include <typedefs.h> 39 #include <abi/ddi/irq.h>40 41 #include <adt/list.h> 41 42 #include <adt/hash_table.h> … … 44 45 #include <ipc/ipc.h> 45 46 47 #endif /* KERNEL */ 48 49 typedef enum { 50 /** Read 1 byte from the I/O space. */ 51 CMD_PIO_READ_8 = 1, 52 /** Read 2 bytes from the I/O space. */ 53 CMD_PIO_READ_16, 54 /** Read 4 bytes from the I/O space. */ 55 CMD_PIO_READ_32, 56 57 /** Write 1 byte to the I/O space. */ 58 CMD_PIO_WRITE_8, 59 /** Write 2 bytes to the I/O space. */ 60 CMD_PIO_WRITE_16, 61 /** Write 4 bytes to the I/O space. */ 62 CMD_PIO_WRITE_32, 63 64 /** 65 * Write 1 byte from the source argument 66 * to the I/O space. 67 */ 68 CMD_PIO_WRITE_A_8, 69 /** 70 * Write 2 bytes from the source argument 71 * to the I/O space. 72 */ 73 CMD_PIO_WRITE_A_16, 74 /** 75 * Write 4 bytes from the source argument 76 * to the I/O space. 77 */ 78 CMD_PIO_WRITE_A_32, 79 80 /** Read 1 byte from the memory space. */ 81 CMD_MEM_READ_8, 82 /** Read 2 bytes from the memory space. */ 83 CMD_MEM_READ_16, 84 /** Read 4 bytes from the memory space. */ 85 CMD_MEM_READ_32, 86 87 /** Write 1 byte to the memory space. */ 88 CMD_MEM_WRITE_8, 89 /** Write 2 bytes to the memory space. */ 90 CMD_MEM_WRITE_16, 91 /** Write 4 bytes to the memory space. */ 92 CMD_MEM_WRITE_32, 93 94 /** Write 1 byte from the source argument to the memory space. */ 95 CMD_MEM_WRITE_A_8, 96 /** Write 2 bytes from the source argument to the memory space. */ 97 CMD_MEM_WRITE_A_16, 98 /** Write 4 bytes from the source argument to the memory space. */ 99 CMD_MEM_WRITE_A_32, 100 101 /** 102 * Perform a bit masking on the source argument 103 * and store the result into the destination argument. 104 */ 105 CMD_BTEST, 106 107 /** 108 * Predicate the execution of the following 109 * N commands by the boolean value of the source 110 * argument. 111 */ 112 CMD_PREDICATE, 113 114 /** Accept the interrupt. */ 115 CMD_ACCEPT, 116 117 /** Decline the interrupt. */ 118 CMD_DECLINE, 119 CMD_LAST 120 } irq_cmd_type; 121 122 typedef struct { 123 irq_cmd_type cmd; 124 void *addr; 125 uint32_t value; 126 uintptr_t srcarg; 127 uintptr_t dstarg; 128 } irq_cmd_t; 129 130 typedef struct { 131 size_t cmdcount; 132 irq_cmd_t *cmds; 133 } irq_code_t; 134 135 #ifdef KERNEL 136 46 137 typedef enum { 47 138 IRQ_DECLINE, /**< Decline to service. */ … … 55 146 56 147 struct irq; 57 58 148 typedef void (* irq_handler_t)(struct irq *); 59 149 … … 134 224 /** Notification configuration structure. */ 135 225 ipc_notif_cfg_t notif_cfg; 136 226 137 227 as_t *driver_as; 138 228 } irq_t; … … 148 238 extern irq_t *irq_dispatch_and_lock(inr_t); 149 239 240 #endif /* KERNEL */ 241 150 242 #endif 151 243
Note:
See TracChangeset
for help on using the changeset viewer.