Re: [Qemu-devel] [PATCH 11/16] linux-user: support ioprio_{get, set} syscalls

2014-06-20 Thread Riku Voipio
On Sun, Jun 15, 2014 at 05:18:28PM +0100, Paul Burton wrote:
 Add support for the ioprio_get  ioprio_set syscalls, allowing their
 use by target programs.
 
 Signed-off-by: Paul Burton p...@archlinuxmips.org
 ---
  linux-user/syscall.c | 18 ++
  1 file changed, 18 insertions(+)
 
 diff --git a/linux-user/syscall.c b/linux-user/syscall.c
 index 0830205..c7f176a 100644
 --- a/linux-user/syscall.c
 +++ b/linux-user/syscall.c
 @@ -252,6 +252,12 @@ _syscall2(int, capget, struct __user_cap_header_struct 
 *, header,
struct __user_cap_data_struct *, data);
  _syscall2(int, capset, struct __user_cap_header_struct *, header,
struct __user_cap_data_struct *, data);
 +#ifdef __NR_ioprio_get
 +_syscall2(int, ioprio_get, int, which, int, who)
 +#endif
 +#ifdef __NR_ioprio_set
 +_syscall3(int, ioprio_set, int, which, int, who, int, ioprio)
 +#endif

Since this is only used if both host and guest, thes needs to be
protected by both TARGET_NR_ioprio_get and __NR_ioprio_get. Else we get
compile error on some targets:

qemu/linux-user/syscall.c:256:16: error: ‘ioprio_get’ defined but not used 
[-Werror=unused-function]
 _syscall2(int, ioprio_get, int, which, int, who)
^
qemu/linux-user/syscall.c:147:13: note: in definition of macro ‘_syscall2’
 static type name (type1 arg1,type2 arg2)  \
 ^

  static bitmask_transtbl fcntl_flags_tbl[] = {
{ TARGET_O_ACCMODE,   TARGET_O_WRONLY,O_ACCMODE,   O_WRONLY,},
 @@ -9460,6 +9466,18 @@ abi_long do_syscall(void *cpu_env, int num, abi_long 
 arg1,
  break;
  #endif
  
 +#if defined(TARGET_NR_ioprio_get)  defined(__NR_ioprio_get)
 +case TARGET_NR_ioprio_get:
 +ret = get_errno(ioprio_get(arg1, arg2));
 +break;
 +#endif
 +
 +#if defined(TARGET_NR_ioprio_set)  defined(__NR_ioprio_set)
 +case TARGET_NR_ioprio_set:
 +ret = get_errno(ioprio_set(arg1, arg2, arg3));
 +break;
 +#endif
 +
  default:
  unimplemented:
  gemu_log(qemu: Unsupported syscall: %d\n, num);
 -- 
 2.0.0
 



[Qemu-devel] [PATCH 11/16] linux-user: support ioprio_{get, set} syscalls

2014-06-15 Thread Paul Burton
Add support for the ioprio_get  ioprio_set syscalls, allowing their
use by target programs.

Signed-off-by: Paul Burton p...@archlinuxmips.org
---
 linux-user/syscall.c | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 0830205..c7f176a 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -252,6 +252,12 @@ _syscall2(int, capget, struct __user_cap_header_struct *, 
header,
   struct __user_cap_data_struct *, data);
 _syscall2(int, capset, struct __user_cap_header_struct *, header,
   struct __user_cap_data_struct *, data);
+#ifdef __NR_ioprio_get
+_syscall2(int, ioprio_get, int, which, int, who)
+#endif
+#ifdef __NR_ioprio_set
+_syscall3(int, ioprio_set, int, which, int, who, int, ioprio)
+#endif
 
 static bitmask_transtbl fcntl_flags_tbl[] = {
   { TARGET_O_ACCMODE,   TARGET_O_WRONLY,O_ACCMODE,   O_WRONLY,},
@@ -9460,6 +9466,18 @@ abi_long do_syscall(void *cpu_env, int num, abi_long 
arg1,
 break;
 #endif
 
+#if defined(TARGET_NR_ioprio_get)  defined(__NR_ioprio_get)
+case TARGET_NR_ioprio_get:
+ret = get_errno(ioprio_get(arg1, arg2));
+break;
+#endif
+
+#if defined(TARGET_NR_ioprio_set)  defined(__NR_ioprio_set)
+case TARGET_NR_ioprio_set:
+ret = get_errno(ioprio_set(arg1, arg2, arg3));
+break;
+#endif
+
 default:
 unimplemented:
 gemu_log(qemu: Unsupported syscall: %d\n, num);
-- 
2.0.0