[PATCH] Add ioctl definitions for 16-bit alignment

Dmitry V. Levin ldv at altlinux.org
Tue Nov 22 02:18:55 UTC 2016


On Mon, Nov 14, 2016 at 02:00:53AM +0300, Dmitry V. Levin wrote:
> On Sat, Nov 12, 2016 at 03:58:26PM +0100, Andreas Schwab wrote:
> > * Makefile.am (EXTRA_DIST): Add linux/32/ioctls_inc_align16.h.
> > * linux/32/ioctls_inc_align16.h: New file.
> > * linux/32/ioctls_inc.h [M68K]: Include it.
> > * maint/ioctls_sym.sh: Handle missing <asm/kvm.h>.
> 
> Thanks.
> 
> [...]
> > --- a/maint/ioctls_sym.sh
> > +++ b/maint/ioctls_sym.sh
> > @@ -244,19 +244,14 @@ __EOF__
> >  			;;
> >  		*linux/kvm.h)
> >  			cat <<'__EOF__'
> > -#if !(defined __powerpc__)
> >  struct kvm_allocate_rma { __u32 unused[2]; };
> >  struct kvm_create_spapr_tce { __u32 unused[3]; };
> >  struct kvm_create_spapr_tce_64 { __u32 unused[8]; };
> >  struct kvm_get_htab_fd { __u32 unused[8]; };
> >  struct kvm_rtas_token_args { __u8 unused[128]; };
> > -#endif
> >  
> > -#if !(defined __arm64__ || defined __arm__)
> >  struct kvm_vcpu_init { __u32 unused[8]; };
> > -#endif
> >  
> > -#if !(defined __x86_64__ || defined __i386__)
> >  struct kvm_cpuid { __u32 unused[2]; };
> >  struct kvm_cpuid2 { __u32 unused[2]; };
> >  struct kvm_debugregs { __u32 unused[32]; };
> > @@ -271,7 +266,13 @@ struct kvm_x86_mce { __u32 unused[16]; };
> >  struct kvm_xcrs { __u32 unused[98]; };
> >  struct kvm_xen_hvm_config { __u32 unused[14]; };
> >  struct kvm_xsave { __u32 unused[1024]; };
> > -#endif
> > +
> > +struct kvm_debug_exit_arch { __u32 unused32[8]; };
> > +struct kvm_sync_regs { };
> > +struct kvm_guest_debug_arch { __u32 unused[16]; };
> > +struct kvm_regs { __u32 unused[36]; };
> > +struct kvm_sregs { __u32 unused[78]; };
> > +struct kvm_fpu { __u32 unused[72]; };
> >  __EOF__
> >  			;;
> >  		*linux/sonet.h)
> > @@ -387,6 +388,12 @@ s/^\([[:space:]]\+[^),]\+)\),$/\1/' >> "$tmpdir/$f"
> >  			# Create the file it attempts to include.
> >  			mkdir -p "$tmpdir/linux"
> >  			touch "$tmpdir/linux/compiler.h"
> > +			;;
> > +		*linux/kvm.h)
> > +			# Create the file it attempts to include.
> > +			mkdir -p "$tmpdir/asm"
> > +			touch "$tmpdir/asm/kvm.h"
> > +			;;
> >  	esac
> >  	if [ -f "$tmpdir/$f" ]; then
> >  		s="$tmpdir/$f"
> 
> This part of the change looks problematic because the types defined
> in asm/kvm.h are arch-dependent and vary in size.  Perhaps it was not
> a good idea to include these arch-specific KVM constants into ioctls_inc*.h,
> and they should be moved to ioctls_arch*.h files instead.

This is what I've done after all: KVM_* ioctl entries are now provided
by ioctls_arch0.h files on those architectures that have asm/kvm.h files.

The patch has been applied without maint/ioctls_sym.sh hunk and without
KVM_* ioctl entries which are not relevant to m68k.


-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20161122/0b4e5b5a/attachment.bin>


More information about the Strace-devel mailing list