Date: Tue, 11 Aug 2009 21:32:04 GMT From: Ilias Marinos <marinosi@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 167224 for review Message-ID: <200908112132.n7BLW4bT088874@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=167224 Change 167224 by marinosi@marinosi_redrum on 2009/08/11 21:31:16 - Added a new syscall, auditon_slice() which manipulates auditing for several slices. Works exactly as auditon(2) until now, except that it accepts the slice that it should operate as arg. - auditon() will be a wrapper that selects the audit_base_slice. At the moment it does nothing. The actual code will be submitted. (NOTE: This breaks audit as auditon() does nothing with this commit. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/lib/libc/sys/Symbol.map#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/compat/freebsd32/freebsd32_proto.h#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/compat/freebsd32/freebsd32_syscall.h#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/compat/freebsd32/freebsd32_syscalls.c#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/compat/freebsd32/freebsd32_sysent.c#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/compat/freebsd32/syscalls.conf#2 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/compat/freebsd32/syscalls.master#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/kern/init_sysent.c#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/kern/syscalls.c#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/kern/syscalls.master#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/kern/systrace_args.c#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.c#17 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_syscalls.c#10 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/sys/syscall.h#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/sys/syscall.mk#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/sys/sysproto.h#3 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/lib/libc/sys/Symbol.map#3 (text) ==== @@ -357,6 +357,7 @@ shmctl; symlinkat; unlinkat; + auditon_slice; }; FBSDprivate_1.0 { ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/compat/freebsd32/freebsd32_proto.h#3 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.106 2009/07/08 16:30:34 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp */ #ifndef _FREEBSD32_SYSPROTO_H_ ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/compat/freebsd32/freebsd32_syscall.h#3 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.105 2009/07/08 16:30:34 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp */ #define FREEBSD32_SYS_syscall 0 @@ -382,4 +382,5 @@ #define FREEBSD32_SYS_freebsd32_msgctl 511 #define FREEBSD32_SYS_freebsd32_shmctl 512 #define FREEBSD32_SYS_lpathconf 513 -#define FREEBSD32_SYS_MAXSYSCALL 514 +#define FREEBSD32_SYS_auditon 514 +#define FREEBSD32_SYS_MAXSYSCALL 515 ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/compat/freebsd32/freebsd32_syscalls.c#3 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.96 2009/07/08 16:30:34 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp */ const char *freebsd32_syscallnames[] = { @@ -521,4 +521,5 @@ "freebsd32_msgctl", /* 511 = freebsd32_msgctl */ "freebsd32_shmctl", /* 512 = freebsd32_shmctl */ "lpathconf", /* 513 = lpathconf */ + "auditon", /* 514 = auditon */ }; ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/compat/freebsd32/freebsd32_sysent.c#3 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.107 2009/07/08 16:30:34 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp */ #include "opt_compat.h" @@ -558,4 +558,5 @@ { AS(freebsd32_msgctl_args), (sy_call_t *)freebsd32_msgctl, AUE_MSGCTL, NULL, 0, 0, 0 }, /* 511 = freebsd32_msgctl */ { AS(freebsd32_shmctl_args), (sy_call_t *)freebsd32_shmctl, AUE_SHMCTL, NULL, 0, 0, 0 }, /* 512 = freebsd32_shmctl */ { AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0 }, /* 513 = lpathconf */ + { AS(auditon_args), (sy_call_t *)auditon, AUE_AUDITON, NULL, 0, 0, 0 }, /* 514 = auditon */ }; ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/compat/freebsd32/syscalls.conf#2 (text+ko) ==== ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/compat/freebsd32/syscalls.master#3 (text+ko) ==== @@ -901,3 +901,5 @@ 512 AUE_SHMCTL STD { int freebsd32_shmctl(int shmid, int cmd, \ struct shmid_ds32 *buf); } 513 AUE_LPATHCONF NOPROTO { int lpathconf(char *path, int name); } +514 AUE_AUDITON NOPROTO { int auditon(int cmd, char *name, \ + void *data, u_int length); } ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/kern/init_sysent.c#3 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/init_sysent.c,v 1.253 2009/07/08 15:25:27 trasz Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 195458 2009-07-08 15:23:18Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.259 2009/07/08 15:23:18 trasz Exp */ #include "opt_compat.h" @@ -548,4 +548,5 @@ { AS(msgctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 511 = msgctl */ { AS(shmctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 512 = shmctl */ { AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0 }, /* 513 = lpathconf */ + { AS(auditon_slice_args), (sy_call_t *)auditon_slice, AUE_AUDITON, NULL, 0, 0, 0 }, /* 514 = auditon_slice */ }; ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/kern/syscalls.c#3 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/syscalls.c,v 1.236 2009/07/08 15:25:27 trasz Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 195458 2009-07-08 15:23:18Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.259 2009/07/08 15:23:18 trasz Exp */ const char *syscallnames[] = { @@ -521,4 +521,5 @@ "msgctl", /* 511 = msgctl */ "shmctl", /* 512 = shmctl */ "lpathconf", /* 513 = lpathconf */ + "auditon_slice", /* 514 = auditon_slice */ }; ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/kern/syscalls.master#3 (text+ko) ==== @@ -911,5 +911,7 @@ 512 AUE_SHMCTL NOSTD { int shmctl(int shmid, int cmd, \ struct shmid_ds *buf); } 513 AUE_LPATHCONF STD { int lpathconf(char *path, int name); } +514 AUE_AUDITON STD { int auditon_slice(int cmd, char *name, \ + void *data, u_int length); } ; Please copy any additions and changes to the following compatability tables: ; sys/compat/freebsd32/syscalls.master ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/kern/systrace_args.c#3 (text+ko) ==== @@ -2,7 +2,7 @@ * System call argument to DTrace register array converstion. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/systrace_args.c,v 1.33 2009/07/08 15:25:27 trasz Exp $ + * $FreeBSD$ * This file is part of the DTrace syscall provider. */ @@ -3072,6 +3072,16 @@ *n_args = 2; break; } + /* auditon_slice */ + case 514: { + struct auditon_slice_args *p = params; + iarg[0] = p->cmd; /* int */ + uarg[1] = (intptr_t) p->name; /* char * */ + uarg[2] = (intptr_t) p->data; /* void * */ + uarg[3] = p->length; /* u_int */ + *n_args = 4; + break; + } default: *n_args = 0; break; @@ -8154,6 +8164,25 @@ break; }; break; + /* auditon_slice */ + case 514: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "char *"; + break; + case 2: + p = "void *"; + break; + case 3: + p = "u_int"; + break; + default: + break; + }; + break; default: break; }; ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.c#17 (text) ==== ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_syscalls.c#10 (text) ==== @@ -153,20 +153,36 @@ } /* + * Wrapper system call to auditon_slice that selects audit_base_slice to + * operate on. + */ +/* ARGSUSED */ +int +auditon(struct thread *td, struct auditon_args *uap) +{ + + /* Dummy syscall -- to be changed */ + return (ENOSYS); +} + +/* * System call to manipulate auditing. */ /* ARGSUSED */ int -auditon(struct thread *td, struct auditon_args *uap) +auditon_slice(struct thread *td, struct auditon_slice_args *uap) { struct ucred *cred, *newcred, *oldcred; + struct audit_slice *as = NULL; int error; union auditon_udata udata; struct proc *tp; + char as_name[AUDIT_SLICE_NAME_LEN]; if (jailed(td->td_ucred)) return (ENOSYS); AUDIT_ARG_CMD(uap->cmd); + AUDIT_ARG_TEXT(uap->name); #ifdef MAC error = mac_system_check_auditon(td->td_ucred, uap->cmd); @@ -181,6 +197,20 @@ if ((uap->length <= 0) || (uap->length > sizeof(union auditon_udata))) return (EINVAL); + /* + * Copyin the name of the slice we need to operate on. + */ + error = copyinstr(uap->name, as_name, AUDIT_SLICE_NAME_LEN, NULL); + if (error) + return (EINVAL); + + /* + * Find the slice we should operate on. + */ + error = audit_slice_lookup(as_name, as); + if (error) + return (error); + memset((void *)&udata, 0, sizeof(udata)); /* @@ -219,25 +249,25 @@ case A_OLDGETPOLICY: case A_GETPOLICY: if (uap->length == sizeof(udata.au_policy64)) { - if (!audit_base_slice->audit_fail_stop) + if (!as->audit_fail_stop) udata.au_policy64 |= AUDIT_CNT; - if (audit_base_slice->audit_panic_on_write_fail) + if (as->audit_panic_on_write_fail) udata.au_policy64 |= AUDIT_AHLT; - if (audit_base_slice->audit_argv) + if (as->audit_argv) udata.au_policy64 |= AUDIT_ARGV; - if (audit_base_slice->audit_arge) + if (as->audit_arge) udata.au_policy64 |= AUDIT_ARGE; break; } if (uap->length != sizeof(udata.au_policy)) return (EINVAL); - if (!audit_base_slice->audit_fail_stop) + if (!as->audit_fail_stop) udata.au_policy |= AUDIT_CNT; - if (audit_base_slice->audit_panic_on_write_fail) + if (as->audit_panic_on_write_fail) udata.au_policy |= AUDIT_AHLT; - if (audit_base_slice->audit_argv) + if (as->audit_argv) udata.au_policy |= AUDIT_ARGV; - if (audit_base_slice->audit_arge) + if (as->audit_arge) udata.au_policy |= AUDIT_ARGE; break; @@ -247,13 +277,13 @@ if (udata.au_policy & (~AUDIT_CNT|AUDIT_AHLT| AUDIT_ARGV|AUDIT_ARGE)) return (EINVAL); - audit_base_slice->audit_fail_stop = ((udata.au_policy64 + as->audit_fail_stop = ((udata.au_policy64 & AUDIT_CNT) == 0); - audit_base_slice->audit_panic_on_write_fail = + as->audit_panic_on_write_fail = (udata.au_policy64 & AUDIT_AHLT); - audit_base_slice->audit_argv = (udata.au_policy64 + as->audit_argv = (udata.au_policy64 & AUDIT_ARGV); - audit_base_slice->audit_arge = (udata.au_policy64 + as->audit_arge = (udata.au_policy64 & AUDIT_ARGE); break; } @@ -265,44 +295,44 @@ /* * XXX - Need to wake up waiters if the policy relaxes? */ - audit_base_slice->audit_fail_stop = + as->audit_fail_stop = ((udata.au_policy & AUDIT_CNT) == 0); - audit_base_slice->audit_panic_on_write_fail = + as->audit_panic_on_write_fail = (udata.au_policy & AUDIT_AHLT); - audit_base_slice->audit_argv = + as->audit_argv = (udata.au_policy & AUDIT_ARGV); - audit_base_slice->audit_arge = + as->audit_arge = (udata.au_policy & AUDIT_ARGE); break; case A_GETKMASK: if (uap->length != sizeof(udata.au_mask)) return (EINVAL); - udata.au_mask = audit_base_slice->audit_nae_mask; + udata.au_mask = as->audit_nae_mask; break; case A_SETKMASK: if (uap->length != sizeof(udata.au_mask)) return (EINVAL); - audit_base_slice->audit_nae_mask = udata.au_mask; + as->audit_nae_mask = udata.au_mask; break; case A_OLDGETQCTRL: case A_GETQCTRL: if (uap->length == sizeof(udata.au_qctrl64)) { udata.au_qctrl64.aq64_hiwater = - (u_int64_t)audit_base_slice->audit_qctrl.aq_hiwater; + (u_int64_t)as->audit_qctrl.aq_hiwater; udata.au_qctrl64.aq64_lowater = - (u_int64_t)audit_base_slice->audit_qctrl.aq_lowater; + (u_int64_t)as->audit_qctrl.aq_lowater; udata.au_qctrl64.aq64_bufsz = - (u_int64_t)audit_base_slice->audit_qctrl.aq_bufsz; + (u_int64_t)as->audit_qctrl.aq_bufsz; udata.au_qctrl64.aq64_minfree = - (u_int64_t)audit_base_slice->audit_qctrl.aq_minfree; + (u_int64_t)as->audit_qctrl.aq_minfree; break; } if (uap->length != sizeof(udata.au_qctrl)) return (EINVAL); - udata.au_qctrl = audit_base_slice->audit_qctrl; + udata.au_qctrl = as->audit_qctrl; break; case A_OLDSETQCTRL: @@ -315,16 +345,16 @@ (udata.au_qctrl64.aq64_minfree < 0) || (udata.au_qctrl64.aq64_minfree > 100)) return (EINVAL); - audit_base_slice->audit_qctrl.aq_hiwater = + as->audit_qctrl.aq_hiwater = (int)udata.au_qctrl64.aq64_hiwater; - audit_base_slice->audit_qctrl.aq_lowater = + as->audit_qctrl.aq_lowater = (int)udata.au_qctrl64.aq64_lowater; - audit_base_slice->audit_qctrl.aq_bufsz = + as->audit_qctrl.aq_bufsz = (int)udata.au_qctrl64.aq64_bufsz; - audit_base_slice->audit_qctrl.aq_minfree = + as->audit_qctrl.aq_minfree = (int)udata.au_qctrl64.aq64_minfree; /* Not used. */ - audit_base_slice->audit_qctrl.aq_delay = -1; + as->audit_qctrl.aq_delay = -1; break; } if (uap->length != sizeof(udata.au_qctrl)) @@ -336,9 +366,9 @@ (udata.au_qctrl.aq_minfree > 100)) return (EINVAL); - audit_base_slice->audit_qctrl = udata.au_qctrl; + as->audit_qctrl = udata.au_qctrl; /* XXX The queue delay value isn't used with the kernel. */ - audit_base_slice->audit_qctrl.aq_delay = -1; + as->audit_qctrl.aq_delay = -1; break; case A_GETCWD: @@ -368,8 +398,8 @@ case A_OLDGETCOND: case A_GETCOND: if (uap->length == sizeof(udata.au_cond64)) { - if (audit_base_slice->audit_enabled - && !audit_base_slice->audit_suspended) + if (as->audit_enabled + && !as->audit_suspended) udata.au_cond64 = AUC_AUDITING; else udata.au_cond64 = AUC_NOAUDIT; @@ -377,8 +407,8 @@ } if (uap->length != sizeof(udata.au_cond)) return (EINVAL); - if (audit_base_slice->audit_enabled - && !audit_base_slice->audit_suspended) + if (as->audit_enabled + && !as->audit_suspended) udata.au_cond = AUC_AUDITING; else udata.au_cond = AUC_NOAUDIT; @@ -388,27 +418,27 @@ case A_SETCOND: if (uap->length == sizeof(udata.au_cond64)) { if (udata.au_cond64 == AUC_NOAUDIT) - audit_base_slice->audit_suspended = 1; + as->audit_suspended = 1; if (udata.au_cond64 == AUC_AUDITING) - audit_base_slice->audit_suspended = 0; + as->audit_suspended = 0; if (udata.au_cond64 == AUC_DISABLED) { - audit_base_slice->audit_suspended = 1; + as->audit_suspended = 1; audit_shutdown(NULL, 0); } - audit_suspended = audit_base_slice->audit_suspended; + audit_suspended = as->audit_suspended; break; } if (uap->length != sizeof(udata.au_cond)) return (EINVAL); if (udata.au_cond == AUC_NOAUDIT) - audit_base_slice->audit_suspended = 1; + as->audit_suspended = 1; if (udata.au_cond == AUC_AUDITING) - audit_base_slice->audit_suspended = 0; + as->audit_suspended = 0; if (udata.au_cond == AUC_DISABLED) { - audit_base_slice->audit_suspended = 1; + as->audit_suspended = 1; audit_shutdown(NULL, 0); } - audit_suspended = audit_base_slice->audit_suspended; + audit_suspended = as->audit_suspended; break; case A_GETCLASS: @@ -486,7 +516,7 @@ if ((udata.au_fstat.af_filesz != 0) && (udata.au_fstat.af_filesz < MIN_AUDIT_FILE_SIZE)) return (EINVAL); - audit_base_slice->audit_fstat.af_filesz + as->audit_fstat.af_filesz = udata.au_fstat.af_filesz; break; @@ -494,9 +524,9 @@ if (uap->length != sizeof(udata.au_fstat)) return (EINVAL); udata.au_fstat.af_filesz - = audit_base_slice->audit_fstat.af_filesz; + = as->audit_fstat.af_filesz; udata.au_fstat.af_currsz - = audit_base_slice->audit_fstat.af_currsz; + = as->audit_fstat.af_currsz; break; case A_GETPINFO_ADDR: @@ -880,6 +910,13 @@ } int +auditon_slice(struct thread *td, struct auditon_slice_args *uap) +{ + + return (ENOSYS); +} + +int getauid(struct thread *td, struct getauid_args *uap) { ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/sys/syscall.h#3 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/sys/syscall.h,v 1.233 2009/07/08 15:25:27 trasz Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 195458 2009-07-08 15:23:18Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.259 2009/07/08 15:23:18 trasz Exp */ #define SYS_syscall 0 @@ -428,4 +428,5 @@ #define SYS_msgctl 511 #define SYS_shmctl 512 #define SYS_lpathconf 513 -#define SYS_MAXSYSCALL 514 +#define SYS_auditon_slice 514 +#define SYS_MAXSYSCALL 515 ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/sys/syscall.mk#3 (text+ko) ==== @@ -1,7 +1,7 @@ # FreeBSD system call names. # DO NOT EDIT-- this file is automatically generated. -# $FreeBSD: src/sys/sys/syscall.mk,v 1.188 2009/07/08 15:25:27 trasz Exp $ -# created from FreeBSD: head/sys/kern/syscalls.master 195458 2009-07-08 15:23:18Z trasz +# $FreeBSD$ +# created from FreeBSD: src/sys/kern/syscalls.master,v 1.259 2009/07/08 15:23:18 trasz Exp MIASM = \ syscall.o \ exit.o \ @@ -376,4 +376,5 @@ __semctl.o \ msgctl.o \ shmctl.o \ - lpathconf.o + lpathconf.o \ + auditon_slice.o ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/sys/sysproto.h#3 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/sys/sysproto.h,v 1.237 2009/07/08 15:25:27 trasz Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 195458 2009-07-08 15:23:18Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.259 2009/07/08 15:23:18 trasz Exp */ #ifndef _SYS_SYSPROTO_H_ @@ -1641,6 +1641,12 @@ 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 auditon_slice_args { + char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)]; + char name_l_[PADL_(char *)]; char * name; char name_r_[PADR_(char *)]; + char data_l_[PADL_(void *)]; void * data; char data_r_[PADR_(void *)]; + char length_l_[PADL_(u_int)]; u_int length; char length_r_[PADR_(u_int)]; +}; int nosys(struct thread *, struct nosys_args *); void sys_exit(struct thread *, struct sys_exit_args *); int fork(struct thread *, struct fork_args *); @@ -1999,6 +2005,7 @@ int msgctl(struct thread *, struct msgctl_args *); int shmctl(struct thread *, struct shmctl_args *); int lpathconf(struct thread *, struct lpathconf_args *); +int auditon_slice(struct thread *, struct auditon_slice_args *); #ifdef COMPAT_43 @@ -2671,6 +2678,7 @@ #define SYS_AUE_msgctl AUE_MSGCTL #define SYS_AUE_shmctl AUE_SHMCTL #define SYS_AUE_lpathconf AUE_LPATHCONF +#define SYS_AUE_auditon_slice AUE_AUDITON #undef PAD_ #undef PADL_
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908112132.n7BLW4bT088874>