xref: /kvm-unit-tests/lib/powerpc/handlers.c (revision bd238daba9f3e62ac0a835eb969f6f49aaa570c7)
1*bd238dabSSuraj Jitindar Singh /*
2*bd238dabSSuraj Jitindar Singh  * Generic exception handlers for registration and use in tests
3*bd238dabSSuraj Jitindar Singh  *
4*bd238dabSSuraj Jitindar Singh  * Copyright 2016 Suraj Jitindar Singh, IBM.
5*bd238dabSSuraj Jitindar Singh  *
6*bd238dabSSuraj Jitindar Singh  * This work is licensed under the terms of the GNU LGPL, version 2.
7*bd238dabSSuraj Jitindar Singh  */
8*bd238dabSSuraj Jitindar Singh 
9*bd238dabSSuraj Jitindar Singh #include <libcflat.h>
10*bd238dabSSuraj Jitindar Singh #include <asm/handlers.h>
11*bd238dabSSuraj Jitindar Singh #include <asm/ptrace.h>
12*bd238dabSSuraj Jitindar Singh 
13*bd238dabSSuraj Jitindar Singh /*
14*bd238dabSSuraj Jitindar Singh  * Generic handler for decrementer exceptions (0x900)
15*bd238dabSSuraj Jitindar Singh  * Just reset the decrementer back to its maximum value (0x7FFFFFFF)
16*bd238dabSSuraj Jitindar Singh  */
17*bd238dabSSuraj Jitindar Singh void dec_except_handler(struct pt_regs *regs __unused, void *data __unused)
18*bd238dabSSuraj Jitindar Singh {
19*bd238dabSSuraj Jitindar Singh 	uint32_t dec = 0x7FFFFFFF;
20*bd238dabSSuraj Jitindar Singh 
21*bd238dabSSuraj Jitindar Singh 	asm volatile ("mtdec %0" : : "r" (dec));
22*bd238dabSSuraj Jitindar Singh }
23