mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
sparc: Add __KERNEL__ ifdef protection to pt_regs helpers.
Some of them use 'bool' and whatnot and therefore are not kosher for userspace, so don't export them there. Reported by Roland McGrath. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9c636e30a3
commit
6717c282e4
2 changed files with 25 additions and 26 deletions
|
@ -40,16 +40,6 @@ struct pt_regs {
|
|||
#define UREG_FP UREG_I6
|
||||
#define UREG_RETPC UREG_I7
|
||||
|
||||
static inline bool pt_regs_is_syscall(struct pt_regs *regs)
|
||||
{
|
||||
return (regs->psr & PSR_SYSCALL);
|
||||
}
|
||||
|
||||
static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
|
||||
{
|
||||
return (regs->psr &= ~PSR_SYSCALL);
|
||||
}
|
||||
|
||||
/* A register window */
|
||||
struct reg_window {
|
||||
unsigned long locals[8];
|
||||
|
@ -72,6 +62,16 @@ struct sparc_stackf {
|
|||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
static inline bool pt_regs_is_syscall(struct pt_regs *regs)
|
||||
{
|
||||
return (regs->psr & PSR_SYSCALL);
|
||||
}
|
||||
|
||||
static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
|
||||
{
|
||||
return (regs->psr &= ~PSR_SYSCALL);
|
||||
}
|
||||
|
||||
#define user_mode(regs) (!((regs)->psr & PSR_PS))
|
||||
#define instruction_pointer(regs) ((regs)->pc)
|
||||
#define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP])
|
||||
|
|
|
@ -37,21 +37,6 @@ struct pt_regs {
|
|||
unsigned int magic;
|
||||
};
|
||||
|
||||
static inline int pt_regs_trap_type(struct pt_regs *regs)
|
||||
{
|
||||
return regs->magic & 0x1ff;
|
||||
}
|
||||
|
||||
static inline bool pt_regs_is_syscall(struct pt_regs *regs)
|
||||
{
|
||||
return (regs->tstate & TSTATE_SYSCALL);
|
||||
}
|
||||
|
||||
static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
|
||||
{
|
||||
return (regs->tstate &= ~TSTATE_SYSCALL);
|
||||
}
|
||||
|
||||
struct pt_regs32 {
|
||||
unsigned int psr;
|
||||
unsigned int pc;
|
||||
|
@ -128,6 +113,21 @@ struct sparc_trapf {
|
|||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
static inline int pt_regs_trap_type(struct pt_regs *regs)
|
||||
{
|
||||
return regs->magic & 0x1ff;
|
||||
}
|
||||
|
||||
static inline bool pt_regs_is_syscall(struct pt_regs *regs)
|
||||
{
|
||||
return (regs->tstate & TSTATE_SYSCALL);
|
||||
}
|
||||
|
||||
static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
|
||||
{
|
||||
return (regs->tstate &= ~TSTATE_SYSCALL);
|
||||
}
|
||||
|
||||
struct global_reg_snapshot {
|
||||
unsigned long tstate;
|
||||
unsigned long tpc;
|
||||
|
@ -154,7 +154,6 @@ extern unsigned long profile_pc(struct pt_regs *);
|
|||
#define profile_pc(regs) instruction_pointer(regs)
|
||||
#endif
|
||||
extern void show_regs(struct pt_regs *);
|
||||
extern void __show_regs(struct pt_regs *);
|
||||
#endif
|
||||
|
||||
#else /* __ASSEMBLY__ */
|
||||
|
|
Loading…
Reference in a new issue