* kvm.c: New file. * Makefile.am (strace_SOURCES): Add kvm.c. * configure.ac (AC_CHECK_HEADERS): Add linux/kvm.h. * defs.h: Declare `kvm' as ioctl doecoder. * ioctl.c: Call `kvm_ioctl'.
Change in v2: * Remove default kvm_ioctl() implementation. Suggested by ldv. Signed-off-by: Masatake YAMATO <yam...@redhat.com> --- Makefile.am | 1 + configure.ac | 1 + defs.h | 1 + ioctl.c | 4 ++++ kvm.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 51 insertions(+) create mode 100644 kvm.c diff --git a/Makefile.am b/Makefile.am index 2586a3e0..60376056 100644 --- a/Makefile.am +++ b/Makefile.am @@ -166,6 +166,7 @@ strace_SOURCES = \ kexec.c \ keyctl.c \ keyctl_kdf_params.h \ + kvm.c \ ldt.c \ link.c \ linux/asm_stat.h \ diff --git a/configure.ac b/configure.ac index 2fc45b76..fa451d84 100644 --- a/configure.ac +++ b/configure.ac @@ -395,6 +395,7 @@ AC_CHECK_HEADERS(m4_normalize([ linux/ip_vs.h linux/ipc.h linux/kcmp.h + linux/kvm.h linux/memfd.h linux/mmtimer.h linux/msg.h diff --git a/defs.h b/defs.h index b1a6b955..0187863e 100644 --- a/defs.h +++ b/defs.h @@ -658,6 +658,7 @@ name ## _ioctl(struct tcb *, unsigned int request, kernel_ulong_t arg) \ DECL_IOCTL(dm); DECL_IOCTL(file); DECL_IOCTL(fs_x); +DECL_IOCTL(kvm); DECL_IOCTL(nsfs); DECL_IOCTL(ptp); DECL_IOCTL(scsi); diff --git a/ioctl.c b/ioctl.c index b61a5be5..35485172 100644 --- a/ioctl.c +++ b/ioctl.c @@ -314,6 +314,10 @@ ioctl_decode(struct tcb *tcp) case 0xfd: return dm_ioctl(tcp, code, arg); #endif +#ifdef HAVE_LINUX_KVM_H + case 0xae: + return kvm_ioctl(tcp, code, arg); +#endif default: break; } diff --git a/kvm.c b/kvm.c new file mode 100644 index 00000000..ebd6be7b --- /dev/null +++ b/kvm.c @@ -0,0 +1,44 @@ +/* + * Support for decoding of KVM_* ioctl commands. + * + * Copyright (c) 2017 Masatake YAMATO <yam...@redhat.com> + * Copyright (c) 2017 Red Hat, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "defs.h" + +#ifdef HAVE_LINUX_KVM_H +#include <linux/kvm.h> + +int +kvm_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg) +{ + switch (code) { + default: + return RVAL_DECODED; + } +} +#endif /* HAVE_LINUX_KVM_H */ -- 2.13.6 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel