Lines Matching +full:irq +full:- +full:prio
5 # SPDX-License-Identifier: Apache-2.0
14 which is a link of the Zephyr kernel without various build-time
27 3. An array which maps configured IRQ lines to their associated
66 gate_type = 0xE # 32-bit interrupt gate
79 gate_type = 0x5 # 32-bit task gate
112 def priority_range(prio): argument
114 base = 32 + (prio * 16)
118 def update_irq_vec_map(irq_vec_map, irq, vector, max_irq): argument
119 # No IRQ associated; exception or software interrupt
120 if irq == -1:
123 if irq >= max_irq:
124 error("irq %d specified, but CONFIG_MAX_IRQ_LINES is %d" %
125 (irq, max_irq))
129 if irq_vec_map[irq] != 0:
130 error("multiple vector assignments for interrupt line %d" % irq)
132 debug("assign IRQ %d to vector %d" % (irq, vector))
133 irq_vec_map[irq] = vector
140 # Pass 1: sanity check and set up hard-coded interrupt vectors
141 for handler, irq, prio, vec, dpl, tss in intlist:
142 if vec == -1:
143 if prio == -1:
155 update_irq_vec_map(irq_vec_map, irq, vec, max_irq)
157 # Pass 2: set up priority-based interrupt vectors
158 for handler, irq, prio, vec, dpl, tss in intlist:
159 if vec != -1:
162 for vi in priority_range(prio):
169 if vec == -1:
170 error("can't find a free vector in priority level %d" % prio)
173 update_irq_vec_map(irq_vec_map, irq, vec, max_irq)
209 # int32_t irq;
236 debug("handler irq pri vec dpl")
237 debug("--------------------------")
239 for irq in intlist:
241 hex(irq[0]),
242 "-" if irq[1] == -1 else irq[1],
243 "-" if irq[2] == -1 else irq[2],
244 "-" if irq[3] == -1 else irq[3],
245 irq[4]))
256 parser.add_argument("-m", "--vector-map", required=True,
257 help="Output file mapping IRQ lines to IDT vectors")
258 parser.add_argument("-o", "--output-idt", required=True,
260 parser.add_argument("-a", "--output-vectors-alloc", required=False,
262 parser.add_argument("-k", "--kernel", required=True,
264 parser.add_argument("-v", "--verbose", action="store_true",