Lines Matching full:interrupts

30  * interrupts.
41 * With the switch to the 8259A, level mode interrupts became possible. For a
42 * long time on i86pc the 8259A was the only way to handle interrupts and it
67 * interrupts, the lapic provides a way for generating inter-processor
68 * interrupts (IPI) which are the basis for CPU cross calls and CPU pokes.
122 * Generally most interrupts fire below LOCK_LEVEL.
136 * interrupts. In the apix driver each local apic has its own independent set
137 * of interrupts, whereas the pcplusmp driver only has a single global set of
138 * interrupts. This is why pcplusmp only supports a finite number of interrupts
141 * change the number of interrupts available, just the number of processors
148 * processors in the machine or you do not have enough interrupts available.
153 * There are two different ways to manipulate which interrupts will be
157 * respectively). The IF bit determines whether or not interrupts are enabled
163 * Assuming interrupts are not blocked by the IF flag, then the second form is
167 * will either deliver it immediately (if interrupts are not in progress) or it
176 * once it has set the TPR, so higher priority interrupts can come in while
179 * Handling Interrupts
182 * Interrupts can be broken down into three categories based on priority and
185 * o High level interrupts
186 * o Low level hardware interrupts
187 * o Low level software interrupts
189 * High Level Interrupts
191 * High level interrupts encompasses both hardware-sourced and software-sourced
192 * interrupts. Examples of high level hardware interrupts include the serial
193 * console. High level software-sourced interrupts are still delivered through
203 * Low level hardware interrupts
205 * Low level hardware interrupts start off like their high-level cousins. The
207 * to process low level interrupts. These are shared between both low level
208 * hardware and software interrupts. Note that while we run with our
213 * Low level software interrupts
215 * Low level software interrupts are handled in a similar way as hardware
216 * interrupts, but the notification vector is different. Each CPU has a bitmask
217 * of pending software interrupts. We can notify a CPU to process software
218 * interrupts through a specific trap vector as well as through several
220 * processing software interrupts as we lower our spl.
232 * We come into the interrupt handler with all interrupts masked by the IF
315 * case of interrupts which may block, softints and hardints, we always ensure
329 * mask interrupts below the current level. In fact, except for one special
331 * (cli/sti) to either block all interrupts or allow any interrupts to come in.
332 * The design is such that when interrupts are allowed to come in, if we are
335 * apic_intr_enter() the code masks interrupts at or below the current
344 * Recall that we come into the interrupt handler with all interrupts masked
493 * it assists in debugging when asserts that interrupts are enabled trip.
523 * Called with interrupts masked.
597 * To support reentrant level 15 interrupts, we maintain a in hilevel_intr_prolog()
616 * Returns 0 if there are no more high level interrupts (in which
620 * Called with interrupts masked
638 * To support reentrant level 15 interrupts, we maintain a in hilevel_intr_epilog()
767 * Called with interrupts disabled
813 * Set CPU's base SPL based on active interrupts bitmask in intr_thread_epilog()
850 * is needed because higher level interrupts can arrive during the
856 * interrupts.
869 * handling all interrupts at the specified pil on this CPU. It is
890 * In the normal handling of interrupts, after an interrupt handler returns
896 * Whenever interrupts arrive on a CPU which is handling a lower pil
960 * soft interrupts. One question is "why does this need in dosoftint_prolog()
962 * posting soft interrupts to us in set_pending() i.e. the in dosoftint_prolog()
972 * ever clears the bit is -this- code running with interrupts in dosoftint_prolog()
1223 * because we're not called with interrupts blocked, but the in cpu_intr_swtch_enter()
1310 * Called with interrupts disabled.
1335 * Interrupt service routine, called with interrupts disabled.
1387 * High priority interrupts run on this cpu's interrupt stack. in do_interrupt()
1406 * Deliver any pending soft interrupts. in do_interrupt()
1415 * Common tasks always done by _sys_rtt, called with interrupts disabled.
1535 * higher at any time by an interrupt routine, so we must block interrupts
1554 * If we are going to reenable interrupts see if new priority level in do_splx()