[DM/PCI] Add /proc access in RT-Smart user#10196
Conversation
1. Add ROM base info. 2. Save th PM status. Signed-off-by: GuEe-GUI <2991707448@qq.com>
There was a problem hiding this comment.
Pull Request Overview
This PR introduces /proc filesystem support for PCI devices in RT-Smart, enabling runtime access to PCI configuration and ROM base information. Key changes include the addition of a new procfs interface in procfs.h/procfs.c, integration of procfs attach/detach calls in PCI probe and remove workflows, and updates to PCI device structures and ROM resource management.
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| components/drivers/pci/procfs.h | New header defining procfs related functions for PCI devices. |
| components/drivers/pci/procfs.c | Implements read, write, and initialization for procfs access. |
| components/drivers/pci/probe.c | Integrates procfs attach/detach in device scan and removal. |
| components/drivers/pci/pme.c | Updates power management status upon configuration writes. |
| components/drivers/pci/pci.c | Sets ROM base, size, and flags on PCI device resource probing. |
| components/drivers/pci/SConscript | Conditional inclusion of procfs.c based on build dependency. |
| components/drivers/include/drivers/pci.h | Augments the PCI device structure with power management and ROM fields. |
| rt_pci_read_config_u8(pdev, pos, &val); | ||
| copy_to_user(buf, &val, sizeof(val)); | ||
|
|
||
| ++buf; |
There was a problem hiding this comment.
Incrementing a void pointer (buf) directly may cause portability issues with strict C standards. Consider casting buf to a char* before performing pointer arithmetic, for example: buf = (char*)buf + 1;
| ++buf; | |
| buf = (char*)buf + 1; |
There was a problem hiding this comment.
This is piece of garbage C standard imposes.
| copy_from_user(&val, buf, sizeof(val)); | ||
| rt_pci_write_config_u8(pdev, pos, val); | ||
|
|
||
| ++buf; |
There was a problem hiding this comment.
Incrementing a const void pointer (buf) directly for pointer arithmetic may lead to undefined behavior. Consider casting buf to a const char* before performing arithmetic, for example: buf = (const char*)buf + 1;
| ++buf; | |
| buf = (const char*)buf + 1; |
| @@ -0,0 +1,31 @@ | |||
| /* | |||
There was a problem hiding this comment.
这个命名似乎不完全适合,可以命名成 pci_procfs.h/pci_procfs.c 以避免文件命名上的冲突
There was a problem hiding this comment.
components/drivers/pci 目录属于 PCI 私有目录,不会导致导致其他模块混合使用,PCI 自己也是使用相对目录的方式导入。
如果改成 pci_procfs,会导致当前目录的命名风格就不统一。
拉取/合并请求描述:(PR description)
[
Build pciutils for testing:
The
ZLIBcan setyesor ignore if build in userapp]
当前拉取/合并请求的状态 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