summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/compat/freebsd32/freebsd32_proto.h2
-rw-r--r--sys/compat/freebsd32/freebsd32_syscall.h4
-rw-r--r--sys/compat/freebsd32/freebsd32_syscalls.c6
-rw-r--r--sys/compat/freebsd32/freebsd32_sysent.c6
-rw-r--r--sys/compat/freebsd32/freebsd32_systrace_args.c42
-rw-r--r--sys/kern/init_sysent.c4
-rw-r--r--sys/kern/syscalls.c4
-rw-r--r--sys/kern/systrace_args.c42
-rw-r--r--sys/sys/syscall.h2
-rw-r--r--sys/sys/syscall.mk2
-rw-r--r--sys/sys/sysproto.h12
11 files changed, 114 insertions, 12 deletions
diff --git a/sys/compat/freebsd32/freebsd32_proto.h b/sys/compat/freebsd32/freebsd32_proto.h
index c10c6a8..21b84e8 100644
--- a/sys/compat/freebsd32/freebsd32_proto.h
+++ b/sys/compat/freebsd32/freebsd32_proto.h
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 223166 2011-06-16 22:05:56Z kib
+ * created from FreeBSD
*/
#ifndef _FREEBSD32_SYSPROTO_H_
diff --git a/sys/compat/freebsd32/freebsd32_syscall.h b/sys/compat/freebsd32/freebsd32_syscall.h
index 8903338..19f91be 100644
--- a/sys/compat/freebsd32/freebsd32_syscall.h
+++ b/sys/compat/freebsd32/freebsd32_syscall.h
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 223166 2011-06-16 22:05:56Z kib
+ * created from FreeBSD
*/
#define FREEBSD32_SYS_syscall 0
@@ -411,6 +411,8 @@
#define FREEBSD32_SYS_freebsd32_msgctl 511
#define FREEBSD32_SYS_freebsd32_shmctl 512
#define FREEBSD32_SYS_lpathconf 513
+#define FREEBSD32_SYS_cap_new 514
+#define FREEBSD32_SYS_cap_getrights 515
#define FREEBSD32_SYS_cap_enter 516
#define FREEBSD32_SYS_cap_getmode 517
#define FREEBSD32_SYS_freebsd32_pselect 522
diff --git a/sys/compat/freebsd32/freebsd32_syscalls.c b/sys/compat/freebsd32/freebsd32_syscalls.c
index eac2385..8e67e8b 100644
--- a/sys/compat/freebsd32/freebsd32_syscalls.c
+++ b/sys/compat/freebsd32/freebsd32_syscalls.c
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 223166 2011-06-16 22:05:56Z kib
+ * created from FreeBSD
*/
const char *freebsd32_syscallnames[] = {
@@ -537,8 +537,8 @@ const char *freebsd32_syscallnames[] = {
"freebsd32_msgctl", /* 511 = freebsd32_msgctl */
"freebsd32_shmctl", /* 512 = freebsd32_shmctl */
"lpathconf", /* 513 = lpathconf */
- "#514", /* 514 = cap_new */
- "#515", /* 515 = cap_getrights */
+ "cap_new", /* 514 = cap_new */
+ "cap_getrights", /* 515 = cap_getrights */
"cap_enter", /* 516 = cap_enter */
"cap_getmode", /* 517 = cap_getmode */
"#518", /* 518 = pdfork */
diff --git a/sys/compat/freebsd32/freebsd32_sysent.c b/sys/compat/freebsd32/freebsd32_sysent.c
index 61d1448..66f42ac 100644
--- a/sys/compat/freebsd32/freebsd32_sysent.c
+++ b/sys/compat/freebsd32/freebsd32_sysent.c
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 223166 2011-06-16 22:05:56Z kib
+ * created from FreeBSD
*/
#include "opt_compat.h"
@@ -574,8 +574,8 @@ struct sysent freebsd32_sysent[] = {
{ AS(freebsd32_msgctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 511 = freebsd32_msgctl */
{ AS(freebsd32_shmctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 512 = freebsd32_shmctl */
{ AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0, SY_THR_STATIC }, /* 513 = lpathconf */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 514 = cap_new */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 515 = cap_getrights */
+ { AS(cap_new_args), (sy_call_t *)cap_new, AUE_CAP_NEW, NULL, 0, 0, 0, SY_THR_STATIC }, /* 514 = cap_new */
+ { AS(cap_getrights_args), (sy_call_t *)cap_getrights, AUE_CAP_GETRIGHTS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 515 = cap_getrights */
{ 0, (sy_call_t *)cap_enter, AUE_CAP_ENTER, NULL, 0, 0, 0, SY_THR_STATIC }, /* 516 = cap_enter */
{ AS(cap_getmode_args), (sy_call_t *)cap_getmode, AUE_CAP_GETMODE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 517 = cap_getmode */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 518 = pdfork */
diff --git a/sys/compat/freebsd32/freebsd32_systrace_args.c b/sys/compat/freebsd32/freebsd32_systrace_args.c
index 10eea64..39b66fd 100644
--- a/sys/compat/freebsd32/freebsd32_systrace_args.c
+++ b/sys/compat/freebsd32/freebsd32_systrace_args.c
@@ -2918,6 +2918,22 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 2;
break;
}
+ /* cap_new */
+ case 514: {
+ struct cap_new_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = p->rights; /* u_int64_t */
+ *n_args = 2;
+ break;
+ }
+ /* cap_getrights */
+ case 515: {
+ struct cap_getrights_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->rightsp; /* u_int64_t * */
+ *n_args = 2;
+ break;
+ }
/* cap_enter */
case 516: {
*n_args = 0;
@@ -7873,6 +7889,32 @@ systrace_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
+ /* cap_new */
+ case 514:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "u_int64_t";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* cap_getrights */
+ case 515:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "u_int64_t *";
+ break;
+ default:
+ break;
+ };
+ break;
/* cap_enter */
case 516:
break;
diff --git a/sys/kern/init_sysent.c b/sys/kern/init_sysent.c
index e45ffc5..004516b 100644
--- a/sys/kern/init_sysent.c
+++ b/sys/kern/init_sysent.c
@@ -548,8 +548,8 @@ struct sysent sysent[] = {
{ AS(msgctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 511 = msgctl */
{ AS(shmctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 512 = shmctl */
{ AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0, SY_THR_STATIC }, /* 513 = lpathconf */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 514 = cap_new */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 515 = cap_getrights */
+ { AS(cap_new_args), (sy_call_t *)cap_new, AUE_CAP_NEW, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 514 = cap_new */
+ { AS(cap_getrights_args), (sy_call_t *)cap_getrights, AUE_CAP_GETRIGHTS, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 515 = cap_getrights */
{ 0, (sy_call_t *)cap_enter, AUE_CAP_ENTER, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 516 = cap_enter */
{ AS(cap_getmode_args), (sy_call_t *)cap_getmode, AUE_CAP_GETMODE, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 517 = cap_getmode */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 518 = pdfork */
diff --git a/sys/kern/syscalls.c b/sys/kern/syscalls.c
index 29a6485..abd9484 100644
--- a/sys/kern/syscalls.c
+++ b/sys/kern/syscalls.c
@@ -521,8 +521,8 @@ const char *syscallnames[] = {
"msgctl", /* 511 = msgctl */
"shmctl", /* 512 = shmctl */
"lpathconf", /* 513 = lpathconf */
- "#514", /* 514 = cap_new */
- "#515", /* 515 = cap_getrights */
+ "cap_new", /* 514 = cap_new */
+ "cap_getrights", /* 515 = cap_getrights */
"cap_enter", /* 516 = cap_enter */
"cap_getmode", /* 517 = cap_getmode */
"#518", /* 518 = pdfork */
diff --git a/sys/kern/systrace_args.c b/sys/kern/systrace_args.c
index 880b46b..f57777f 100644
--- a/sys/kern/systrace_args.c
+++ b/sys/kern/systrace_args.c
@@ -3096,6 +3096,22 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 2;
break;
}
+ /* cap_new */
+ case 514: {
+ struct cap_new_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = p->rights; /* u_int64_t */
+ *n_args = 2;
+ break;
+ }
+ /* cap_getrights */
+ case 515: {
+ struct cap_getrights_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->rightsp; /* u_int64_t * */
+ *n_args = 2;
+ break;
+ }
/* cap_enter */
case 516: {
*n_args = 0;
@@ -8326,6 +8342,32 @@ systrace_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
+ /* cap_new */
+ case 514:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "u_int64_t";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* cap_getrights */
+ case 515:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "u_int64_t *";
+ break;
+ default:
+ break;
+ };
+ break;
/* cap_enter */
case 516:
break;
diff --git a/sys/sys/syscall.h b/sys/sys/syscall.h
index 8be00de..fa4f46f 100644
--- a/sys/sys/syscall.h
+++ b/sys/sys/syscall.h
@@ -430,6 +430,8 @@
#define SYS_msgctl 511
#define SYS_shmctl 512
#define SYS_lpathconf 513
+#define SYS_cap_new 514
+#define SYS_cap_getrights 515
#define SYS_cap_enter 516
#define SYS_cap_getmode 517
#define SYS_pselect 522
diff --git a/sys/sys/syscall.mk b/sys/sys/syscall.mk
index 2f8e7b3..544bbf4 100644
--- a/sys/sys/syscall.mk
+++ b/sys/sys/syscall.mk
@@ -379,6 +379,8 @@ MIASM = \
msgctl.o \
shmctl.o \
lpathconf.o \
+ cap_new.o \
+ cap_getrights.o \
cap_enter.o \
cap_getmode.o \
pselect.o \
diff --git a/sys/sys/sysproto.h b/sys/sys/sysproto.h
index 0965b72..90e0449 100644
--- a/sys/sys/sysproto.h
+++ b/sys/sys/sysproto.h
@@ -1657,6 +1657,14 @@ struct lpathconf_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
char name_l_[PADL_(int)]; int name; char name_r_[PADR_(int)];
};
+struct cap_new_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char rights_l_[PADL_(u_int64_t)]; u_int64_t rights; char rights_r_[PADR_(u_int64_t)];
+};
+struct cap_getrights_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char rightsp_l_[PADL_(u_int64_t *)]; u_int64_t * rightsp; char rightsp_r_[PADR_(u_int64_t *)];
+};
struct cap_enter_args {
register_t dummy;
};
@@ -2073,6 +2081,8 @@ int __semctl(struct thread *, struct __semctl_args *);
int msgctl(struct thread *, struct msgctl_args *);
int shmctl(struct thread *, struct shmctl_args *);
int lpathconf(struct thread *, struct lpathconf_args *);
+int cap_new(struct thread *, struct cap_new_args *);
+int cap_getrights(struct thread *, struct cap_getrights_args *);
int cap_enter(struct thread *, struct cap_enter_args *);
int cap_getmode(struct thread *, struct cap_getmode_args *);
int pselect(struct thread *, struct pselect_args *);
@@ -2758,6 +2768,8 @@ int freebsd7_shmctl(struct thread *, struct freebsd7_shmctl_args *);
#define SYS_AUE_msgctl AUE_MSGCTL
#define SYS_AUE_shmctl AUE_SHMCTL
#define SYS_AUE_lpathconf AUE_LPATHCONF
+#define SYS_AUE_cap_new AUE_CAP_NEW
+#define SYS_AUE_cap_getrights AUE_CAP_GETRIGHTS
#define SYS_AUE_cap_enter AUE_CAP_ENTER
#define SYS_AUE_cap_getmode AUE_CAP_GETMODE
#define SYS_AUE_pselect AUE_SELECT
OpenPOWER on IntegriCloud