假設我已經定義了以下內容。如何從用戶空間調用compat ioctl?任何人都可以提供一些實例嗎?
#define MY_IOCTL_CMD1 _IOR(MAGIC_NUMBER, 0x01, arg1)
#define MY_IOCTL_CMD2 _IOW(MAGIC_NUMBER, 0x02, arg2)
#ifdef CONFIG_COMPAT
#define MY_COMPAT_IOCTL_CMD1 _IOR(MAGIC_NUMBER, 0x01, compat_arg1)
#define MY_COMPAT_IOCTL_CMD2 _IOW(MAGIC_NUMBER, 0x02, compat_arg2)
#endif
現在,當我們從用戶空間做的ioctl,我們通常做
ioctl(fd, MY_IOCTL_CMD1, &arg1)
問:我們真的需要有一個ioctl與MY_COMPAT_IOCTL_CMD1
的要求嗎?
在devide代碼中,我有如下處理程序定義。 IOCTL:device_ioctl
#ifdef CONFIG_COMPAT
compat_ioctl: device_compat_ioctl
#endif
可有人請提供一些解決這個解釋嗎?