Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros
winmacro.h File Reference
#include <asm/ptrace.h>

Go to the source code of this file.

Macros

#define STORE_WINDOW(reg)
 
#define LOAD_WINDOW(reg)
 
#define LOAD_PT_INS(base_reg)
 
#define LOAD_PT_GLOBALS(base_reg)
 
#define LOAD_PT_YREG(base_reg, scratch)
 
#define LOAD_PT_PRIV(base_reg, pt_psr, pt_pc, pt_npc)
 
#define LOAD_PT_ALL(base_reg, pt_psr, pt_pc, pt_npc, scratch)
 
#define STORE_PT_INS(base_reg)
 
#define STORE_PT_GLOBALS(base_reg)
 
#define STORE_PT_YREG(base_reg, scratch)
 
#define STORE_PT_PRIV(base_reg, pt_psr, pt_pc, pt_npc)
 
#define STORE_PT_ALL(base_reg, reg_psr, reg_pc, reg_npc, g_scratch)
 
#define SAVE_BOLIXED_USER_STACK(cur_reg, scratch)
 
#define LOAD_CURRENT(dest_reg, idreg)
 

Macro Definition Documentation

#define LOAD_CURRENT (   dest_reg,
  idreg 
)
Value:
sethi %hi(current_set), %idreg; \
ld [%idreg + %lo(current_set)], %dest_reg;

Definition at line 126 of file winmacro.h.

#define LOAD_PT_ALL (   base_reg,
  pt_psr,
  pt_pc,
  pt_npc,
  scratch 
)
Value:
LOAD_PT_INS(base_reg) \
LOAD_PT_GLOBALS(base_reg) \
LOAD_PT_PRIV(base_reg, pt_psr, pt_pc, pt_npc)

Definition at line 58 of file winmacro.h.

#define LOAD_PT_GLOBALS (   base_reg)
Value:
ldd [%base_reg + STACKFRAME_SZ + PT_G2], %g2; \
ldd [%base_reg + STACKFRAME_SZ + PT_G4], %g4; \
ldd [%base_reg + STACKFRAME_SZ + PT_G6], %g6;

Definition at line 43 of file winmacro.h.

#define LOAD_PT_INS (   base_reg)
Value:
ldd [%base_reg + STACKFRAME_SZ + PT_I0], %i0; \
ldd [%base_reg + STACKFRAME_SZ + PT_I2], %i2; \
ldd [%base_reg + STACKFRAME_SZ + PT_I4], %i4; \
ldd [%base_reg + STACKFRAME_SZ + PT_I6], %i6;

Definition at line 37 of file winmacro.h.

#define LOAD_PT_PRIV (   base_reg,
  pt_psr,
  pt_pc,
  pt_npc 
)
Value:
ld [%base_reg + STACKFRAME_SZ + PT_PSR], %pt_psr; \
ld [%base_reg + STACKFRAME_SZ + PT_PC], %pt_pc; \
ld [%base_reg + STACKFRAME_SZ + PT_NPC], %pt_npc;

Definition at line 53 of file winmacro.h.

#define LOAD_PT_YREG (   base_reg,
  scratch 
)
Value:
wr %scratch, 0x0, %y;

Definition at line 49 of file winmacro.h.

#define LOAD_WINDOW (   reg)
Value:
ldd [%reg + RW_L0], %l0; \
ldd [%reg + RW_L2], %l2; \
ldd [%reg + RW_L4], %l4; \
ldd [%reg + RW_L6], %l6; \
ldd [%reg + RW_I0], %i0; \
ldd [%reg + RW_I2], %i2; \
ldd [%reg + RW_I4], %i4; \
ldd [%reg + RW_I6], %i6;

Definition at line 26 of file winmacro.h.

#define SAVE_BOLIXED_USER_STACK (   cur_reg,
  scratch 
)
Value:
ld [%cur_reg + TI_W_SAVED], %scratch; \
sll %scratch, 2, %scratch; \
add %scratch, %cur_reg, %scratch; \
st %sp, [%scratch + TI_RWIN_SPTRS]; \
sub %scratch, %cur_reg, %scratch; \
sll %scratch, 4, %scratch; \
add %scratch, %cur_reg, %scratch; \
STORE_WINDOW(scratch + TI_REG_WINDOW); \
sub %scratch, %cur_reg, %scratch; \
srl %scratch, 6, %scratch; \
add %scratch, 1, %scratch; \
st %scratch, [%cur_reg + TI_W_SAVED];

Definition at line 91 of file winmacro.h.

#define STORE_PT_ALL (   base_reg,
  reg_psr,
  reg_pc,
  reg_npc,
  g_scratch 
)
Value:
STORE_PT_PRIV(base_reg, reg_psr, reg_pc, reg_npc) \
STORE_PT_GLOBALS(base_reg) \
STORE_PT_YREG(base_reg, g_scratch) \
STORE_PT_INS(base_reg)

Definition at line 85 of file winmacro.h.

#define STORE_PT_GLOBALS (   base_reg)
Value:
std %g2, [%base_reg + STACKFRAME_SZ + PT_G2]; \
std %g4, [%base_reg + STACKFRAME_SZ + PT_G4]; \
std %g6, [%base_reg + STACKFRAME_SZ + PT_G6];

Definition at line 70 of file winmacro.h.

#define STORE_PT_INS (   base_reg)
Value:
std %i2, [%base_reg + STACKFRAME_SZ + PT_I2]; \
std %i4, [%base_reg + STACKFRAME_SZ + PT_I4]; \
std %i6, [%base_reg + STACKFRAME_SZ + PT_I6];

Definition at line 64 of file winmacro.h.

#define STORE_PT_PRIV (   base_reg,
  pt_psr,
  pt_pc,
  pt_npc 
)
Value:
st %pt_psr, [%base_reg + STACKFRAME_SZ + PT_PSR]; \
st %pt_pc, [%base_reg + STACKFRAME_SZ + PT_PC]; \
st %pt_npc, [%base_reg + STACKFRAME_SZ + PT_NPC];

Definition at line 80 of file winmacro.h.

#define STORE_PT_YREG (   base_reg,
  scratch 
)
Value:

Definition at line 76 of file winmacro.h.

#define STORE_WINDOW (   reg)
Value:
std %l0, [%reg + RW_L0]; \
std %l2, [%reg + RW_L2]; \
std %l4, [%reg + RW_L4]; \
std %l6, [%reg + RW_L6]; \
std %i0, [%reg + RW_I0]; \
std %i2, [%reg + RW_I2]; \
std %i4, [%reg + RW_I4]; \
std %i6, [%reg + RW_I6];

Definition at line 15 of file winmacro.h.