From: Dmitry V. Levin Date: Wed, 25 May 2016 15:59:27 +0000 (+0000) Subject: Mpersify RTC_* ioctl parser X-Git-Tag: v4.12~54 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5d7812a4798777840e7e6ee50c9fdde40b4fc99c;p=strace Mpersify RTC_* ioctl parser * defs.h (rtc_ioctl): Remove. * rtc.c: Mpersify struct rtc_pll_info and ioctl numbers. (rtc_ioctl): Mpersify. * NEWS: Mention this enhancement. --- diff --git a/NEWS b/NEWS index 6ce1ba57..3d3a00bb 100644 --- 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 49c15df9..ceb535a1 100644 --- 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 f7ea81b8..7f123e48 100644 --- a/rtc.c +++ b/rtc.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2004 Ulrich Drepper - * Copyright (c) 2004 Dmitry V. Levin + * Copyright (c) 2004-2016 Dmitry V. Levin * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,9 +27,16 @@ */ #include "defs.h" + +#include DEF_MPERS_TYPE(struct_rtc_pll_info) + #include #include +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: