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 <j...@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-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to