]> granicus.if.org Git - strace/commitdiff
Mpersify RTC_* ioctl parser
authorDmitry V. Levin <ldv@altlinux.org>
Wed, 25 May 2016 15:59:27 +0000 (15:59 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 25 May 2016 16:36:37 +0000 (16:36 +0000)
* defs.h (rtc_ioctl): Remove.
* rtc.c: Mpersify struct rtc_pll_info and ioctl numbers.
(rtc_ioctl): Mpersify.
* NEWS: Mention this enhancement.

NEWS
defs.h
rtc.c

diff --git a/NEWS b/NEWS
index 6ce1ba570959af378d80b65f866d78f7ef372cf9..3d3a00bb9f44dd181d5378b20941aed9db33a559 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -12,7 +12,7 @@ Noteworthy changes in release 4.12 (????-??-??)
   * Implemented dumping of preadv, preadv2, pwritev, pwritev2, and vmsplice
     syscalls.
   * Implemented decoding of BTRFS_* and UFFDIO_* ioctl commands.
-  * Enhanced decoding of VIDIOC_* ioctl commands.
+  * Enhanced decoding of RTC_* and VIDIOC_* ioctl commands.
   * Enhanced decoding of fstatfs, fstatfs64, get_mempolicy, getdents,
     getdents64, getgroups, getpriority, kill, mbind, migrate_pages, mknod,
     mknodat, personality, poll, ppoll, quotactl, rt_sigpending,
diff --git a/defs.h b/defs.h
index 49c15df90bf22dc45c38faa8b675c9434e88a858..ceb535a1ed97441961b176e3645d1b5c141e5025 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -665,7 +665,6 @@ extern int file_ioctl(struct tcb *, const unsigned int, long);
 extern int loop_ioctl(struct tcb *, const unsigned int, long);
 extern int mtd_ioctl(struct tcb *, const unsigned int, long);
 extern int ptp_ioctl(struct tcb *, const unsigned int, long);
-extern int rtc_ioctl(struct tcb *, const unsigned int, long);
 extern int scsi_ioctl(struct tcb *, const unsigned int, long);
 extern int sock_ioctl(struct tcb *, const unsigned int, long);
 extern int term_ioctl(struct tcb *, const unsigned int, long);
diff --git a/rtc.c b/rtc.c
index f7ea81b8e8bf8ba4d3ccbf471f58d8b7f7a32f38..7f123e487dd5cb101b061119c7b05c8b1dde8481 100644 (file)
--- a/rtc.c
+++ b/rtc.c
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2004 Ulrich Drepper <drepper@redhat.com>
- * Copyright (c) 2004 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2004-2016 Dmitry V. Levin <ldv@altlinux.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  */
 
 #include "defs.h"
+
+#include DEF_MPERS_TYPE(struct_rtc_pll_info)
+
 #include <linux/ioctl.h>
 #include <linux/rtc.h>
 
+typedef struct rtc_pll_info struct_rtc_pll_info;
+
+#include MPERS_DEFS
+
 static void
 print_rtc_time(struct tcb *tcp, const struct rtc_time *rt)
 {
@@ -68,17 +75,17 @@ decode_rtc_wkalrm(struct tcb *tcp, const long addr)
 static void
 decode_rtc_pll_info(struct tcb *tcp, const long addr)
 {
-       struct rtc_pll_info pll;
+       struct_rtc_pll_info pll;
 
        if (!umove_or_printaddr(tcp, addr, &pll))
                tprintf("{pll_ctrl=%d, pll_value=%d, pll_max=%d, pll_min=%d"
                        ", pll_posmult=%d, pll_negmult=%d, pll_clock=%ld}",
                        pll.pll_ctrl, pll.pll_value, pll.pll_max, pll.pll_min,
-                       pll.pll_posmult, pll.pll_negmult, pll.pll_clock);
+                       pll.pll_posmult, pll.pll_negmult, (long) pll.pll_clock);
 }
 
-int
-rtc_ioctl(struct tcb *tcp, const unsigned int code, const long arg)
+MPERS_PRINTER_DECL(int, rtc_ioctl, struct tcb *tcp,
+                  const unsigned int code, const long arg)
 {
        switch (code) {
        case RTC_ALM_READ: