41 lines
		
	
	
		
			702 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			702 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* syscall.h */
 | |
| 
 | |
| #ifndef _ASM_PARISC_SYSCALL_H_
 | |
| #define _ASM_PARISC_SYSCALL_H_
 | |
| 
 | |
| #include <linux/err.h>
 | |
| #include <asm/ptrace.h>
 | |
| 
 | |
| static inline long syscall_get_nr(struct task_struct *tsk,
 | |
| 				  struct pt_regs *regs)
 | |
| {
 | |
| 	return regs->gr[20];
 | |
| }
 | |
| 
 | |
| static inline void syscall_get_arguments(struct task_struct *tsk,
 | |
| 					 struct pt_regs *regs, unsigned int i,
 | |
| 					 unsigned int n, unsigned long *args)
 | |
| {
 | |
| 	BUG_ON(i);
 | |
| 
 | |
| 	switch (n) {
 | |
| 	case 6:
 | |
| 		args[5] = regs->gr[21];
 | |
| 	case 5:
 | |
| 		args[4] = regs->gr[22];
 | |
| 	case 4:
 | |
| 		args[3] = regs->gr[23];
 | |
| 	case 3:
 | |
| 		args[2] = regs->gr[24];
 | |
| 	case 2:
 | |
| 		args[1] = regs->gr[25];
 | |
| 	case 1:
 | |
| 		args[0] = regs->gr[26];
 | |
| 		break;
 | |
| 	default:
 | |
| 		BUG();
 | |
| 	}
 | |
| }
 | |
| 
 | |
| #endif /*_ASM_PARISC_SYSCALL_H_*/
 |