Yeah, that's basically what I had to do in tdfx. You can take a look int
src/sys/dev/tdfx/tdfx_pci.c under tdfx_ioctl(...) to get an idea of what
needs to be done, if you need more info. Tdfx basically implements the
API from device_3dfx in Linux.

Alfred Perlstein had the audacity to say:
> 
> * Roger Hardiman <[EMAIL PROTECTED]> [010326 05:37] wrote:
> > Hi,
> > I'm porting the some linux telephony API drivers over
> > to FreeBSD.
> > 
> > But the author of the linux driver used the 'hack' of
> > returning values from the ioctls as the error result.
> > 
> > eg    volume = ioctl (fd, IXJ_GET_VOLUME)
> > 
> > instead of using
> >       error = ioctl (fd, IXJ_GET_VOLUME, &volume);
> > 
> > 
> > Naturally I want to keep the API the same on FreeBSD
> > so existing apps will compile without change.
> > But right now it looks like I cannot do this.
> > 
> > Is there anything I can do in the FreeBSD driver
> > or in existing source to help, without imposing
> > a new 'BSD' API.
> 
> I just woke up.... er, try this:
> 
> p->p_retval[0] = your_return_value;
> 
> in your ioctl code... or are you saying that the ioctl code
> spams over it?
> 
> -- 
> -Alfred Perlstein - [[EMAIL PROTECTED]|[EMAIL PROTECTED]]
> Represent yourself, show up at BABUG http://www.babug.org/
> 
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message
> 

PGP signature

Reply via email to