summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorjonathan <jonathan@FreeBSD.org>2011-07-15 18:33:12 +0000
committerjonathan <jonathan@FreeBSD.org>2011-07-15 18:33:12 +0000
commit5132d7b9f385514473fc19b1aa9080b6dc5db819 (patch)
tree8fd3be2f4339f52744df8c22ee694c844e0b17e9 /sys/kern
parent4ec3aaddb5d1848253bf9cb9b4dfccc67a058d4d (diff)
downloadFreeBSD-src-5132d7b9f385514473fc19b1aa9080b6dc5db819.zip
FreeBSD-src-5132d7b9f385514473fc19b1aa9080b6dc5db819.tar.gz
Auto-generated system call code with cap_new(), cap_getrights().
Approved by: mentor (rwatson), re (Capsicum blanket) Sponsored by: Google Inc
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/init_sysent.c4
-rw-r--r--sys/kern/syscalls.c4
-rw-r--r--sys/kern/systrace_args.c42
3 files changed, 46 insertions, 4 deletions
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;
OpenPOWER on IntegriCloud