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.
This commit is contained in:
Дмитрий Левин 2016-05-25 15:59:27 +00:00
parent 7e3a381c3d
commit 5d7812a479
3 changed files with 13 additions and 7 deletions

2
NEWS
View File

@ -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,

1
defs.h
View File

@ -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);

17
rtc.c
View File

@ -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
@ -27,9 +27,16 @@
*/
#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: