| Kyle McMartin | 40e03b6 | 2009-07-05 15:59:56 -0400 | [diff] [blame] | 1 | /* syscall.h */ | 
 | 2 |  | 
 | 3 | #ifndef _ASM_PARISC_SYSCALL_H_ | 
 | 4 | #define _ASM_PARISC_SYSCALL_H_ | 
 | 5 |  | 
 | 6 | #include <linux/err.h> | 
 | 7 | #include <asm/ptrace.h> | 
 | 8 |  | 
 | 9 | static inline long syscall_get_nr(struct task_struct *tsk, | 
 | 10 | 				  struct pt_regs *regs) | 
 | 11 | { | 
 | 12 | 	return regs->gr[20]; | 
 | 13 | } | 
 | 14 |  | 
 | 15 | static inline void syscall_get_arguments(struct task_struct *tsk, | 
 | 16 | 					 struct pt_regs *regs, unsigned int i, | 
 | 17 | 					 unsigned int n, unsigned long *args) | 
 | 18 | { | 
 | 19 | 	BUG_ON(i); | 
 | 20 |  | 
 | 21 | 	switch (n) { | 
 | 22 | 	case 6: | 
 | 23 | 		args[5] = regs->gr[21]; | 
 | 24 | 	case 5: | 
 | 25 | 		args[4] = regs->gr[22]; | 
 | 26 | 	case 4: | 
 | 27 | 		args[3] = regs->gr[23]; | 
 | 28 | 	case 3: | 
 | 29 | 		args[2] = regs->gr[24]; | 
 | 30 | 	case 2: | 
 | 31 | 		args[1] = regs->gr[25]; | 
 | 32 | 	case 1: | 
 | 33 | 		args[0] = regs->gr[26]; | 
 | 34 | 		break; | 
 | 35 | 	default: | 
 | 36 | 		BUG(); | 
 | 37 | 	} | 
 | 38 | } | 
 | 39 |  | 
 | 40 | #endif /*_ASM_PARISC_SYSCALL_H_*/ |