| 
									
										
										
										
											2011-04-20 10:52:38 +01:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * arch/arm/kernel/kprobes.h | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2011-04-26 15:15:56 +01:00
										 |  |  |  * Copyright (C) 2011 Jon Medhurst <tixy@yxit.co.uk>. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Some contents moved here from arch/arm/include/asm/kprobes.h which is | 
					
						
							| 
									
										
										
										
											2011-04-20 10:52:38 +01:00
										 |  |  |  * Copyright (C) 2006, 2007 Motorola Inc. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License version 2 as | 
					
						
							|  |  |  |  * published by the Free Software Foundation. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
					
						
							|  |  |  |  * General Public License for more details. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef _ARM_KERNEL_KPROBES_H
 | 
					
						
							|  |  |  | #define _ARM_KERNEL_KPROBES_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-06 18:12:07 -05:00
										 |  |  | #include "probes.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-20 10:52:38 +01:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2011-04-19 17:18:35 +01:00
										 |  |  |  * These undefined instructions must be unique and | 
					
						
							| 
									
										
										
										
											2011-04-20 10:52:38 +01:00
										 |  |  |  * reserved solely for kprobes' use. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2011-06-16 17:22:37 +01:00
										 |  |  | #define KPROBE_ARM_BREAKPOINT_INSTRUCTION	0x07f001f8
 | 
					
						
							| 
									
										
										
										
											2011-04-19 17:18:35 +01:00
										 |  |  | #define KPROBE_THUMB16_BREAKPOINT_INSTRUCTION	0xde18
 | 
					
						
							|  |  |  | #define KPROBE_THUMB32_BREAKPOINT_INSTRUCTION	0xf7f0a018
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-06 18:12:07 -05:00
										 |  |  | enum probes_insn __kprobes | 
					
						
							| 
									
										
										
										
											2014-03-05 21:41:29 -05:00
										 |  |  | kprobe_decode_ldmstm(kprobe_opcode_t insn, struct arch_probes_insn *asi, | 
					
						
							| 
									
										
										
										
											2014-03-06 18:12:07 -05:00
										 |  |  | 		const struct decode_header *h); | 
					
						
							| 
									
										
										
										
											2011-04-20 10:52:38 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-05 21:23:42 -05:00
										 |  |  | typedef enum probes_insn (kprobe_decode_insn_t)(probes_opcode_t, | 
					
						
							| 
									
										
										
										
											2014-03-05 21:41:29 -05:00
										 |  |  | 						struct arch_probes_insn *, | 
					
						
							| 
									
										
										
										
											2014-03-05 21:40:12 -05:00
										 |  |  | 						bool, | 
					
						
							| 
									
										
										
										
											2014-03-06 18:06:43 -05:00
										 |  |  | 						const union decode_action *); | 
					
						
							| 
									
										
										
										
											2011-04-19 17:56:58 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_THUMB2_KERNEL
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-06 18:12:07 -05:00
										 |  |  | extern const union decode_action kprobes_t32_actions[]; | 
					
						
							|  |  |  | extern const union decode_action kprobes_t16_actions[]; | 
					
						
							| 
									
										
										
										
											2011-04-19 17:56:58 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #else /* !CONFIG_THUMB2_KERNEL */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-06 18:12:07 -05:00
										 |  |  | extern const union decode_action kprobes_arm_actions[]; | 
					
						
							| 
									
										
										
										
											2014-03-06 18:06:43 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-19 17:56:58 +01:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2011-04-20 10:52:38 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif /* _ARM_KERNEL_KPROBES_H */
 |