 1febf61514
			
		
	
	
	1febf61514
	
	
	
		
			
			Add generic definition just like another architectures have done, or
can not pass compiling with allmodconfig, the related error:
    CC      kernel/profile.o
  kernel/profile.c: In function 'profile_tick':
  kernel/profile.c:419: error: implicit declaration of function 'profile_pc'
  make[1]: *** [kernel/profile.o] Error 1
  make: *** [kernel] Error 2
Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
Acked-by: Xuetao Guan <gxt@mprc.pku.edu.cn>
Signed-off-by: Xuetao Guan <gxt@mprc.pku.edu.cn>
		
	
			
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * linux/arch/unicore32/include/asm/ptrace.h
 | |
|  *
 | |
|  * Code specific to PKUnity SoC and UniCore ISA
 | |
|  *
 | |
|  * Copyright (C) 2001-2010 GUAN Xue-tao
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License version 2 as
 | |
|  * published by the Free Software Foundation.
 | |
|  */
 | |
| #ifndef __UNICORE_PTRACE_H__
 | |
| #define __UNICORE_PTRACE_H__
 | |
| 
 | |
| #include <uapi/asm/ptrace.h>
 | |
| 
 | |
| #ifndef __ASSEMBLY__
 | |
| 
 | |
| #define user_mode(regs)	\
 | |
| 	(processor_mode(regs) == USER_MODE)
 | |
| 
 | |
| #define processor_mode(regs) \
 | |
| 	((regs)->UCreg_asr & MODE_MASK)
 | |
| 
 | |
| #define interrupts_enabled(regs) \
 | |
| 	(!((regs)->UCreg_asr & PSR_I_BIT))
 | |
| 
 | |
| #define fast_interrupts_enabled(regs) \
 | |
| 	(!((regs)->UCreg_asr & PSR_R_BIT))
 | |
| 
 | |
| /* Are the current registers suitable for user mode?
 | |
|  * (used to maintain security in signal handlers)
 | |
|  */
 | |
| static inline int valid_user_regs(struct pt_regs *regs)
 | |
| {
 | |
| 	unsigned long mode = regs->UCreg_asr & MODE_MASK;
 | |
| 
 | |
| 	/*
 | |
| 	 * Always clear the R (REAL) bits
 | |
| 	 */
 | |
| 	regs->UCreg_asr &= ~(PSR_R_BIT);
 | |
| 
 | |
| 	if ((regs->UCreg_asr & PSR_I_BIT) == 0) {
 | |
| 		if (mode == USER_MODE)
 | |
| 			return 1;
 | |
| 	}
 | |
| 
 | |
| 	/*
 | |
| 	 * Force ASR to something logical...
 | |
| 	 */
 | |
| 	regs->UCreg_asr &= PSR_f | USER_MODE;
 | |
| 
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| #define instruction_pointer(regs)	((regs)->UCreg_pc)
 | |
| #define user_stack_pointer(regs)	((regs)->UCreg_sp)
 | |
| #define profile_pc(regs)		instruction_pointer(regs)
 | |
| 
 | |
| #endif /* __ASSEMBLY__ */
 | |
| #endif
 |