diff options
author | jonathan <jonathan@FreeBSD.org> | 2011-07-15 18:33:12 +0000 |
---|---|---|
committer | jonathan <jonathan@FreeBSD.org> | 2011-07-15 18:33:12 +0000 |
commit | 5132d7b9f385514473fc19b1aa9080b6dc5db819 (patch) | |
tree | 8fd3be2f4339f52744df8c22ee694c844e0b17e9 /sys/kern | |
parent | 4ec3aaddb5d1848253bf9cb9b4dfccc67a058d4d (diff) | |
download | FreeBSD-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.c | 4 | ||||
-rw-r--r-- | sys/kern/syscalls.c | 4 | ||||
-rw-r--r-- | sys/kern/systrace_args.c | 42 |
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; |