]> err.no Git - util-linux/commitdiff
elvtune: use get_linux_version()
authorKarel Zak <kzak@redhat.com>
Wed, 7 Nov 2007 20:25:48 +0000 (21:25 +0100)
committerKarel Zak <kzak@redhat.com>
Wed, 7 Nov 2007 20:25:48 +0000 (21:25 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
disk-utils/Makefile.am
disk-utils/elvtune.c
include/blkdev.h

index 9ee985741fbe1238ff8aae69d3be3f3e0e69ca0f..397d8efb453b52d62cd08298f4a0d001785db22f 100644 (file)
@@ -15,6 +15,7 @@ usrbinexec_PROGRAMS = fdformat isosize
 if BUILD_ELVTUNE
 sbin_PROGRAMS += elvtune
 man_MANS += elvtune.8
+elvtune_SOURCES = elvtune.c ../lib/linux_version.c
 endif
 
 if HAVE_RAW
index dc264658f6d03351765897a6b99d9346b110d209..fc7550ba6150ce350d808b2156932d8566e12629 100644 (file)
@@ -30,6 +30,8 @@
 #include <sys/ioctl.h>
 #include <sys/utsname.h>
 #include "nls.h"
+#include "blkdev.h"
+#include "linux_version.h"
 
 /* this has to match with the kernel structure */
 /* current version for ac19 and 2.2.16 */
@@ -40,10 +42,6 @@ typedef struct blkelv_ioctl_arg_s {
        int max_bomb_segments;
 } blkelv_ioctl_arg_t;
 
-/* ioctls introduced in 2.2.16, removed in 2.5.58 */
-#define BLKELVGET   _IOR(0x12,106,size_t)
-#define BLKELVSET   _IOW(0x12,107,size_t)
-
 static void
 usage(void) {
        fprintf(stderr, "elvtune (%s)\n", PACKAGE_STRING);
@@ -61,23 +59,6 @@ version(void) {
        fprintf(stderr, "elvtune (%s)\n", PACKAGE_STRING);
 }
 
-#define MAKE_VERSION(p,q,r)    (65536*(p) + 256*(q) + (r))
-
-static int
-linux_version_code(void) {
-       struct utsname my_utsname;
-       int p, q, r;
-
-       if (uname(&my_utsname) == 0) {
-               p = atoi(strtok(my_utsname.release, "."));
-               q = atoi(strtok(NULL, "."));
-               r = atoi(strtok(NULL, "."));
-               return MAKE_VERSION(p,q,r);
-       }
-       return 0;
-}
-
-
 int
 main(int argc, char * argv[]) {
        int read_value = 0xbeefbeef, write_value = 0xbeefbeef, bomb_value = 0xbeefbeef;
@@ -123,7 +104,7 @@ main(int argc, char * argv[]) {
 
        if (optind >= argc)
                fprintf(stderr, "missing blockdevice, use -h for help\n"), exit(1);
-               
+
        while (optind < argc) {
                devname = argv[optind++];
 
@@ -141,7 +122,7 @@ main(int argc, char * argv[]) {
                        int errsv = errno;
                        perror("ioctl get");
                        if ((errsv == EINVAL || errsv == ENOTTY) &&
-                           linux_version_code() >= MAKE_VERSION(2,5,58)) {
+                           get_linux_version() >= KERNEL_VERSION(2,5,58)) {
                                fprintf(stderr,
                                        "\nelvtune is only useful on older "
                                        "kernels;\nfor 2.6 use IO scheduler "
index 8065acc1e9f4027709c741e38fbe602dc731ec88..1f0fe674e4d10cc265690c0f963fedd46e8a9ba8 100644 (file)
@@ -21,6 +21,7 @@
 #define BLKSECTGET _IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */
 #define BLKSSZGET  _IO(0x12,104)/* get block device sector size */
 
+/* ioctls introduced in 2.2.16, removed in 2.5.58 */
 #define BLKELVGET  _IOR(0x12,106,size_t) /* elevator get */
 #define BLKELVSET  _IOW(0x12,107,size_t) /* elevator set */