Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Mar 2011 11:00:26 GMT
From:      dfilter@FreeBSD.ORG (dfilter service)
To:        freebsd-emulation@FreeBSD.org
Subject:   Re: kern/149168: commit references a PR
Message-ID:  <201103261100.p2QB0Qkt027432@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/149168; it has been noted by GNATS.

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/149168: commit references a PR
Date: Sat, 26 Mar 2011 10:59:38 +0000 (UTC)

 Author: avg
 Date: Sat Mar 26 10:59:24 2011
 New Revision: 220030
 URL: http://svn.freebsd.org/changeset/base/220030
 
 Log:
   linux compat: add non-dummy capget and capset system calls, regenerate
   
   And drop dummy definitions for those system calls.
   This may transiently break the build.
   
   PR:		kern/149168
   Submitted by:	John Wehle <john@feith.com>
   Reviewed by:	netchild
   MFC after:	2 weeks
 
 Modified:
   head/sys/amd64/linux32/linux32_dummy.c
   head/sys/amd64/linux32/linux32_proto.h
   head/sys/amd64/linux32/linux32_syscall.h
   head/sys/amd64/linux32/linux32_syscalls.c
   head/sys/amd64/linux32/linux32_sysent.c
   head/sys/amd64/linux32/linux32_systrace_args.c
   head/sys/i386/linux/linux_dummy.c
   head/sys/i386/linux/linux_proto.h
   head/sys/i386/linux/linux_syscall.h
   head/sys/i386/linux/linux_syscalls.c
   head/sys/i386/linux/linux_sysent.c
   head/sys/i386/linux/linux_systrace_args.c
 
 Modified: head/sys/amd64/linux32/linux32_dummy.c
 ==============================================================================
 --- head/sys/amd64/linux32/linux32_dummy.c	Sat Mar 26 10:52:37 2011	(r220029)
 +++ head/sys/amd64/linux32/linux32_dummy.c	Sat Mar 26 10:59:24 2011	(r220030)
 @@ -54,8 +54,6 @@ DUMMY(sysfs);
  DUMMY(query_module);
  DUMMY(nfsservctl);
  DUMMY(rt_sigqueueinfo);
 -DUMMY(capget);
 -DUMMY(capset);
  DUMMY(sendfile);
  DUMMY(setfsuid);
  DUMMY(setfsgid);
 
 Modified: head/sys/amd64/linux32/linux32_proto.h
 ==============================================================================
 --- head/sys/amd64/linux32/linux32_proto.h	Sat Mar 26 10:52:37 2011	(r220029)
 +++ head/sys/amd64/linux32/linux32_proto.h	Sat Mar 26 10:59:24 2011	(r220030)
 @@ -3,7 +3,7 @@
   *
   * DO NOT EDIT-- this file is automatically generated.
   * $FreeBSD$
 - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 219559 2011-03-12 08:51:43Z avg 
 + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 220028 2011-03-26 10:51:56Z avg 
   */
  
  #ifndef _LINUX_SYSPROTO_H_
 @@ -589,10 +589,12 @@ struct linux_getcwd_args {
  	char bufsize_l_[PADL_(l_ulong)]; l_ulong bufsize; char bufsize_r_[PADR_(l_ulong)];
  };
  struct linux_capget_args {
 -	register_t dummy;
 +	char hdrp_l_[PADL_(struct l_user_cap_header *)]; struct l_user_cap_header * hdrp; char hdrp_r_[PADR_(struct l_user_cap_header *)];
 +	char datap_l_[PADL_(struct l_user_cap_data *)]; struct l_user_cap_data * datap; char datap_r_[PADR_(struct l_user_cap_data *)];
  };
  struct linux_capset_args {
 -	register_t dummy;
 +	char hdrp_l_[PADL_(struct l_user_cap_header *)]; struct l_user_cap_header * hdrp; char hdrp_r_[PADR_(struct l_user_cap_header *)];
 +	char datap_l_[PADL_(struct l_user_cap_data *)]; struct l_user_cap_data * datap; char datap_r_[PADR_(struct l_user_cap_data *)];
  };
  struct linux_sigaltstack_args {
  	char uss_l_[PADL_(l_stack_t *)]; l_stack_t * uss; char uss_r_[PADR_(l_stack_t *)];
 
 Modified: head/sys/amd64/linux32/linux32_syscall.h
 ==============================================================================
 --- head/sys/amd64/linux32/linux32_syscall.h	Sat Mar 26 10:52:37 2011	(r220029)
 +++ head/sys/amd64/linux32/linux32_syscall.h	Sat Mar 26 10:59:24 2011	(r220030)
 @@ -3,7 +3,7 @@
   *
   * DO NOT EDIT-- this file is automatically generated.
   * $FreeBSD$
 - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 219559 2011-03-12 08:51:43Z avg 
 + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 220028 2011-03-26 10:51:56Z avg 
   */
  
  #define	LINUX_SYS_exit	1
 
 Modified: head/sys/amd64/linux32/linux32_syscalls.c
 ==============================================================================
 --- head/sys/amd64/linux32/linux32_syscalls.c	Sat Mar 26 10:52:37 2011	(r220029)
 +++ head/sys/amd64/linux32/linux32_syscalls.c	Sat Mar 26 10:59:24 2011	(r220030)
 @@ -3,7 +3,7 @@
   *
   * DO NOT EDIT-- this file is automatically generated.
   * $FreeBSD$
 - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 219559 2011-03-12 08:51:43Z avg 
 + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 220028 2011-03-26 10:51:56Z avg 
   */
  
  const char *linux_syscallnames[] = {
 
 Modified: head/sys/amd64/linux32/linux32_sysent.c
 ==============================================================================
 --- head/sys/amd64/linux32/linux32_sysent.c	Sat Mar 26 10:52:37 2011	(r220029)
 +++ head/sys/amd64/linux32/linux32_sysent.c	Sat Mar 26 10:59:24 2011	(r220030)
 @@ -3,7 +3,7 @@
   *
   * DO NOT EDIT-- this file is automatically generated.
   * $FreeBSD$
 - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 219559 2011-03-12 08:51:43Z avg 
 + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 220028 2011-03-26 10:51:56Z avg 
   */
  
  #include "opt_compat.h"
 @@ -203,8 +203,8 @@ struct sysent linux_sysent[] = {
  	{ AS(linux_pwrite_args), (sy_call_t *)linux_pwrite, AUE_PWRITE, NULL, 0, 0, 0, SY_THR_STATIC },	/* 181 = linux_pwrite */
  	{ AS(linux_chown16_args), (sy_call_t *)linux_chown16, AUE_CHOWN, NULL, 0, 0, 0, SY_THR_STATIC },	/* 182 = linux_chown16 */
  	{ AS(linux_getcwd_args), (sy_call_t *)linux_getcwd, AUE_GETCWD, NULL, 0, 0, 0, SY_THR_STATIC },	/* 183 = linux_getcwd */
 -	{ 0, (sy_call_t *)linux_capget, AUE_CAPGET, NULL, 0, 0, 0, SY_THR_STATIC },	/* 184 = linux_capget */
 -	{ 0, (sy_call_t *)linux_capset, AUE_CAPSET, NULL, 0, 0, 0, SY_THR_STATIC },	/* 185 = linux_capset */
 +	{ AS(linux_capget_args), (sy_call_t *)linux_capget, AUE_CAPGET, NULL, 0, 0, 0, SY_THR_STATIC },	/* 184 = linux_capget */
 +	{ AS(linux_capset_args), (sy_call_t *)linux_capset, AUE_CAPSET, NULL, 0, 0, 0, SY_THR_STATIC },	/* 185 = linux_capset */
  	{ AS(linux_sigaltstack_args), (sy_call_t *)linux_sigaltstack, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 186 = linux_sigaltstack */
  	{ 0, (sy_call_t *)linux_sendfile, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC },	/* 187 = linux_sendfile */
  	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },			/* 188 = getpmsg */
 
 Modified: head/sys/amd64/linux32/linux32_systrace_args.c
 ==============================================================================
 --- head/sys/amd64/linux32/linux32_systrace_args.c	Sat Mar 26 10:52:37 2011	(r220029)
 +++ head/sys/amd64/linux32/linux32_systrace_args.c	Sat Mar 26 10:59:24 2011	(r220030)
 @@ -1284,12 +1284,18 @@ systrace_args(int sysnum, void *params, 
  	}
  	/* linux_capget */
  	case 184: {
 -		*n_args = 0;
 +		struct linux_capget_args *p = params;
 +		uarg[0] = (intptr_t) p->hdrp; /* struct l_user_cap_header * */
 +		uarg[1] = (intptr_t) p->datap; /* struct l_user_cap_data * */
 +		*n_args = 2;
  		break;
  	}
  	/* linux_capset */
  	case 185: {
 -		*n_args = 0;
 +		struct linux_capset_args *p = params;
 +		uarg[0] = (intptr_t) p->hdrp; /* struct l_user_cap_header * */
 +		uarg[1] = (intptr_t) p->datap; /* struct l_user_cap_data * */
 +		*n_args = 2;
  		break;
  	}
  	/* linux_sigaltstack */
 @@ -4051,9 +4057,29 @@ systrace_setargdesc(int sysnum, int ndx,
  		break;
  	/* linux_capget */
  	case 184:
 +		switch(ndx) {
 +		case 0:
 +			p = "struct l_user_cap_header *";
 +			break;
 +		case 1:
 +			p = "struct l_user_cap_data *";
 +			break;
 +		default:
 +			break;
 +		};
  		break;
  	/* linux_capset */
  	case 185:
 +		switch(ndx) {
 +		case 0:
 +			p = "struct l_user_cap_header *";
 +			break;
 +		case 1:
 +			p = "struct l_user_cap_data *";
 +			break;
 +		default:
 +			break;
 +		};
  		break;
  	/* linux_sigaltstack */
  	case 186:
 
 Modified: head/sys/i386/linux/linux_dummy.c
 ==============================================================================
 --- head/sys/i386/linux/linux_dummy.c	Sat Mar 26 10:52:37 2011	(r220029)
 +++ head/sys/i386/linux/linux_dummy.c	Sat Mar 26 10:59:24 2011	(r220030)
 @@ -57,8 +57,6 @@ DUMMY(vm86);
  DUMMY(query_module);
  DUMMY(nfsservctl);
  DUMMY(rt_sigqueueinfo);
 -DUMMY(capget);
 -DUMMY(capset);
  DUMMY(sendfile);		/* different semantics */
  DUMMY(setfsuid);
  DUMMY(setfsgid);
 
 Modified: head/sys/i386/linux/linux_proto.h
 ==============================================================================
 --- head/sys/i386/linux/linux_proto.h	Sat Mar 26 10:52:37 2011	(r220029)
 +++ head/sys/i386/linux/linux_proto.h	Sat Mar 26 10:59:24 2011	(r220030)
 @@ -3,7 +3,7 @@
   *
   * DO NOT EDIT-- this file is automatically generated.
   * $FreeBSD$
 - * created from FreeBSD: head/sys/i386/linux/syscalls.master 219559 2011-03-12 08:51:43Z avg 
 + * created from FreeBSD: head/sys/i386/linux/syscalls.master 220028 2011-03-26 10:51:56Z avg 
   */
  
  #ifndef _LINUX_SYSPROTO_H_
 @@ -586,10 +586,12 @@ struct linux_getcwd_args {
  	char bufsize_l_[PADL_(l_ulong)]; l_ulong bufsize; char bufsize_r_[PADR_(l_ulong)];
  };
  struct linux_capget_args {
 -	register_t dummy;
 +	char hdrp_l_[PADL_(struct l_user_cap_header *)]; struct l_user_cap_header * hdrp; char hdrp_r_[PADR_(struct l_user_cap_header *)];
 +	char datap_l_[PADL_(struct l_user_cap_data *)]; struct l_user_cap_data * datap; char datap_r_[PADR_(struct l_user_cap_data *)];
  };
  struct linux_capset_args {
 -	register_t dummy;
 +	char hdrp_l_[PADL_(struct l_user_cap_header *)]; struct l_user_cap_header * hdrp; char hdrp_r_[PADR_(struct l_user_cap_header *)];
 +	char datap_l_[PADL_(struct l_user_cap_data *)]; struct l_user_cap_data * datap; char datap_r_[PADR_(struct l_user_cap_data *)];
  };
  struct linux_sigaltstack_args {
  	char uss_l_[PADL_(l_stack_t *)]; l_stack_t * uss; char uss_r_[PADR_(l_stack_t *)];
 
 Modified: head/sys/i386/linux/linux_syscall.h
 ==============================================================================
 --- head/sys/i386/linux/linux_syscall.h	Sat Mar 26 10:52:37 2011	(r220029)
 +++ head/sys/i386/linux/linux_syscall.h	Sat Mar 26 10:59:24 2011	(r220030)
 @@ -3,7 +3,7 @@
   *
   * DO NOT EDIT-- this file is automatically generated.
   * $FreeBSD$
 - * created from FreeBSD: head/sys/i386/linux/syscalls.master 219559 2011-03-12 08:51:43Z avg 
 + * created from FreeBSD: head/sys/i386/linux/syscalls.master 220028 2011-03-26 10:51:56Z avg 
   */
  
  #define	LINUX_SYS_exit	1
 
 Modified: head/sys/i386/linux/linux_syscalls.c
 ==============================================================================
 --- head/sys/i386/linux/linux_syscalls.c	Sat Mar 26 10:52:37 2011	(r220029)
 +++ head/sys/i386/linux/linux_syscalls.c	Sat Mar 26 10:59:24 2011	(r220030)
 @@ -3,7 +3,7 @@
   *
   * DO NOT EDIT-- this file is automatically generated.
   * $FreeBSD$
 - * created from FreeBSD: head/sys/i386/linux/syscalls.master 219559 2011-03-12 08:51:43Z avg 
 + * created from FreeBSD: head/sys/i386/linux/syscalls.master 220028 2011-03-26 10:51:56Z avg 
   */
  
  const char *linux_syscallnames[] = {
 
 Modified: head/sys/i386/linux/linux_sysent.c
 ==============================================================================
 --- head/sys/i386/linux/linux_sysent.c	Sat Mar 26 10:52:37 2011	(r220029)
 +++ head/sys/i386/linux/linux_sysent.c	Sat Mar 26 10:59:24 2011	(r220030)
 @@ -3,7 +3,7 @@
   *
   * DO NOT EDIT-- this file is automatically generated.
   * $FreeBSD$
 - * created from FreeBSD: head/sys/i386/linux/syscalls.master 219559 2011-03-12 08:51:43Z avg 
 + * created from FreeBSD: head/sys/i386/linux/syscalls.master 220028 2011-03-26 10:51:56Z avg 
   */
  
  #include <sys/param.h>
 @@ -202,8 +202,8 @@ struct sysent linux_sysent[] = {
  	{ AS(linux_pwrite_args), (sy_call_t *)linux_pwrite, AUE_PWRITE, NULL, 0, 0, 0, SY_THR_STATIC },	/* 181 = linux_pwrite */
  	{ AS(linux_chown16_args), (sy_call_t *)linux_chown16, AUE_CHOWN, NULL, 0, 0, 0, SY_THR_STATIC },	/* 182 = linux_chown16 */
  	{ AS(linux_getcwd_args), (sy_call_t *)linux_getcwd, AUE_GETCWD, NULL, 0, 0, 0, SY_THR_STATIC },	/* 183 = linux_getcwd */
 -	{ 0, (sy_call_t *)linux_capget, AUE_CAPGET, NULL, 0, 0, 0, SY_THR_STATIC },	/* 184 = linux_capget */
 -	{ 0, (sy_call_t *)linux_capset, AUE_CAPSET, NULL, 0, 0, 0, SY_THR_STATIC },	/* 185 = linux_capset */
 +	{ AS(linux_capget_args), (sy_call_t *)linux_capget, AUE_CAPGET, NULL, 0, 0, 0, SY_THR_STATIC },	/* 184 = linux_capget */
 +	{ AS(linux_capset_args), (sy_call_t *)linux_capset, AUE_CAPSET, NULL, 0, 0, 0, SY_THR_STATIC },	/* 185 = linux_capset */
  	{ AS(linux_sigaltstack_args), (sy_call_t *)linux_sigaltstack, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 186 = linux_sigaltstack */
  	{ 0, (sy_call_t *)linux_sendfile, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC },	/* 187 = linux_sendfile */
  	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },			/* 188 = getpmsg */
 
 Modified: head/sys/i386/linux/linux_systrace_args.c
 ==============================================================================
 --- head/sys/i386/linux/linux_systrace_args.c	Sat Mar 26 10:52:37 2011	(r220029)
 +++ head/sys/i386/linux/linux_systrace_args.c	Sat Mar 26 10:59:24 2011	(r220030)
 @@ -1327,12 +1327,18 @@ systrace_args(int sysnum, void *params, 
  	}
  	/* linux_capget */
  	case 184: {
 -		*n_args = 0;
 +		struct linux_capget_args *p = params;
 +		uarg[0] = (intptr_t) p->hdrp; /* struct l_user_cap_header * */
 +		uarg[1] = (intptr_t) p->datap; /* struct l_user_cap_data * */
 +		*n_args = 2;
  		break;
  	}
  	/* linux_capset */
  	case 185: {
 -		*n_args = 0;
 +		struct linux_capset_args *p = params;
 +		uarg[0] = (intptr_t) p->hdrp; /* struct l_user_cap_header * */
 +		uarg[1] = (intptr_t) p->datap; /* struct l_user_cap_data * */
 +		*n_args = 2;
  		break;
  	}
  	/* linux_sigaltstack */
 @@ -4203,9 +4209,29 @@ systrace_setargdesc(int sysnum, int ndx,
  		break;
  	/* linux_capget */
  	case 184:
 +		switch(ndx) {
 +		case 0:
 +			p = "struct l_user_cap_header *";
 +			break;
 +		case 1:
 +			p = "struct l_user_cap_data *";
 +			break;
 +		default:
 +			break;
 +		};
  		break;
  	/* linux_capset */
  	case 185:
 +		switch(ndx) {
 +		case 0:
 +			p = "struct l_user_cap_header *";
 +			break;
 +		case 1:
 +			p = "struct l_user_cap_data *";
 +			break;
 +		default:
 +			break;
 +		};
  		break;
  	/* linux_sigaltstack */
  	case 186:
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201103261100.p2QB0Qkt027432>