从 32 位应用程序到 64 位驱动程序的 ioctl 调用
我必须从 32 位应用程序对 64 位驱动程序代码进行 ioctl 调用。我已发送一个结构作为 ioctl 调用的参数。由于用户和驱动程序代码的架构不同,我看到很多对齐和填充问题。有什么方法可以解决由于用户和驱动程序代码的架构差异而创建的这种结构和填充吗?
I have to make a ioctl call to the 64 bit driver code from a 32 bit application. I have send a structure as an argument to ioctl call. I see lot of alignment and padding issues because of difference in architecture of user and driver code. Is there any way to solve this structure and padding created due to difference in architecture of user and driver code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
检查编译器是否有“pack”开关 - 它可能称为对齐或填充。对于设备驱动程序,数据必须完全按照预期发送/接收。
check your compiler for a 'pack' switch - it might be referred to as alignment or padding. In the case of a device driver, the data must be sent/recv'd exactly as expected.