SOURCES: delta-0.30.208-shiny6.diff (NEW), delta-0.30.208-kheaders...

baggins baggins at pld-linux.org
Mon Aug 8 23:58:04 CEST 2005


Author: baggins                      Date: Mon Aug  8 21:58:04 2005 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- updates for util-vserver 0.30.208

---- Files affected:
SOURCES:
   delta-0.30.208-shiny6.diff (NONE -> 1.1)  (NEW), delta-0.30.208-kheaders.diff (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/delta-0.30.208-shiny6.diff
diff -u /dev/null SOURCES/delta-0.30.208-shiny6.diff:1.1
--- /dev/null	Mon Aug  8 23:58:04 2005
+++ SOURCES/delta-0.30.208-shiny6.diff	Mon Aug  8 23:57:59 2005
@@ -0,0 +1,3122 @@
+diff -NurpP --minimal util-vserver-0.30.208/lib/syscall-alternative.h util-vserver-0.30.208.x/lib/syscall-alternative.h
+--- util-vserver-0.30.208/lib/syscall-alternative.h	2005-07-04 19:58:28.000000000 +0200
++++ util-vserver-0.30.208.x/lib/syscall-alternative.h	2005-08-02 09:08:31.000000000 +0200
+@@ -1,2336 +1,1061 @@
++#ifndef	__SYSCALL_NEW_H
++#define	__SYSCALL_NEW_H
+ 
+-#ifndef __syscall_retval
+-#define __syscall_retval(v)	do { } while(0)
+-#endif
++/*	Copyright (C) 2005 Herbert Pötzl
+ 
+-#ifndef __syscall_error
+-#define __syscall_error(e) 	do { errno = (e); } while(0)
+-#endif
++		global config options
+ 
+-#define	__check(pos, reg)						\
+-	".ifnc " pos ", " reg "\n\t"					\
+-	".err\n\t"							\
+-	".endif\n\t"
++	__sysc_setret	... set return value (default none)
++	__sysc_seterr	... set error value (default errno)
+ 
+-#ifndef __stringify0
+-#define __stringify0(val)	#val
+-#endif
+ 
+-#ifndef __stringify
+-#define __stringify(val)	__stringify0(val)
+-#endif
++		arch specific config
+ 
+-#define	__comment(name)							\
+-	"\t/* kernel sys_" #name "[" __stringify(__NR_##name) "] */"
++	__sysc_reg_cid	... the callid (if define), immediate otherwise
+ 
++	__sysc_reg(n)	... syscall argument registers
+ 
+-/*	*****************************************
+- 	ALPHA	ALPHA	ALPHA	ALPHA		*
+-	alpha kernel interface 			*/
+-	
+-#if 	defined(__alpha__)
++	__sysc_reg_res	... simple result register (either that or)
++	__sysc_reg_ret	... complex result register (and)
++	__sysc_reg_err	... complex error register
+ 
+-/*  	The Alpha calling convention doesn't use the stack until 
+-    	after the first six arguments have been passed in registers.
+-	
+-	scnr:	v0($0)
+-	args:	a0($16), a1($17), a2($18), a3($19), a4($20), a5($21)
+-	sret:	v0($0)
+-	serr:	a3($19) (!=0, err=sret)
+-*/
++	__sysc_cmd_pre	... preparation command(s)	__sysc_pre(n)
++	__sysc_cmd_sys	... the syscall			__sysc_cmd(n)
++	__sysc_cmd_fin	... syscall finalization	__sysc_fin(n)
+ 
++	__sysc_clobber	... clobbered registers (default memory)
++	__sysc_max_err	... maximum error number (for simple result)
+ 
+-#define __syscall_return(type, ret, err) do {				\
+-    	__syscall_retval(ret);						\
+-    	if (err) {							\
+-    	    	int __err = (ret);					\
+-		__syscall_error(__err);					\
+-		ret = -1;						\
+-	}								\
+-	return (type) ret;						\
+-} while (0)				
++	__sysc_errc(r,e)	... error condition (e cmplx)
++	__sysc_retv(t,r,e)	... syscall return value (e cmplx)
+ 
+-#define __syscall_regdef(name, reg)					\
+-	register long __sc_##name __asm__ (reg)
++		if gcc cannot be trusted
+ 
+-#define __syscall_regval(name, reg, val)				\
+-	register long __sc_##name __asm__ (reg) = (long)(val)
+-    	
+-#define __syscall_clobbers						\
+-	"$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",			\
+-	"$22", "$23", "$24", "$25", "$27", "$28", "memory" 		\
++	__sysc_load(r,a)	... asm code for register load
++	__sysc_save(r,a)	... asm code to save result(s)
++	__sysc_limm(r,i)	... asm code to load immediate
++	__sysc_rcon(n)		... syscall register constraint
++	__sysc_regs		... list of input regs for clobber
++	__sysc_type		... register type
+ 
++		if all else fails
+ 
+-#define _syscall0(type, name)						\
+-type name(void)								\
+-{									\
+-	long __sc_ret, __sc_err;					\
+-	{								\
+-		__syscall_regval(v0, "$0", __NR_##name);		\
+-		__syscall_regdef(a3, "$19");				\
+-									\
+-		__asm__ __volatile__ (					\
+-		__check("%0%1%2", "$0$19$0")				\
+-			"callsys" __comment(name)			\
+-		      : "=r"(__sc_v0), "=r"(__sc_a3)			\
+-		      : "0"(__sc_v0)					\
+-		      : "$16", "$17", "$18", "$20", "$21",		\
+-		      	__syscall_clobbers				\
+-		);							\
+-		__sc_ret = __sc_v0;					\
+-		__sc_err = __sc_a3;					\
+-	}								\
+-	__syscall_return(type, __sc_ret, __sc_err);			\
+-}
++	__sc_asmload(n,N,...)	... asm code to prepare arguments
++	__sc_asmsysc(n,N)	... asm code to execute syscall
++	__sc_asmsave(n,r,e)	... asm code to store results
+ 
+-#define _syscall1(type, name, type1, arg1)				\
+-type name(type1 arg1)							\
+-{									\
+-	long __sc_ret, __sc_err;					\
+-	{								\
+-		__syscall_regval(v0, "$0", __NR_##name);		\
+-		__syscall_regval(a0, "$16", arg1);			\
+-		__syscall_regdef(a3, "$19");				\
+-									\
+-		__asm__ __volatile__ (					\
+-		__check("%0%1%2%3", "$0$19$0$16")			\
+-			"callsys" __comment(name)			\
+-		      : "=r"(__sc_v0), "=r"(__sc_a3)			\
+-		      : "0"(__sc_v0), 					\
+-			"r"(__sc_a0)					\
+-		      : "$17", "$18", "$20", "$21",			\
+-		      	__syscall_clobbers				\
+-		);							\
+-		__sc_ret = __sc_v0;					\
+-		__sc_err = __sc_a3;					\
+-	}								\
+-	__syscall_return(type, __sc_ret, __sc_err);			\
+-}
++*/
+ 
+-#define _syscall2(type, name, type1, arg1, type2, arg2)			\
+-type name(type1 arg1, type2 arg2)					\
+-{									\
+-	long __sc_ret, __sc_err;					\
+-	{								\
+-		__syscall_regval(v0, "$0", __NR_##name);		\
+-		__syscall_regval(a0, "$16", arg1);			\
+-		__syscall_regval(a1, "$17", arg2);			\
+-		__syscall_regdef(a3, "$19");				\
+-									\
+-		__asm__ __volatile__ (					\
+-		__check("%0%1%2%3%4", "$0$19$0$16$17")			\
+-			"callsys" __comment(name)			\
+-		      : "=r"(__sc_v0), "=r"(__sc_a3)			\
+-		      : "0"(__sc_v0), 					\
+-			"r"(__sc_a0), "r"(__sc_a1)			\
+-		      : "$18", "$20", "$21",				\
+-		      	__syscall_clobbers				\
+-		);							\
+-		__sc_ret = __sc_v0;					\
+-		__sc_err = __sc_a3;					\
+-	}								\
+-	__syscall_return(type, __sc_ret, __sc_err);			\
+-}
+ 
+-#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3)	\
+-type name(type1 arg1, type2 arg2, type3 arg3)				\
+-{									\
+-	long __sc_ret, __sc_err;					\
+-	{								\
+-		__syscall_regval(v0, "$0", __NR_##name);		\
+-		__syscall_regval(a0, "$16", arg1);			\
+-		__syscall_regval(a1, "$17", arg2);			\
+-		__syscall_regval(a2, "$18", arg3);			\
+-		__syscall_regdef(a3, "$19");				\
+-									\
+-		__asm__ __volatile__ (					\
+-		__check("%0%1%2%3%4%5", "$0$19$0$16$17$18")		\
+-			"callsys" __comment(name)			\
+-		      : "=r"(__sc_v0), "=r"(__sc_a3)			\
+-		      : "0"(__sc_v0), 					\
+-			"r"(__sc_a0), "r"(__sc_a1), "r"(__sc_a2)	\
+-		      : "$20", "$21",					\
+-		      	__syscall_clobbers				\
+-		);							\
+-		__sc_ret = __sc_v0;					\
+-		__sc_err = __sc_a3;					\
+-	}								\
+-	__syscall_return(type, __sc_ret, __sc_err);			\
+-}
+ 
+-#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3,	\
+-			      type4, arg4) 				\
+-type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4)		\
+-{									\
+-	long __sc_ret, __sc_err;					\
+-	{								\
+-		__syscall_regval(v0, "$0", __NR_##name);		\
+-		__syscall_regval(a0, "$16", arg1);			\
+-		__syscall_regval(a1, "$17", arg2);			\
+-		__syscall_regval(a2, "$18", arg3);			\
+-		__syscall_regval(a3, "$19", arg4);			\
+-									\
+-		__asm__ __volatile__ (					\
+-		__check("%0%1%2%3%4%5%6", "$0$19$0$16$17$18$19")	\
+-			"callsys" __comment(name)			\
+-		      : "=r"(__sc_v0), "=r"(__sc_a3)			\
+-		      : "0"(__sc_v0), 					\
+-			"r"(__sc_a0), "r"(__sc_a1), "r"(__sc_a2),	\
+-			"1"(__sc_a3)					\
+-		      : "$20", "$21",					\
+-		      	__syscall_clobbers				\
+-		);							\
+-		__sc_ret = __sc_v0;					\
+-		__sc_err = __sc_a3;					\
+-	}								\
+-	__syscall_return(type, __sc_ret, __sc_err);			\
+-} 
+ 
+-#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3,	\
+-    			      type4, arg4, type5, arg5)			\
+-type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5)	\
+-{									\
+-	long __sc_ret, __sc_err;					\
+-	{								\
+-		__syscall_regval(v0, "$0", __NR_##name);		\
+-		__syscall_regval(a0, "$16", arg1);			\
+-		__syscall_regval(a1, "$17", arg2);			\
+-		__syscall_regval(a2, "$18", arg3);			\
+-		__syscall_regval(a3, "$19", arg4);			\
+-		__syscall_regval(a4, "$20", arg5);			\
+-									\
+-		__asm__ __volatile__ (					\
+-		__check("%0%1%2%3%4%5%6%7", "$0$19$0$16$17$18$19$20")	\
+-			"callsys" __comment(name)			\
+-		      : "=r"(__sc_v0), "=r"(__sc_a3)			\
+-		      : "0"(__sc_v0), 					\
+-			"r"(__sc_a0), "r"(__sc_a1), "r"(__sc_a2),	\
+-			"1"(__sc_a3), "r"(__sc_a4)			\
+-		      : "$21",						\
+-		      	__syscall_clobbers				\
+-		);							\
+-		__sc_ret = __sc_v0;					\
+-		__sc_err = __sc_a3;					\
+-	}								\
+-	__syscall_return(type, __sc_ret, __sc_err);			\
+-}
++/*	*****************************************
++	ALPHA	ALPHA	ALPHA	ALPHA		*
++	alpha kernel interface 			*/
++
++#if 	defined(__alpha__)
+ 
+-#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3,	\
+-			      type4, arg4, type5, arg5, type6, arg6)	\
+-type name (type1 arg1, type2 arg2, type3 arg3,				\
+-	   type4 arg4, type5 arg5, type6 arg6)				\
+-{									\
+-	long __sc_ret, __sc_err;					\
+-	{								\
+-		__syscall_regval(v0, "$0", __NR_##name);		\
+-		__syscall_regval(a0, "$16", arg1);			\
+-		__syscall_regval(a1, "$17", arg2);			\
+-		__syscall_regval(a2, "$18", arg3);			\
+-		__syscall_regval(a3, "$19", arg4);			\
+-		__syscall_regval(a4, "$20", arg5);			\
+-		__syscall_regval(a5, "$21", arg6);			\
+-									\
+-		__asm__ __volatile__ (					\
+-		__check("%0%1%2%3%4%5%6%7%8",				\
+-			"$0$19$0$16$17$18$19$20$21")			\
+-			"callsys" __comment(name)			\
+-		      : "=r"(__sc_v0), "=r"(__sc_a3)			\
+-		      : "0"(__sc_v0), 					\
+-			"r"(__sc_a0), "r"(__sc_a1), "r"(__sc_a2),	\
+-			"1"(__sc_a3), "r"(__sc_a4), "r"(__sc_a5)	\
+-		      : __syscall_clobbers				\
+-		);							\
+-		__sc_ret = __sc_v0;					\
+-		__sc_err = __sc_a3;					\
+-	}								\
+-	__syscall_return(type, __sc_ret, __sc_err);			\
+-}
++/*	The Alpha calling convention doesn't use the stack until
++	after the first six arguments have been passed in registers.
++
++	scnr:	v0($0)
++	args:	a1($16), a2($17), a3($18), a4($19), a5($20), a6($21)
++	sret:	r0($0)
++	serr:	e0($19) (!=0, err=sret)
++	call:	callsys
++	clob:	memory
++*/
++
++#define	__sysc_reg_cid	"$0"
++#define	__sysc_reg_ret	"$0"
++#define	__sysc_reg_err	"$19"
++#define	__sysc_cmd_sys	"callsys"
++
++#define	__sysc_reg(n)	__arg_##n\
++	("$16", "$17", "$18", "$19", "$20", "$21")
++
++#define	__sysc_clobber	__sysc_regs,					\
++	"$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",			\
++	"$22", "$23", "$24", "$25", "$27", "$28", "memory"		\
+ 
+ 
+ 
+ /*	*****************************************
+- 	ARM	ARM	ARM	ARM		*
++	ARM	ARM	ARM	ARM		*
+ 	arm kernel interface 			*/
+ 
+ #elif	defined(__arm__)
+ 
+-/*  	The Arm calling convention uses stack args after four arguments
+-    	but the Linux kernel gets up to seven arguments in registers.
++/*	The Arm calling convention uses stack args after four arguments
++	but the Linux kernel gets up to seven arguments in registers.
+ 	
+ 	scnr:	imm
+-	args:	a1(r0), a2(r1), a3(r2), a4(r3), v1(r4), v2(r5), 
+-	sret:	a1(r0)
+-	serr:	(err= sret > (unsigned)-EMAXERRNO)
++	args:	a1(r0), a2(r1), a3(r2), a4(r3), a5(r4), a6(r5),
++	sret:	r0(r0)
++	serr:	(sret >= (unsigned)-EMAXERRNO)
++	call:	swi
++	clob:	memory
+ */
+ 
+-#ifndef EMAXERRNO
+-#define EMAXERRNO   125
+-#endif
++#define	__sysc_max_err	125
++#define	__sysc_reg_res	"r0"
++#define	__sysc_cmd_sys	"swi	%0"
+ 
+-#define __syscall_errcon(res)						\
+-    	((unsigned long)(res) >= (unsigned long)(-EMAXERRNO))
++#define	__sysc_reg(n)	__arg_##n\
++	("r0", "r1", "r2", "r3", "r4", "r5")
+ 
+-#define __syscall_return(type, res) do {				\
+-    	__syscall_retval(res);						\
+-    	if (__syscall_errcon(res)) {					\
+-    	    	int __err = -(res);					\
+-		__syscall_error(__err);					\
+-		res = -1;						\
+-	}								\
+-	return (type) res;						\
+-} while (0)				
++#define	__sysc_clobber	__sysc_regs, "memory"
+ 
+-#define __syscall_regdef(name, reg)					\
+-	register int __sc_##name __asm__ (reg)
++#warning syscall arch arm not tested yet
+ 
+-#define __syscall_regval(name, reg, val)				\
+-	register int __sc_##name __asm__ (reg) = (int)(val)
+ 
+ 
+-#define _syscall0(type, name)						\
+-type name(void)								\
+-{									\
+-	long __sc_res;							\
+-	{								\
+-		__syscall_regdef(a1, "r0");				\
+-									\
+- 	 	__asm__ __volatile__ (  	      			\
+-		__check("%0", "r0")					\
+- 	 		"swi %1" __comment(name)			\
+- 	 	      : "=r"(__sc_a1)					\
+- 	 	      : "i"(__NR_##name)	      			\
+- 	 	      : "memory"					\
+-	    	);  				      			\
+- 	 	__sc_res = __sc_a1;		      			\
+-    	}								\
+-	__syscall_return(type, __sc_res);				\
+-}
++/*	*****************************************
++	CRIS	CRIS	CRIS	CRIS		*
++	cris v10 kernel interface 		*/
+ 
+-#define _syscall1(type, name, type1, arg1)				\
+-type name(type1 arg1)							\
+-{									\
+-	long __sc_res;							\
+-	{								\
+-		__syscall_regval(a1, "r0", arg1);			\
+-									\
+- 	 	__asm__ __volatile__ (  	      			\
+-		__check("%0%2", "r0r0")					\
+- 	 		"swi %1" __comment(name)			\
+- 	 	      : "=r"(__sc_a1)					\
+- 	 	      : "i"(__NR_##name),				\
+-		      	"0"(__sc_a1)		      			\
+- 	 	      : "memory"					\
+-	    	);  				      			\
+- 	 	__sc_res = __sc_a1;		      			\
+-    	}								\
+-	__syscall_return(type, __sc_res);				\
+-}
++#elif	defined(__cris__)
+ 
+-#define _syscall2(type, name, type1, arg1, type2, arg2)			\
+-type name(type1 arg1, type2 arg2)					\
+-{									\
+-	long __sc_res;							\
+-	{								\
+-		__syscall_regval(a1, "r0", arg1);			\
+-		__syscall_regval(a2, "r1", arg2);			\
+-									\
+- 	 	__asm__ __volatile__ (  	      			\
+-		__check("%0%2%3", "r0r0r1")				\
+- 	 		"swi %1" __comment(name)			\
+- 	 	      : "=r"(__sc_a1)					\
+- 	 	      : "i"(__NR_##name),				\
+-		      	"0"(__sc_a1), "r"(__sc_a2)     			\
+- 	 	      : "memory"					\
+-	    	);  				      			\
+- 	 	__sc_res = __sc_a1;		      			\
+-    	}								\
+-	__syscall_return(type, __sc_res);				\
+-}
++/*	The Cris calling convention uses stack args after four arguments
++	but the Linux kernel gets up to six arguments in registers.
++
++	scnr:	id(r9)
++	args:	a1(r10), a2(r11), a3(r12), a4(r13), a5(mof), a6(srp),
++	sret:	r0(r10)
++	serr:	(sret >= (unsigned)-EMAXERRNO)
++	call:	break 13
++	clob:	memory
++*/
+ 
+-#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3)	\
+-type name(type1 arg1, type2 arg2, type3 arg3)				\
+-{									\
+-	long __sc_res;							\
+-	{								\
+-		__syscall_regval(a1, "r0", arg1);			\
+-		__syscall_regval(a2, "r1", arg2);			\
+-		__syscall_regval(a3, "r2", arg3);			\
+-									\
+- 	 	__asm__ __volatile__ (  	      			\
+-		__check("%0%2%3%4", "r0r0r1r2")				\
+- 	 		"swi %1" __comment(name)			\
+- 	 	      : "=r"(__sc_a1)					\
+- 	 	      : "i"(__NR_##name),				\
+-		      	"0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3)	\
+- 	 	      : "memory"					\
+-	    	);  				      			\
+- 	 	__sc_res = __sc_a1;		      			\
+-    	}								\
+-	__syscall_return(type, __sc_res);				\
+-}
++#define	__sysc_max_err	125
++#define	__sysc_reg_cid	"r9"
++#define	__sysc_reg_res	"r0"
++#define	__sysc_cmd_sys	"break 13"
+ 
+-#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3,	\
+-			      type4, arg4) 				\
+-type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4)		\
+-{									\
+-	long __sc_res;							\
+-	{								\
+-		__syscall_regval(a1, "r0", arg1);			\
+-		__syscall_regval(a2, "r1", arg2);			\
+-		__syscall_regval(a3, "r2", arg3);			\
+-		__syscall_regval(a4, "r3", arg4);			\
+-									\
+- 	 	__asm__ __volatile__ (  	      			\
+-		__check("%0%2%3%4%5", "r0r0r1r2r3")			\
+- 	 		"swi %1" __comment(name)			\
+- 	 	      : "=r"(__sc_a1)					\
+- 	 	      : "i"(__NR_##name),				\
+-		      	"0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3),	\
+-		      	"r"(__sc_a4)					\
+- 	 	      : "memory"					\
+-	    	);  				      			\
+- 	 	__sc_res = __sc_a1;		      			\
+-    	}								\
+-	__syscall_return(type, __sc_res);				\
+-} 
++#define	__sysc_regs	"r10", "r11", "r12", "r13"
++#define	__sysc_reg(n)	__arg_##n\
++	("r10", "r11", "r12", "r13", "r0", "srp")
+ 
+-#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3,	\
+-    			      type4, arg4, type5, arg5)			\
+-type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5)	\
+-{									\
+-	long __sc_res;							\
+-	{								\
+-		__syscall_regval(a1, "r0", arg1);			\
+-		__syscall_regval(a2, "r1", arg2);			\
+-		__syscall_regval(a3, "r2", arg3);			\
+-		__syscall_regval(a4, "r3", arg4);			\
+-		__syscall_regval(v1, "r4", arg5);			\
+-									\
+- 	 	__asm__ __volatile__ (  	      			\
+-		__check("%0%2%3%4%5%6", "r0r0r1r2r3r4")			\
+- 	 		"swi %1" __comment(name)			\
+- 	 	      : "=r"(__sc_a1)					\
+- 	 	      : "i"(__NR_##name),				\
+-		      	"0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3),	\
+-		      	"r"(__sc_a4), "r"(__sc_v1)			\
+- 	 	      : "memory"					\
+-	    	);  				      			\
+- 	 	__sc_res = __sc_a1;		      			\
+-    	}								\
+-	__syscall_return(type, __sc_res);				\
+-}
++#define	__sysc_pre(n)	__casm(n,5,0,"move r0,mof",)
++
++#define	__sysc_clobber	__sysc_regs, "memory"
++
++#warning syscall arch cris not tested yet
+ 
+-#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3,	\
+-			      type4, arg4, type5, arg5, type6, arg6)	\
+-type name (type1 arg1, type2 arg2, type3 arg3,				\
+-	   type4 arg4, type5 arg5, type6 arg6)				\
+-{									\
+-	long __sc_res;							\
+-	{								\
+-		__syscall_regval(a1, "r0", arg1);			\
+-		__syscall_regval(a2, "r1", arg2);			\
+-		__syscall_regval(a3, "r2", arg3);			\
+-		__syscall_regval(a4, "r3", arg4);			\
+-		__syscall_regval(v1, "r4", arg5);			\
+-		__syscall_regval(v2, "r5", arg6);			\
+-									\
+- 	 	__asm__ __volatile__ (  	      			\
+-		__check("%0%2%3%4%5%6%7", "r0r0r1r2r3r4r5")		\
+- 	 		"swi %1" __comment(name)			\
+- 	 	      : "=r"(__sc_a1)					\
+- 	 	      : "i"(__NR_##name),				\
+-		      	"0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3),	\
+-		      	"r"(__sc_a4), "r"(__sc_v1), "r"(__sc_v2)	\
+- 	 	      : "memory"					\
+-	    	);  				      			\
+- 	 	__sc_res = __sc_a1;		      			\
+-    	}								\
+-	__syscall_return(type, __sc_res);				\
+-}
+ 
+ 
+ /*	*****************************************
+- 	CRIS	CRIS	CRIS	CRIS		*
+-	cris v10 kernel interface 		*/
++	FRV	FRV	FRV	FRV		*
++	frv kernel interface 		*/
+ 
+-#elif	defined(__cris__)
++#elif	defined(__frv__)
+ 
+-/*  	The Cris calling convention uses stack args after four arguments
+-    	but the Linux kernel gets up to six arguments in registers.
++/*	The C calling convention on FR-V uses the gr8-gr13 registers
++	for the first six arguments, the remainder is spilled onto the
++	stack. the linux kernel syscall interface does so too.
+ 	
+-	scnr:	(r9)
+-	args:	(r10), (r11), (r12), (r13), (mof), (srp), 
+-	sret:	(r10)
+-	serr:	(err= sret > (unsigned)-EMAXERRNO)
++	scnr:	id(gr7)
++	args:	a1(gr8), a2(gr9), a3(gr10), a4(gr11), a5(gr12), a6(gr13)
++	sret:	r0(gr8)
++	serr:	(sret >= (unsigned)-EMAXERRNO)
++	call:	tra gr0,gr0
++	clob:	memory
+ */
+ 
+-#ifndef EMAXERRNO
+-#define EMAXERRNO   125
+-#endif
++#define	__sysc_max_err	125
++#define	__sysc_reg_cid	"gr7"
++#define	__sysc_reg_res	"gr8"
++#define	__sysc_cmd_sys	"tira	gr0,#0"
+ 
+-#define __syscall_errcon(res)						\
+-    	((unsigned long)(res) >= (unsigned long)(-EMAXERRNO))
<<Diff was trimmed, longer than 597 lines>>



More information about the pld-cvs-commit mailing list