Lines Matching full:handler
22 * fast handler or the default handler, if no fast handler was registered.
23 * The default handler sets up a C-stack and dispatches the exception to a
24 * registerd C handler in the second-level dispatch table.
26 * Fast handler entry condition:
41 * Note: Neither the kernel nor the user exception handler generate literals.
63 * We switch to the kernel stack and jump to the first level handler
81 l32i a0, a0, EXC_TABLE_FAST_USER # load handler
92 * jump to the first-level handler associated with the exception cause.
108 l32i a0, a0, EXC_TABLE_FAST_KERNEL # load handler address
134 * vmalloc memory, possibly requiring repair in a double exception handler.
138 * EXC_TABLE_FIXUP is non-zero, this handler jumps to that address. A value of
139 * zero indicates to use the default kernel/user exception handler.
142 * sections, mainly when the handler writes to the stack to assert the stack
143 * pointer is valid. Once the fixup/default handler leaves that area, the
144 * EXC_TABLE_FIXUP variable is reset to the fixup handler or zero.
150 * Some other things to take care of when a fast exception handler doesn't
151 * specify a particular fixup handler but wants to use the default handlers:
154 * exception handler should only use a2 as the stack pointer.
156 * - If the fast handler manipulates the stack pointer (in a2), it has to
157 * register a valid fixup handler and cannot use the default handlers.
159 * - The handler can use any other generic register from a3 to a15, but it
165 * number of registers a fast handler has saved (excluding a0 and a1) must
179 * - When the kernel enters the fixup handler, it still assumes it is in a
181 * The fixup handler, therefore, has to re-register itself as the fixup
182 * handler before it returns from the double exception.
184 * - Fixup handler can share the same exception frame with the fast handler.
185 * The kernel stack pointer is not changed when entering the fixup handler.
189 * on stack. Because the default handler resets the register fixup handler
190 * the fixup handler must make sure that the default handler returns to
192 * the fixup handler.
316 .Lfixup:/* Check for a fixup handler or if we were in a critical section. */
325 beqz a2, .Ldflt # no handler was registered
371 * save a0, then clobber a0. To restart the handler, we have to restore
382 extui a2, a0, 0, 6 # get offset into 64-byte vector handler
389 * This fixup handler is for the extremely unlikely case where the
390 * overflow handler's reference thru a0 gets a hardware TLB refill
491 * Fixup handler for TLB miss in double exception handler for window owerflow.
507 * - return to user. By the time we get to this fixup handler all information
509 * the window overflow handler is lost, so we just return to userspace to
561 * TLB miss handler may not be atomic and pointer to page table
607 * There is not much space here, so simply jump to another handler.
608 * EXCSAVE[DEBUGLEVEL] has been set to that handler.
703 /* 4-Register Window Overflow Vector (Handler) */
715 /* 4-Register Window Underflow Vector (Handler) */
727 /* 8-Register Window Overflow Vector (Handler) */
744 /* 8-Register Window Underflow Vector (Handler) */
761 /* 12-Register Window Overflow Vector (Handler) */
782 /* 12-Register Window Underflow Vector (Handler) */