[alsa-devel] Problems with 32 bit apps on 64 bit OS using dmix and snd-ioctl32

Takashi Iwai tiwai at suse.de
Thu Sep 6 15:06:22 CEST 2007


At Thu, 06 Sep 2007 13:15:11 +0100,
James Pearson wrote:
> 
> Takashi Iwai wrote:
> > 
> > Ah, I see the point.
> > 
> > With ALSA 1.0.15rc1, we can safely uncomment #if 0 .. #endif in
> > timer32_new.c and timer32_old.c.  These no longer conflict with
> > existing ioctls.  I forgot about it.
> > 
> > The patch is below.
> > 
> > 
> > Takashi
> > 
> > diff -r adfe4179d670 acore/ioctl32/timer32_new.c
> > --- a/acore/ioctl32/timer32_new.c	Fri Aug 31 12:22:35 2007 +0200
> > +++ b/acore/ioctl32/timer32_new.c	Thu Sep 06 14:06:40 2007 +0200
> > @@ -88,18 +88,11 @@ struct ioctl32_mapper timer_mappers[] = 
> >  	{ SNDRV_TIMER_IOCTL_INFO32, AP(timer_info) },
> >  	MAP_COMPAT(SNDRV_TIMER_IOCTL_PARAMS),
> >  	{ SNDRV_TIMER_IOCTL_STATUS32, AP(timer_status) },
> > -#if 0
> > -	/* ** FIXME **
> > -	 * The following four entries are disabled because they conflict
> > -	 * with the TCOC* definitions.
> > -	 * Unfortunately, the current ioctl32 wrapper uses a single
> > -	 * hash table for all devices.  Once when the wrapper is fixed
> > -	 * with the table based on devices, they'll be back again.
> > -	 */
> > +	/* The ioctls are changed, so we can enable them again */
> > +	/* The old ioctls conflict with TIOC_* definitions */
> >  	MAP_COMPAT(SNDRV_TIMER_IOCTL_START),
> >  	MAP_COMPAT(SNDRV_TIMER_IOCTL_STOP),
> >  	MAP_COMPAT(SNDRV_TIMER_IOCTL_CONTINUE),
> >  	MAP_COMPAT(SNDRV_TIMER_IOCTL_PAUSE),
> > -#endif
> >  	{ 0 },
> >  };
> > diff -r adfe4179d670 acore/ioctl32/timer32_old.c
> > --- a/acore/ioctl32/timer32_old.c	Fri Aug 31 12:22:35 2007 +0200
> > +++ b/acore/ioctl32/timer32_old.c	Thu Sep 06 14:06:40 2007 +0200
> > @@ -88,18 +88,11 @@ struct ioctl32_mapper timer_mappers[] = 
> >  	{ SNDRV_TIMER_IOCTL_INFO32, AP(timer_info) },
> >  	MAP_COMPAT(SNDRV_TIMER_IOCTL_PARAMS),
> >  	{ SNDRV_TIMER_IOCTL_STATUS32, AP(timer_status) },
> > -#if 0
> > -	/* ** FIXME **
> > -	 * The following four entries are disabled because they conflict
> > -	 * with the TCOC* definitions.
> > -	 * Unfortunately, the current ioctl32 wrapper uses a single
> > -	 * hash table for all devices.  Once when the wrapper is fixed
> > -	 * with the table based on devices, they'll be back again.
> > -	 */
> > +	/* The ioctls are changed, so we can enable them again */
> > +	/* The old ioctls conflict with TIOC_* definitions */
> >  	MAP_COMPAT(SNDRV_TIMER_IOCTL_START),
> >  	MAP_COMPAT(SNDRV_TIMER_IOCTL_STOP),
> >  	MAP_COMPAT(SNDRV_TIMER_IOCTL_CONTINUE),
> >  	MAP_COMPAT(SNDRV_TIMER_IOCTL_PAUSE),
> > -#endif
> >  	{ 0 },
> >  };
> 
> Thanks!
> 
> I guess this change also needs to go into the next rc ...

Yeah, the patches were already merged to HG tree.


Takashi



More information about the Alsa-devel mailing list