Subversion Repositories Kolibri OS

Rev

Rev 5270 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5270 serge 1
/*
2
 * Common low level (register) ptrace helpers
3
 *
4
 * Copyright 2004-2011 Analog Devices Inc.
5
 *
6
 * Licensed under the GPL-2 or later.
7
 */
8
 
9
#ifndef __ASM_GENERIC_PTRACE_H__
10
#define __ASM_GENERIC_PTRACE_H__
11
 
12
#ifndef __ASSEMBLY__
13
 
14
/* Helpers for working with the instruction pointer */
15
#ifndef GET_IP
16
#define GET_IP(regs) ((regs)->pc)
17
#endif
18
#ifndef SET_IP
19
#define SET_IP(regs, val) (GET_IP(regs) = (val))
20
#endif
21
 
22
static inline unsigned long instruction_pointer(struct pt_regs *regs)
23
{
24
	return GET_IP(regs);
25
}
26
static inline void instruction_pointer_set(struct pt_regs *regs,
27
                                           unsigned long val)
28
{
29
	SET_IP(regs, val);
30
}
31
 
32
#ifndef profile_pc
33
#define profile_pc(regs) instruction_pointer(regs)
34
#endif
35
 
36
/* Helpers for working with the user stack pointer */
37
#ifndef GET_USP
38
#define GET_USP(regs) ((regs)->usp)
39
#endif
40
#ifndef SET_USP
41
#define SET_USP(regs, val) (GET_USP(regs) = (val))
42
#endif
43
 
44
static inline unsigned long user_stack_pointer(struct pt_regs *regs)
45
{
46
	return GET_USP(regs);
47
}
48
static inline void user_stack_pointer_set(struct pt_regs *regs,
49
                                          unsigned long val)
50
{
51
	SET_USP(regs, val);
52
}
53
 
54
/* Helpers for working with the frame pointer */
55
#ifndef GET_FP
56
#define GET_FP(regs) ((regs)->fp)
57
#endif
58
#ifndef SET_FP
59
#define SET_FP(regs, val) (GET_FP(regs) = (val))
60
#endif
61
 
62
static inline unsigned long frame_pointer(struct pt_regs *regs)
63
{
64
	return GET_FP(regs);
65
}
66
static inline void frame_pointer_set(struct pt_regs *regs,
67
                                     unsigned long val)
68
{
69
	SET_FP(regs, val);
70
}
71
 
72
#endif /* __ASSEMBLY__ */
73
 
74
#endif