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