On Tue, Jul 10, 2007 at 10:37:31PM -0600, LaMont Jones wrote:
> Given that the kernel defines __NR_ioprio_{set,get} for every
> architecture, is there any reason that schedutils/ionice.c should have
> its own copy of some (but not all) of those?  I think that code wants to
> be removed...

 Good point. Thanks.

 The code is probably from time when there wasn't SYS_ioprio_{set,get}
 provided by any glibc version. (The orignal version is probably from
 Documentation/block/ioprio.txt)

 Fixed.


    Karel



commit 4dfadf9c3abcdd9171a7bd81aedd4ec67d38d7b8
Author: Karel Zak <[EMAIL PROTECTED]>
Date:   Mon Jul 16 11:56:23 2007 +0200

    ionice: prefer SYS_ioprio_{set,get} from glibc to hardcoded version
    
    It's better to use glibc SYS_ioprio_{set,get} definitions rather than an
    incomplete (not all archs) and hardcoded version from ionice.c.
    
    Signed-off-by: Karel Zak <[EMAIL PROTECTED]>

diff --git a/schedutils/ionice.c b/schedutils/ionice.c
index fe3b4a9..ac72121 100644
--- a/schedutils/ionice.c
+++ b/schedutils/ionice.c
@@ -15,39 +15,46 @@
 #include <sys/syscall.h>
 #include <asm/unistd.h>
 
-#if defined(__i386__)
-#define __NR_ioprio_set                289
-#define __NR_ioprio_get                290
-#elif defined(__powerpc__) || defined(__powerpc64__)
-#define __NR_ioprio_set                273
-#define __NR_ioprio_get                274
-#elif defined(__x86_64__)
-#define __NR_ioprio_set                251
-#define __NR_ioprio_get                252
-#elif defined(__ia64__)
-#define __NR_ioprio_set                1274
-#define __NR_ioprio_get                1275
-#elif defined(__alpha__)
-#define __NR_ioprio_set                442
-#define __NR_ioprio_get                443
-#elif defined(__s390x__) || defined(__s390__)
-#define __NR_ioprio_set                282
-#define __NR_ioprio_get                283
-#elif defined(__sparc__)
-#define __NR_ioprio_set                196
-#define __NR_ioprio_get                218
-#else
-#error "Unsupported arch"
-#endif
+#if !defined(SYS_ioprio_get) || !defined(SYS_ioprio_set)
+
+# if defined(__i386__)
+#  define __NR_ioprio_set              289
+#  define __NR_ioprio_get              290
+# elif defined(__powerpc__) || defined(__powerpc64__)
+#  define __NR_ioprio_set              273
+#  define __NR_ioprio_get              274
+# elif defined(__x86_64__)
+#  define __NR_ioprio_set              251
+#  define __NR_ioprio_get              252
+# elif defined(__ia64__)
+#  define __NR_ioprio_set              1274
+#  define __NR_ioprio_get              1275
+# elif defined(__alpha__)
+#  define __NR_ioprio_set              442
+#  define __NR_ioprio_get              443
+# elif defined(__s390x__) || defined(__s390__)
+#  define __NR_ioprio_set              282
+#  define __NR_ioprio_get              283
+# elif defined(__sparc__) || defined(__sparc64__)
+#  define __NR_ioprio_set              196
+#  define __NR_ioprio_get              218
+# else
+#  error "Unsupported arch"
+# endif
+
+# define SYS_ioprio_get                __NR_ioprio_get
+# define SYS_ioprio_set                __NR_ioprio_set
+
+#endif /* !SYS_ioprio_get */
 
 static inline int ioprio_set(int which, int who, int ioprio)
 {
-       return syscall(__NR_ioprio_set, which, who, ioprio);
+       return syscall(SYS_ioprio_set, which, who, ioprio);
 }
 
 static inline int ioprio_get(int which, int who)
 {
-       return syscall(__NR_ioprio_get, which, who);
+       return syscall(SYS_ioprio_get, which, who);
 }
 
 enum {

-- 
 Karel Zak  <[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to