]> granicus.if.org Git - strace/blobdiff - hdio.c
Add a enum for decoding to tprint_iov() and tprint_iov_upto()
[strace] / hdio.c
diff --git a/hdio.c b/hdio.c
index 1553825aa5b6a61fae76aef6d5495a220baa4a6d..e9dbdf1ac11d4b25d32e8b806879fcf72df85550 100644 (file)
--- a/hdio.c
+++ b/hdio.c
  */
 
 #include "defs.h"
+
+#include DEF_MPERS_TYPE(struct_hd_geometry)
+
 #include <linux/hdreg.h>
 
-int
-hdio_ioctl(struct tcb *tcp, const unsigned int code, const long arg)
+typedef struct hd_geometry struct_hd_geometry;
+
+#include MPERS_DEFS
+
+MPERS_PRINTER_DECL(int, hdio_ioctl, struct tcb *tcp,
+                  const unsigned int code, const long arg)
 {
        switch (code) {
        case HDIO_GETGEO:
                if (entering(tcp))
                        return 0;
                else {
-                       struct hd_geometry geo;
+                       struct_hd_geometry geo;
 
                        tprints(", ");
                        if (!umove_or_printaddr(tcp, arg, &geo))
                                tprintf("{heads=%u, sectors=%u, "
-                                       "cylinders=%u, start=%lu}",
-                                       (unsigned)geo.heads,
-                                       (unsigned)geo.sectors,
-                                       (unsigned)geo.cylinders,
-                                       geo.start);
+                                       "cylinders=%hu, start=%lu}",
+                                       (unsigned) geo.heads,
+                                       (unsigned) geo.sectors,
+                                       geo.cylinders,
+                                       (unsigned long) geo.start);
                }
                break;
        default: