]> granicus.if.org Git - strace/blobdiff - rtc.c
mem: decode hugetlb page size in mmap flags
[strace] / rtc.c
diff --git a/rtc.c b/rtc.c
index bf88929d991e61ef0742e8ddcfe64a7f3094e817..9c02cbd50812178b9fc47d5cf06504bd9f7b04b0 100644 (file)
--- a/rtc.c
+++ b/rtc.c
@@ -1,6 +1,7 @@
 /*
  * 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>
+ * Copyright (c) 2015-2017 The strace developers.
  * 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)
 {
@@ -45,7 +53,7 @@ print_rtc_time(struct tcb *tcp, const struct rtc_time *rt)
 }
 
 static void
-decode_rtc_time(struct tcb *tcp, const long addr)
+decode_rtc_time(struct tcb *const tcp, const kernel_ulong_t addr)
 {
        struct rtc_time rt;
 
@@ -54,31 +62,31 @@ decode_rtc_time(struct tcb *tcp, const long addr)
 }
 
 static void
-decode_rtc_wkalrm(struct tcb *tcp, const long addr)
+decode_rtc_wkalrm(struct tcb *const tcp, const kernel_ulong_t addr)
 {
        struct rtc_wkalrm wk;
 
        if (!umove_or_printaddr(tcp, addr, &wk)) {
-               tprintf("{enabled=%d, pending=%d, ", wk.enabled, wk.pending);
+               tprintf("{enabled=%d, pending=%d, time=", wk.enabled, wk.pending);
                print_rtc_time(tcp, &wk.time);
                tprints("}");
        }
 }
 
 static void
-decode_rtc_pll_info(struct tcb *tcp, const long addr)
+decode_rtc_pll_info(struct tcb *const tcp, const kernel_ulong_t 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 *const tcp,
+                  const unsigned int code, const kernel_ulong_t arg)
 {
        switch (code) {
        case RTC_ALM_READ:
@@ -93,7 +101,7 @@ rtc_ioctl(struct tcb *tcp, const unsigned int code, const long arg)
                break;
        case RTC_IRQP_SET:
        case RTC_EPOCH_SET:
-               tprintf(", %lu", arg);
+               tprintf(", %" PRI_klu, arg);
                break;
        case RTC_IRQP_READ:
        case RTC_EPOCH_READ:
@@ -143,5 +151,5 @@ rtc_ioctl(struct tcb *tcp, const unsigned int code, const long arg)
                return RVAL_DECODED;
        }
 
-       return RVAL_DECODED | 1;
+       return RVAL_IOCTL_DECODED;
 }