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_*/
 |