.. | .. |
---|
37 | 37 | extern const char *regs_query_register_name(unsigned int offset); |
---|
38 | 38 | #define MAX_REG_OFFSET (offsetof(struct pt_regs, ipsw)) |
---|
39 | 39 | |
---|
| 40 | +#define kernel_stack_pointer(regs) ((regs)->gr[30]) |
---|
| 41 | + |
---|
| 42 | +static inline unsigned long regs_get_register(struct pt_regs *regs, |
---|
| 43 | + unsigned int offset) |
---|
| 44 | +{ |
---|
| 45 | + if (unlikely(offset > MAX_REG_OFFSET)) |
---|
| 46 | + return 0; |
---|
| 47 | + return *(unsigned long *)((unsigned long)regs + offset); |
---|
| 48 | +} |
---|
| 49 | + |
---|
| 50 | +unsigned long regs_get_kernel_stack_nth(struct pt_regs *regs, unsigned int n); |
---|
| 51 | +int regs_within_kernel_stack(struct pt_regs *regs, unsigned long addr); |
---|
| 52 | + |
---|
40 | 53 | #endif |
---|