On Tue, Dec 27, 2011 at 1:39 PM, Chetan Nanda <chetannanda@xxxxxxxxx> wrote: > Hi All, > > I am facing a strange issue with the ioctl commands, and not able to find > what wrong I am doing. > I am trying with a dummy kernel driver and implemented ioctl command as > follow: > > in my_ioctl.h > #define READHWREG_MAGIC_NUMBER 0x15 > #define READHWREG_CAM_READPE _IOR(READHWREG_MAGIC_NUMBER, 1, int*) > > But the value of 'READHWREG_CAM_READPE' is comes out to be different in > userspace (in the application) and kernel space (in the driver). > > In userspace I used ioctl as > ... > printf("\ncommand %x \n",READHWREG_CAM_READPE); <-- command 80041501 > error = ioctl(g_DevFileId, READHWREG_CAM_READPE); > .. > > In kernel space > > int readHwReg_ioctl(struct inode *node, struct file *filp, unsigned int > cmd, unsigned long arg) > { > ... > printk("\n%d %s cmd = %x\n",__LINE__,__FUNCTION__,cmd); <--- cmd = > bee6a9d4 > ... > } > > > I am not able to figure out the root cause, > Please help to check... I think that the command is actually sent via the arg parameter, which is an address (it's a pointer to the value your are sending to kernel space). _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies