Message ID | 47b7d8a4c69443f7902c4b413143cb8de67c1d6e.1269616764.git.riku.voipio@nokia.com |
---|---|
State | New |
Headers | show |
On Fri, Mar 26, 2010 at 03:25:11PM +0000, Riku Voipio wrote: > From: Riku Voipio <riku.voipio@nokia.com> > > New syscall which gets actively used when you have a > fresh kernel. > > Signed-off-by: Riku Voipio <riku.voipio@nokia.com> Thanks, applied. > --- > configure | 18 ++++++++++++++++++ > linux-user/syscall.c | 14 ++++++++++++++ > 2 files changed, 32 insertions(+), 0 deletions(-) > > diff --git a/configure b/configure > index 6bc40a3..f9e08f6 100755 > --- a/configure > +++ b/configure > @@ -1629,6 +1629,21 @@ if compile_prog "" "" ; then > inotify=yes > fi > > +inotify1=no > +cat > $TMPC << EOF > +#include <sys/inotify.h> > + > +int > +main(void) > +{ > + /* try to start inotify */ > + return inotify_init1(0); > +} > +EOF > +if compile_prog "" "" ; then > + inotify1=yes > +fi > + > # check if utimensat and futimens are supported > utimens=no > cat > $TMPC << EOF > @@ -2136,6 +2151,9 @@ fi > if test "$inotify" = "yes" ; then > echo "CONFIG_INOTIFY=y" >> $config_host_mak > fi > +if test "$inotify1" = "yes" ; then > + echo "CONFIG_INOTIFY1=y" >> $config_host_mak > +fi > if test "$byteswap_h" = "yes" ; then > echo "CONFIG_BYTESWAP_H=y" >> $config_host_mak > fi > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 845bb60..4b2a765 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -506,9 +506,18 @@ static int sys_inotify_rm_watch(int fd, int32_t wd) > return (inotify_rm_watch(fd, wd)); > } > #endif > +#ifdef CONFIG_INOTIFY1 > +#if defined(TARGET_NR_inotify_init1) && defined(__NR_inotify_init1) > +static int sys_inotify_init1(int flags) > +{ > + return (inotify_init1(flags)); > +} > +#endif > +#endif > #else > /* Userspace can usually survive runtime without inotify */ > #undef TARGET_NR_inotify_init > +#undef TARGET_NR_inotify_init1 > #undef TARGET_NR_inotify_add_watch > #undef TARGET_NR_inotify_rm_watch > #endif /* CONFIG_INOTIFY */ > @@ -7174,6 +7183,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, > ret = get_errno(sys_inotify_init()); > break; > #endif > +#if defined(TARGET_NR_inotify_init1) && defined(__NR_inotify_init1) > + case TARGET_NR_inotify_init1: > + ret = get_errno(sys_inotify_init1(arg1)); > + break; > +#endif > #if defined(TARGET_NR_inotify_add_watch) && defined(__NR_inotify_add_watch) > case TARGET_NR_inotify_add_watch: > p = lock_user_string(arg2); > -- > 1.6.5 > > > >
diff --git a/configure b/configure index 6bc40a3..f9e08f6 100755 --- a/configure +++ b/configure @@ -1629,6 +1629,21 @@ if compile_prog "" "" ; then inotify=yes fi +inotify1=no +cat > $TMPC << EOF +#include <sys/inotify.h> + +int +main(void) +{ + /* try to start inotify */ + return inotify_init1(0); +} +EOF +if compile_prog "" "" ; then + inotify1=yes +fi + # check if utimensat and futimens are supported utimens=no cat > $TMPC << EOF @@ -2136,6 +2151,9 @@ fi if test "$inotify" = "yes" ; then echo "CONFIG_INOTIFY=y" >> $config_host_mak fi +if test "$inotify1" = "yes" ; then + echo "CONFIG_INOTIFY1=y" >> $config_host_mak +fi if test "$byteswap_h" = "yes" ; then echo "CONFIG_BYTESWAP_H=y" >> $config_host_mak fi diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 845bb60..4b2a765 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -506,9 +506,18 @@ static int sys_inotify_rm_watch(int fd, int32_t wd) return (inotify_rm_watch(fd, wd)); } #endif +#ifdef CONFIG_INOTIFY1 +#if defined(TARGET_NR_inotify_init1) && defined(__NR_inotify_init1) +static int sys_inotify_init1(int flags) +{ + return (inotify_init1(flags)); +} +#endif +#endif #else /* Userspace can usually survive runtime without inotify */ #undef TARGET_NR_inotify_init +#undef TARGET_NR_inotify_init1 #undef TARGET_NR_inotify_add_watch #undef TARGET_NR_inotify_rm_watch #endif /* CONFIG_INOTIFY */ @@ -7174,6 +7183,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, ret = get_errno(sys_inotify_init()); break; #endif +#if defined(TARGET_NR_inotify_init1) && defined(__NR_inotify_init1) + case TARGET_NR_inotify_init1: + ret = get_errno(sys_inotify_init1(arg1)); + break; +#endif #if defined(TARGET_NR_inotify_add_watch) && defined(__NR_inotify_add_watch) case TARGET_NR_inotify_add_watch: p = lock_user_string(arg2);