| .. | .. |
|---|
| 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 |
|---|