ioctl number change / backwards compatibility doubt

Greg KH greg at kroah.com
Mon Jan 24 01:20:45 EST 2022


On Mon, Jan 24, 2022 at 05:49:06PM +1300, Paulo Miguel Almeida wrote:
> On Sun, Jan 23, 2022 at 12:04:48PM +0100, Greg KH wrote:
> > On Sun, Jan 23, 2022 at 08:55:30PM +1300, Paulo Miguel Almeida wrote:
> > > 
> > > I googled a fair bit of time and I'm 99% confident that there isn't such
> > > userspace/lib tool so I guess this will have done the hard way :(
> > 
> > If there is no tool, why was the ioctl code written at all?  Something
> > had to call it.
> > 
> 
> when you told me to look for the userspace tool that interfaced with the
> ioctl, my interpretation was that you were referring to something akin
> to what /usr/bin/uname utility is to the syscall uname. Please correct me 
> if I'm wrong.
> 
> re: what calls the ioctl created by the driver.
> 
> I'm led to believe that users of this driver make ioctl sycall
> invocations directly from their application's source code like this:
> 
> #include "pi433_if.h"		/* userspace driver header */
> #include <sys/ioctl.h>		/* ioctl */
> 
> int file_desc = open("/dev/pi433.0", O_RDWR);
> struct pi433_tx_cfg tx_cfg = {
> 	.frequency = 433000000,
> 	.bit_rate = 4800,
> 	<omitted for brevity>...
> };
> 
> int ret_val = ioctl(file_desc, PI433_IOC_WR_TX_CFG, tx_cfg);
> ....

Yes, sorry for the confusion, this is what I am referring to.  Where is
that userspace code as that is the code you will be needing to change if
you want to change this ioctl interface.

thanks,

greg k-h



More information about the Kernelnewbies mailing list