fanotify: fanotify_init syscall declaration
This patch defines a new syscall fanotify_init() of the form: int sys_fanotify_init(unsigned int flags, unsigned int event_f_flags, unsigned int priority) This syscall is used to create and fanotify group. This is very similar to the inotify_init() syscall. Signed-off-by: Eric Paris <eparis@redhat.com>
This commit is contained in:
Родитель
9dced01a09
Коммит
11637e4b7d
|
@ -842,4 +842,5 @@ ia32_sys_call_table:
|
||||||
.quad compat_sys_rt_tgsigqueueinfo /* 335 */
|
.quad compat_sys_rt_tgsigqueueinfo /* 335 */
|
||||||
.quad sys_perf_event_open
|
.quad sys_perf_event_open
|
||||||
.quad compat_sys_recvmmsg
|
.quad compat_sys_recvmmsg
|
||||||
|
.quad sys_fanotify_init
|
||||||
ia32_syscall_end:
|
ia32_syscall_end:
|
||||||
|
|
|
@ -343,10 +343,11 @@
|
||||||
#define __NR_rt_tgsigqueueinfo 335
|
#define __NR_rt_tgsigqueueinfo 335
|
||||||
#define __NR_perf_event_open 336
|
#define __NR_perf_event_open 336
|
||||||
#define __NR_recvmmsg 337
|
#define __NR_recvmmsg 337
|
||||||
|
#define __NR_fanotify_init 338
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
#define NR_syscalls 338
|
#define NR_syscalls 339
|
||||||
|
|
||||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||||
#define __ARCH_WANT_OLD_READDIR
|
#define __ARCH_WANT_OLD_READDIR
|
||||||
|
|
|
@ -663,6 +663,8 @@ __SYSCALL(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo)
|
||||||
__SYSCALL(__NR_perf_event_open, sys_perf_event_open)
|
__SYSCALL(__NR_perf_event_open, sys_perf_event_open)
|
||||||
#define __NR_recvmmsg 299
|
#define __NR_recvmmsg 299
|
||||||
__SYSCALL(__NR_recvmmsg, sys_recvmmsg)
|
__SYSCALL(__NR_recvmmsg, sys_recvmmsg)
|
||||||
|
#define __NR_fanotify_init 300
|
||||||
|
__SYSCALL(__NR_fanotify_init, sys_fanotify_init)
|
||||||
|
|
||||||
#ifndef __NO_STUBS
|
#ifndef __NO_STUBS
|
||||||
#define __ARCH_WANT_OLD_READDIR
|
#define __ARCH_WANT_OLD_READDIR
|
||||||
|
|
|
@ -337,3 +337,4 @@ ENTRY(sys_call_table)
|
||||||
.long sys_rt_tgsigqueueinfo /* 335 */
|
.long sys_rt_tgsigqueueinfo /* 335 */
|
||||||
.long sys_perf_event_open
|
.long sys_perf_event_open
|
||||||
.long sys_recvmmsg
|
.long sys_recvmmsg
|
||||||
|
.long sys_fanotify_init
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
obj-$(CONFIG_FANOTIFY) += fanotify.o
|
obj-$(CONFIG_FANOTIFY) += fanotify.o fanotify_user.o
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
#include <linux/fcntl.h>
|
||||||
|
#include <linux/fs.h>
|
||||||
|
#include <linux/fsnotify_backend.h>
|
||||||
|
#include <linux/security.h>
|
||||||
|
#include <linux/syscalls.h>
|
||||||
|
|
||||||
|
#include "fanotify.h"
|
||||||
|
|
||||||
|
SYSCALL_DEFINE3(fanotify_init, unsigned int, flags, unsigned int, event_f_flags,
|
||||||
|
unsigned int, priority)
|
||||||
|
{
|
||||||
|
return -ENOSYS;
|
||||||
|
}
|
|
@ -813,6 +813,8 @@ asmlinkage long sys_pselect6(int, fd_set __user *, fd_set __user *,
|
||||||
asmlinkage long sys_ppoll(struct pollfd __user *, unsigned int,
|
asmlinkage long sys_ppoll(struct pollfd __user *, unsigned int,
|
||||||
struct timespec __user *, const sigset_t __user *,
|
struct timespec __user *, const sigset_t __user *,
|
||||||
size_t);
|
size_t);
|
||||||
|
asmlinkage long sys_fanotify_init(unsigned int flags, unsigned int event_f_flags,
|
||||||
|
unsigned int priority);
|
||||||
|
|
||||||
int kernel_execve(const char *filename, char *const argv[], char *const envp[]);
|
int kernel_execve(const char *filename, char *const argv[], char *const envp[]);
|
||||||
|
|
||||||
|
|
|
@ -181,3 +181,6 @@ cond_syscall(sys_eventfd2);
|
||||||
|
|
||||||
/* performance counters: */
|
/* performance counters: */
|
||||||
cond_syscall(sys_perf_event_open);
|
cond_syscall(sys_perf_event_open);
|
||||||
|
|
||||||
|
/* fanotify! */
|
||||||
|
cond_syscall(sys_fanotify_init);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче