 eaaaeef392
			
		
	
	
	eaaaeef392
	
	
	
		
			
			This follows the x86/ppc changes for kprobe-based event tracing on sh. While kprobes is only supported on 32-bit sh, we provide the API for HAVE_REGS_AND_STACK_ACCESS_API for both 32 and 64-bit. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			1,012 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			1,012 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <linux/ptrace.h>
 | |
| 
 | |
| /**
 | |
|  * regs_query_register_offset() - query register offset from its name
 | |
|  * @name:	the name of a register
 | |
|  *
 | |
|  * regs_query_register_offset() returns the offset of a register in struct
 | |
|  * pt_regs from its name. If the name is invalid, this returns -EINVAL;
 | |
|  */
 | |
| int regs_query_register_offset(const char *name)
 | |
| {
 | |
| 	const struct pt_regs_offset *roff;
 | |
| 	for (roff = regoffset_table; roff->name != NULL; roff++)
 | |
| 		if (!strcmp(roff->name, name))
 | |
| 			return roff->offset;
 | |
| 	return -EINVAL;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * regs_query_register_name() - query register name from its offset
 | |
|  * @offset:	the offset of a register in struct pt_regs.
 | |
|  *
 | |
|  * regs_query_register_name() returns the name of a register from its
 | |
|  * offset in struct pt_regs. If the @offset is invalid, this returns NULL;
 | |
|  */
 | |
| const char *regs_query_register_name(unsigned int offset)
 | |
| {
 | |
| 	const struct pt_regs_offset *roff;
 | |
| 	for (roff = regoffset_table; roff->name != NULL; roff++)
 | |
| 		if (roff->offset == offset)
 | |
| 			return roff->name;
 | |
| 	return NULL;
 | |
| }
 |