Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Enumerations | Functions | Variables
single_step.c File Reference
#include <linux/slab.h>
#include <linux/thread_info.h>
#include <linux/uaccess.h>
#include <linux/mman.h>
#include <linux/types.h>
#include <linux/err.h>
#include <asm/cacheflush.h>
#include <asm/unaligned.h>
#include <arch/abi.h>
#include <arch/opcode.h>

Go to the source code of this file.

Macros

#define signExtend17(val)   sign_extend((val), 17)
 
#define TILE_X1_MASK   (0xffffffffULL << 31)
 
#define P   pr_info
 

Enumerations

enum  mem_op {
  MEMOP_NONE, MEMOP_LOAD, MEMOP_STORE, MEMOP_LOAD_POSTINCR,
  MEMOP_STORE_POSTINCR
}
 

Functions

 __setup ("unaligned_printk=", setup_unaligned_printk)
 
void single_step_execve (void)
 
void single_step_once (struct pt_regs *regs)
 

Variables

int unaligned_printk
 
unsigned int unaligned_fixup_count
 

Macro Definition Documentation

#define P   pr_info
#define signExtend17 (   val)    sign_extend((val), 17)

Definition at line 32 of file single_step.c.

#define TILE_X1_MASK   (0xffffffffULL << 31)

Definition at line 33 of file single_step.c.

Enumeration Type Documentation

enum mem_op
Enumerator:
MEMOP_NONE 
MEMOP_LOAD 
MEMOP_STORE 
MEMOP_LOAD_POSTINCR 
MEMOP_STORE_POSTINCR 

Definition at line 51 of file single_step.c.

Function Documentation

__setup ( )
void single_step_execve ( void  )

Definition at line 281 of file single_step.c.

void single_step_once ( struct pt_regs regs)

single_step_once() - entry point when single stepping has been triggered. : The machine register state

When we arrive at this routine via a trampoline, the single step engine copies the executing bundle to the single step buffer. If the instruction is a condition branch, then the target is reset to one past the next instruction. If the instruction sets the lr, then that is noted. If the instruction is a jump or call, then the new target pc is preserved and the current bundle instruction set to null.

The necessary post-single-step rewriting information is stored in single_step_state-> We use data segment values because the stack will be rewound when we run the rewritten single-stepped instruction.

Definition at line 305 of file single_step.c.

Variable Documentation

unsigned int unaligned_fixup_count

Definition at line 49 of file single_step.c.

int unaligned_printk

Definition at line 35 of file single_step.c.