linux - linux:对内核模块的ioctl请求超时
问题描述
我为 FPGA 编写了一个内核模块,它每 N 毫秒生成一个中断。
在应用程序中,代码为:
ioctl(m_Handle, INTERRUPT_REQUEST_CODE,&Request);
在内核模块中,处理这个 ioctl 的情况是:
case INTERRUPT_REQUEST_CODE:
copy_from_user(&InterruptRequest, (void*)IoctlParam, sizeof(INTERRUPT_REQUEST));
rc=wait_event_interruptible_timeout(sWaitQueuePacket, sInterruptFlagPacket != 0, Request.timeout);
sInterruptFlagPacket = 0;
InterruptRequest.Error = rc;
copy_to_user(&InterruptRequest, (void*)IoctlParam, sizeof(INTERRUPT_REQUEST));
break;
这是在应用程序中通知超时的正确方法吗?
谢谢你,兹维卡
解决方案
推荐阅读
- c - 为什么 Windows Defender 将编译的 C 可执行文件检测为病毒?
- javascript - 类型错误:Vue.js 中的“_vm.KisanData 未定义”
- r - Reticulate 找不到 Anaconda 安装
- swift - 如何使 CAshapeLayer 适合按钮?
- javascript - 我可以使用哪种图表来使用 ChartJS(或类似的)来实现这一点?
- c++ - 如何完全禁用 qtableview 的选择(对于所有单元格)?
- firebase - 想要在默认的 android 抽屉上打印电子邮件但收到一些“Closure()”错误
- swift - 绑定更改后未重新评估 SwiftUI 主体
- flutter - 颤动的粘性标题列表在滚动时添加项目
- nginx - NGINX 根据位置值重定向到代理(代理通行证)