* [Qemu-devel] [PATCH] Add inotify syscall family
@ 2008-09-19 13:33 Riku Voipio
2008-09-19 14:18 ` Kirill A. Shutemov
2008-10-01 21:49 ` Aurelien Jarno
0 siblings, 2 replies; 4+ messages in thread
From: Riku Voipio @ 2008-09-19 13:33 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
---
linux-user/syscall.c | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 8b8262a..b9c0e59 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -177,6 +177,9 @@ static type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, \
#define __NR_sys_unlinkat __NR_unlinkat
#define __NR_sys_utimensat __NR_utimensat
#define __NR_sys_futex __NR_futex
+#define __NR_sys_inotify_init __NR_inotify_init
+#define __NR_sys_inotify_add_watch __NR_inotify_add_watch
+#define __NR_sys_inotify_rm_watch __NR_inotify_rm_watch
#if defined(__alpha__) || defined (__ia64__) || defined(__x86_64__)
#define __NR__llseek __NR_lseek
@@ -270,6 +273,15 @@ _syscall3(int,sys_unlinkat,int,dirfd,const char *,pathname,int,flags)
_syscall4(int,sys_utimensat,int,dirfd,const char *,pathname,
const struct timespec *,tsp,int,flags)
#endif
+#if defined(TARGET_NR_inotify_init) && defined(__NR_inotify_init)
+_syscall0(int,sys_inotify_init)
+#endif
+#if defined(TARGET_NR_inotify_add_watch) && defined(__NR_inotify_add_watch)
+_syscall3(int,sys_inotify_add_watch,int,fd,const char *,pathname,uint32_t,mask)
+#endif
+#if defined(TARGET_NR_inotify_rm_watch) && defined(__NR_inotify_rm_watch)
+_syscall2(int,sys_inotify_rm_watch,int,fd,uint32_t,wd)
+#endif
#if defined(USE_NPTL)
#if defined(TARGET_NR_futex) && defined(__NR_futex)
_syscall6(int,sys_futex,int *,uaddr,int,op,int,val,
@@ -5873,6 +5885,23 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
ret = do_futex(arg1, arg2, arg3, arg4, arg5, arg6);
break;
#endif
+#ifdef TARGET_NR_inotify_init
+ case TARGET_NR_inotify_init:
+ ret = get_errno(sys_inotify_init());
+ break;
+#endif
+#ifdef TARGET_NR_inotify_add_watch
+ case TARGET_NR_inotify_add_watch:
+ p = lock_user_string(arg2);
+ ret = get_errno(sys_inotify_add_watch(arg1, path(p), arg3));
+ unlock_user(p, arg2, 0);
+ break;
+#endif
+#ifdef TARGET_NR_inotify_rm_watch
+ case TARGET_NR_inotify_rm_watch:
+ ret = get_errno(sys_inotify_rm_watch(arg1, arg2));
+ break;
+#endif
default:
unimplemented:
--
1.5.6.5
--
"rm -rf" only sounds scary if you don't have backups
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [Qemu-devel] [PATCH] Add inotify syscall family
2008-09-19 13:33 [Qemu-devel] [PATCH] Add inotify syscall family Riku Voipio
@ 2008-09-19 14:18 ` Kirill A. Shutemov
2008-10-01 21:49 ` Aurelien Jarno
1 sibling, 0 replies; 4+ messages in thread
From: Kirill A. Shutemov @ 2008-09-19 14:18 UTC (permalink / raw)
To: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 2664 bytes --]
On Fri, Sep 19, 2008 at 04:33:32PM +0300, Riku Voipio wrote:
>
> Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
> ---
> linux-user/syscall.c | 29 +++++++++++++++++++++++++++++
> 1 files changed, 29 insertions(+), 0 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 8b8262a..b9c0e59 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -177,6 +177,9 @@ static type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, \
> #define __NR_sys_unlinkat __NR_unlinkat
> #define __NR_sys_utimensat __NR_utimensat
> #define __NR_sys_futex __NR_futex
> +#define __NR_sys_inotify_init __NR_inotify_init
> +#define __NR_sys_inotify_add_watch __NR_inotify_add_watch
> +#define __NR_sys_inotify_rm_watch __NR_inotify_rm_watch
>
> #if defined(__alpha__) || defined (__ia64__) || defined(__x86_64__)
> #define __NR__llseek __NR_lseek
> @@ -270,6 +273,15 @@ _syscall3(int,sys_unlinkat,int,dirfd,const char *,pathname,int,flags)
> _syscall4(int,sys_utimensat,int,dirfd,const char *,pathname,
> const struct timespec *,tsp,int,flags)
> #endif
> +#if defined(TARGET_NR_inotify_init) && defined(__NR_inotify_init)
> +_syscall0(int,sys_inotify_init)
> +#endif
> +#if defined(TARGET_NR_inotify_add_watch) && defined(__NR_inotify_add_watch)
> +_syscall3(int,sys_inotify_add_watch,int,fd,const char *,pathname,uint32_t,mask)
> +#endif
> +#if defined(TARGET_NR_inotify_rm_watch) && defined(__NR_inotify_rm_watch)
> +_syscall2(int,sys_inotify_rm_watch,int,fd,uint32_t,wd)
> +#endif
> #if defined(USE_NPTL)
> #if defined(TARGET_NR_futex) && defined(__NR_futex)
> _syscall6(int,sys_futex,int *,uaddr,int,op,int,val,
> @@ -5873,6 +5885,23 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
> ret = do_futex(arg1, arg2, arg3, arg4, arg5, arg6);
> break;
> #endif
> +#ifdef TARGET_NR_inotify_init
> + case TARGET_NR_inotify_init:
> + ret = get_errno(sys_inotify_init());
> + break;
> +#endif
> +#ifdef TARGET_NR_inotify_add_watch
> + case TARGET_NR_inotify_add_watch:
> + p = lock_user_string(arg2);
> + ret = get_errno(sys_inotify_add_watch(arg1, path(p), arg3));
> + unlock_user(p, arg2, 0);
> + break;
> +#endif
> +#ifdef TARGET_NR_inotify_rm_watch
> + case TARGET_NR_inotify_rm_watch:
> + ret = get_errno(sys_inotify_rm_watch(arg1, arg2));
> + break;
> +#endif
>
> default:
> unimplemented:
Looks good for me. Added to my patchset.
--
Regards, Kirill A. Shutemov
+ Belarus, Minsk
+ ALT Linux Team, http://www.altlinux.com/
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH] Add inotify syscall family
2008-09-19 13:33 [Qemu-devel] [PATCH] Add inotify syscall family Riku Voipio
2008-09-19 14:18 ` Kirill A. Shutemov
@ 2008-10-01 21:49 ` Aurelien Jarno
1 sibling, 0 replies; 4+ messages in thread
From: Aurelien Jarno @ 2008-10-01 21:49 UTC (permalink / raw)
To: qemu-devel
Applied, thanks.
On Fri, Sep 19, 2008 at 04:33:32PM +0300, Riku Voipio wrote:
>
> Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
> ---
> linux-user/syscall.c | 29 +++++++++++++++++++++++++++++
> 1 files changed, 29 insertions(+), 0 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 8b8262a..b9c0e59 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -177,6 +177,9 @@ static type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, \
> #define __NR_sys_unlinkat __NR_unlinkat
> #define __NR_sys_utimensat __NR_utimensat
> #define __NR_sys_futex __NR_futex
> +#define __NR_sys_inotify_init __NR_inotify_init
> +#define __NR_sys_inotify_add_watch __NR_inotify_add_watch
> +#define __NR_sys_inotify_rm_watch __NR_inotify_rm_watch
>
> #if defined(__alpha__) || defined (__ia64__) || defined(__x86_64__)
> #define __NR__llseek __NR_lseek
> @@ -270,6 +273,15 @@ _syscall3(int,sys_unlinkat,int,dirfd,const char *,pathname,int,flags)
> _syscall4(int,sys_utimensat,int,dirfd,const char *,pathname,
> const struct timespec *,tsp,int,flags)
> #endif
> +#if defined(TARGET_NR_inotify_init) && defined(__NR_inotify_init)
> +_syscall0(int,sys_inotify_init)
> +#endif
> +#if defined(TARGET_NR_inotify_add_watch) && defined(__NR_inotify_add_watch)
> +_syscall3(int,sys_inotify_add_watch,int,fd,const char *,pathname,uint32_t,mask)
> +#endif
> +#if defined(TARGET_NR_inotify_rm_watch) && defined(__NR_inotify_rm_watch)
> +_syscall2(int,sys_inotify_rm_watch,int,fd,uint32_t,wd)
> +#endif
> #if defined(USE_NPTL)
> #if defined(TARGET_NR_futex) && defined(__NR_futex)
> _syscall6(int,sys_futex,int *,uaddr,int,op,int,val,
> @@ -5873,6 +5885,23 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
> ret = do_futex(arg1, arg2, arg3, arg4, arg5, arg6);
> break;
> #endif
> +#ifdef TARGET_NR_inotify_init
> + case TARGET_NR_inotify_init:
> + ret = get_errno(sys_inotify_init());
> + break;
> +#endif
> +#ifdef TARGET_NR_inotify_add_watch
> + case TARGET_NR_inotify_add_watch:
> + p = lock_user_string(arg2);
> + ret = get_errno(sys_inotify_add_watch(arg1, path(p), arg3));
> + unlock_user(p, arg2, 0);
> + break;
> +#endif
> +#ifdef TARGET_NR_inotify_rm_watch
> + case TARGET_NR_inotify_rm_watch:
> + ret = get_errno(sys_inotify_rm_watch(arg1, arg2));
> + break;
> +#endif
>
> default:
> unimplemented:
> --
> 1.5.6.5
>
>
> --
> "rm -rf" only sounds scary if you don't have backups
>
>
>
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' aurel32@debian.org | aurelien@aurel32.net
`- people.debian.org/~aurel32 | www.aurel32.net
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH] Add fadvise64 stubs
@ 2008-10-01 13:56 Kirill A. Shutemov
2008-10-01 13:56 ` [Qemu-devel] [PATCH] Add mincore syscall Kirill A. Shutemov
0 siblings, 1 reply; 4+ messages in thread
From: Kirill A. Shutemov @ 2008-10-01 13:56 UTC (permalink / raw)
To: qemu-devel; +Cc: Kirill A. Shutemov, Riku Voipio
Since these are only hints, we happily fake them for now
to make applications not barf on ENOSYS.
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
---
linux-user/syscall.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 40c0ed8..4695416 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5578,6 +5578,27 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
case TARGET_NR_mincore:
goto unimplemented;
#endif
+#ifdef TARGET_NR_arm_fadvise64_64
+ case TARGET_NR_arm_fadvise64_64:
+ {
+ /*
+ * arm_fadvise64_64 looks like fadvise64_64 but
+ * with different argument order
+ */
+ abi_long temp;
+ temp = arg3;
+ arg3 = arg4;
+ arg4 = temp;
+ }
+#endif
+#if defined(TARGET_NR_fadvise64_64) || defined(TARGET_NR_arm_fadvise64_64)
+#ifdef TARGET_NR_fadvise64_64
+ case TARGET_NR_fadvise64_64:
+#endif
+ /* This is a hint, so ignoring and returning success is ok. */
+ ret = get_errno(0);
+ break;
+#endif
#ifdef TARGET_NR_madvise
case TARGET_NR_madvise:
/* A straight passthrough may not be safe because qemu sometimes
--
1.5.6.5.GIT
^ permalink raw reply related [flat|nested] 4+ messages in thread* [Qemu-devel] [PATCH] Add mincore syscall
2008-10-01 13:56 [Qemu-devel] [PATCH] Add fadvise64 stubs Kirill A. Shutemov
@ 2008-10-01 13:56 ` Kirill A. Shutemov
2008-10-01 13:56 ` [Qemu-devel] [PATCH] Add readahead syscall Kirill A. Shutemov
0 siblings, 1 reply; 4+ messages in thread
From: Kirill A. Shutemov @ 2008-10-01 13:56 UTC (permalink / raw)
To: qemu-devel; +Cc: Kirill A. Shutemov, Riku Voipio
From: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
---
linux-user/syscall.c | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 4695416..10af2e5 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5576,7 +5576,19 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
goto unimplemented;
#ifdef TARGET_NR_mincore
case TARGET_NR_mincore:
- goto unimplemented;
+ {
+ void *a;
+ ret = -TARGET_EFAULT;
+ if (!(a = lock_user(VERIFY_READ, arg1,arg2, 0)))
+ goto efault;
+ if (!(p = lock_user_string(arg3)))
+ goto mincore_fail;
+ ret = get_errno(mincore(a, arg2, p));
+ unlock_user(p, arg3, ret);
+ mincore_fail:
+ unlock_user(a, arg1, 0);
+ }
+ break;
#endif
#ifdef TARGET_NR_arm_fadvise64_64
case TARGET_NR_arm_fadvise64_64:
--
1.5.6.5.GIT
^ permalink raw reply related [flat|nested] 4+ messages in thread* [Qemu-devel] [PATCH] Add readahead syscall
2008-10-01 13:56 ` [Qemu-devel] [PATCH] Add mincore syscall Kirill A. Shutemov
@ 2008-10-01 13:56 ` Kirill A. Shutemov
2008-10-01 13:56 ` [Qemu-devel] [PATCH] Add inotify syscall family Kirill A. Shutemov
0 siblings, 1 reply; 4+ messages in thread
From: Kirill A. Shutemov @ 2008-10-01 13:56 UTC (permalink / raw)
To: qemu-devel; +Cc: Kirill A. Shutemov
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
---
linux-user/syscall.c | 15 ++++++++++++++-
1 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 10af2e5..e01b4d4 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5749,7 +5749,20 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
break;
#ifdef TARGET_NR_readahead
case TARGET_NR_readahead:
- goto unimplemented;
+#if TARGET_ABI_BITS == 32
+#ifdef TARGET_ARM
+ if (((CPUARMState *)cpu_env)->eabi)
+ {
+ arg2 = arg3;
+ arg3 = arg4;
+ arg4 = arg5;
+ }
+#endif
+ ret = get_errno(readahead(arg1, ((off64_t)arg3 << 32) | arg2, arg4));
+#else
+ ret = get_errno(readahead(arg1, arg2, arg3));
+#endif
+ break;
#endif
#ifdef TARGET_NR_setxattr
case TARGET_NR_setxattr:
--
1.5.6.5.GIT
^ permalink raw reply related [flat|nested] 4+ messages in thread* [Qemu-devel] [PATCH] Add inotify syscall family
2008-10-01 13:56 ` [Qemu-devel] [PATCH] Add readahead syscall Kirill A. Shutemov
@ 2008-10-01 13:56 ` Kirill A. Shutemov
0 siblings, 0 replies; 4+ messages in thread
From: Kirill A. Shutemov @ 2008-10-01 13:56 UTC (permalink / raw)
To: qemu-devel; +Cc: Kirill A. Shutemov, Riku Voipio
From: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
---
linux-user/syscall.c | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index e01b4d4..33e953a 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -177,6 +177,9 @@ static type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, \
#define __NR_sys_unlinkat __NR_unlinkat
#define __NR_sys_utimensat __NR_utimensat
#define __NR_sys_futex __NR_futex
+#define __NR_sys_inotify_init __NR_inotify_init
+#define __NR_sys_inotify_add_watch __NR_inotify_add_watch
+#define __NR_sys_inotify_rm_watch __NR_inotify_rm_watch
#if defined(__alpha__) || defined (__ia64__) || defined(__x86_64__)
#define __NR__llseek __NR_lseek
@@ -270,6 +273,15 @@ _syscall3(int,sys_unlinkat,int,dirfd,const char *,pathname,int,flags)
_syscall4(int,sys_utimensat,int,dirfd,const char *,pathname,
const struct timespec *,tsp,int,flags)
#endif
+#if defined(TARGET_NR_inotify_init) && defined(__NR_inotify_init)
+_syscall0(int,sys_inotify_init)
+#endif
+#if defined(TARGET_NR_inotify_add_watch) && defined(__NR_inotify_add_watch)
+_syscall3(int,sys_inotify_add_watch,int,fd,const char *,pathname,uint32_t,mask)
+#endif
+#if defined(TARGET_NR_inotify_rm_watch) && defined(__NR_inotify_rm_watch)
+_syscall2(int,sys_inotify_rm_watch,int,fd,uint32_t,wd)
+#endif
#if defined(USE_NPTL)
#if defined(TARGET_NR_futex) && defined(__NR_futex)
_syscall6(int,sys_futex,int *,uaddr,int,op,int,val,
@@ -5887,6 +5899,23 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
ret = do_futex(arg1, arg2, arg3, arg4, arg5, arg6);
break;
#endif
+#ifdef TARGET_NR_inotify_init
+ case TARGET_NR_inotify_init:
+ ret = get_errno(sys_inotify_init());
+ break;
+#endif
+#ifdef TARGET_NR_inotify_add_watch
+ case TARGET_NR_inotify_add_watch:
+ p = lock_user_string(arg2);
+ ret = get_errno(sys_inotify_add_watch(arg1, path(p), arg3));
+ unlock_user(p, arg2, 0);
+ break;
+#endif
+#ifdef TARGET_NR_inotify_rm_watch
+ case TARGET_NR_inotify_rm_watch:
+ ret = get_errno(sys_inotify_rm_watch(arg1, arg2));
+ break;
+#endif
default:
unimplemented:
--
1.5.6.5.GIT
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-10-01 21:49 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-19 13:33 [Qemu-devel] [PATCH] Add inotify syscall family Riku Voipio
2008-09-19 14:18 ` Kirill A. Shutemov
2008-10-01 21:49 ` Aurelien Jarno
-- strict thread matches above, loose matches on Subject: below --
2008-10-01 13:56 [Qemu-devel] [PATCH] Add fadvise64 stubs Kirill A. Shutemov
2008-10-01 13:56 ` [Qemu-devel] [PATCH] Add mincore syscall Kirill A. Shutemov
2008-10-01 13:56 ` [Qemu-devel] [PATCH] Add readahead syscall Kirill A. Shutemov
2008-10-01 13:56 ` [Qemu-devel] [PATCH] Add inotify syscall family Kirill A. Shutemov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.