Repository navigation
Conversation
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: componentsReviewers: @Maihuanyi Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-11-01 11:37 CST)
📝 Review Instructions
|
|
…dev command collisions: class in high byte, index low byte, drop RT_DEVICE_CTRL_MASK.
… nullness
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
关联issue:#5073
F_GETFL (=3) 在数值上与 RT_DEVICE_CTRL_CONFIG (=3) 撞码,F_SETFL (=4) 与 RT_DEVICE_CTRL_CLOSE (=4) 撞码。两套 cmd 共享同一个 int 参数,POSIX 路径下(fcntl → dfs_file_ioctl / dfs_file_fcntl → fops->ioctl)会被 driver 误解释。
你的解决方案是什么 (what is your solution)
1.
include/rtdef.h:把通用 cmd 编码从"低字节 index"换成"高字节 class + 低字节 index"。引入
RT_DEVICE_CTRL_BASE(Type) = (RT_Device_Class_##Type + 1) * 0x100(include/rtdef.h:1321)。通用RT_DEVICE_CTRL_*9 个宏改用BASE(Unknown) + 1..9(include/rtdef.h:1332-1340),实测落在0x2001..0x2009,与 POSIX 0–4 完全错开。RT_DEVICE_CTRL_MASK=0x1f跟 BASE 宏不兼容(BASE 把 class 放高字节,MASK 只看低 5 位),且全仓 grep 零 caller,删。拆成两个 mask:请提供验证的bsp和config (provide the config and bsp)
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up