]> granicus.if.org Git - strace/blobdiff - ioctl.c
2003-09-06 Dmitry V. Levin <ldv@altlinux.org>
[strace] / ioctl.c
diff --git a/ioctl.c b/ioctl.c
index 5d09328b8342fd55f979ca14266da068cc8ce58e..a49e7d6e6ec137d5b07208bd8138985adfc86afc 100644 (file)
--- a/ioctl.c
+++ b/ioctl.c
@@ -78,7 +78,7 @@ const void *b;
        return (code1 > code2) ? 1 : (code1 < code2) ? -1 : 0;
 }
 
-char *
+struct ioctlent *
 ioctl_lookup(code)
 long code;
 {
@@ -90,7 +90,24 @@ long code;
 #endif
        iop = (struct ioctlent *) bsearch((char *) &ioent, (char *) ioctlent,
                        nioctlents, sizeof(struct ioctlent), compare);
-       return iop ? iop->symbol : NULL;
+       while (iop > ioctlent)
+               if ((--iop)->code != ioent.code) {
+                       iop++;
+                       break;
+               }
+       return iop;
+}
+
+struct ioctlent *
+ioctl_next_match(iop)
+struct ioctlent *iop;
+{
+       long code;
+
+       code = (iop++)->code;
+       if (iop < ioctlent + nioctlents && iop->code == code)
+               return iop;
+       return NULL;
 }
 
 int