CV-Bowen opened a new pull request, #20898:
URL: https://github.com/apache/nuttx/pull/20898
## Summary
Continue moving the rpmsg transport internals out of the public header
(the first part was f56ea304790):
- add rpmsg_foreach() in the private drivers/rpmsg/rpmsg.h and make
rpmsg_ioctl() a callback on top of it, so code inside drivers/rpmsg
can walk the rpmsg devices without open-coding the list and lock; the
lock is skipped in interrupt context and in the idle task, as
rpmsg_modify_signals() already does
- define struct rpmsg_ping_s (the RPMSGIOC_PING argument) in
include/nuttx/rpmsg/rpmsg.h and remove include/nuttx/rpmsg/rpmsg_ping.h
- move struct rpmsg_s and struct rpmsg_ops_s to drivers/rpmsg/rpmsg.h;
only the transports in drivers/rpmsg use them
The first commit only fixes existing nxstyle errors in rpmsg.c.
## Impact
- `include/nuttx/rpmsg/rpmsg_ping.h` is removed. Out-of-tree code that
included it should include `<nuttx/rpmsg/rpmsg.h>`, which now defines
`struct rpmsg_ping_s`. Nothing in nuttx or nuttx-apps includes it.
- `struct rpmsg_s` and `struct rpmsg_ops_s` are no longer public. No user
outside drivers/rpmsg in nuttx or nuttx-apps; `tools/pynuttx/nxgdb`
only reads them from debug info.
- No Kconfig change.
## Testing
Host: Ubuntu 22.04.5 LTS x86_64, QEMU version 10.2.1, sim: cc (Ubuntu
13.1.0-8ubuntu1~22.04) 13.1.0, qemu-armv8a: aarch64-none-elf-gcc (Arm GNU
Toolchain 12.2.Rel1 (Build arm-12.24)) 12.2.1 20221205
rpmsg_ioctl() now goes through rpmsg_foreach(); `rpmsg dump all` and
`rpmsg ping all` below exercise it on both a virtio (sim) and an ivshmem
plus rpmsg_port_uart (qemu-armv8a) setup.
Baseline (`test.sh`, cases: baseline.yaml):
- host: Ubuntu 22.04.5 LTS x86_64, QEMU version 10.2.1, sim: cc (Ubuntu
13.1.0-8ubuntu1~22.04) 13.1.0, qemu-armv8a: aarch64-none-elf-gcc (Arm GNU
Toolchain 12.2.Rel1 (Build arm-12.24)) 12.2.1 20221205
- tested: nuttx 82363c37c22 apps ea8addeaf
- qemu-armv8a built with test-only overlay: disabled LIBC_ENVPATH
BINFMT_CHECKEXEC
- sim:rpserver + sim:rpproxy: PASS
- [x] `uname -a` (server)
- [x] `rpmsg dump all` (server)
- [x] `rpmsg ping all 10 1024 3 0` (server)
- [x] `uname -a` (proxy)
- [x] `rpmsg ping all 10 1024 3 0` (proxy)
- [x] `mount -t rpmsgfs -o cpu=server,fs=/proc /sp` (proxy)
- [x] `cat /sp/version` (proxy)
- [x] `rpmsg dump all` (proxy)
- qemu-armv8a:rpserver + qemu-armv8a:rpproxy: PASS
- [x] `uname -a` (server)
- [x] `uname -a` (proxy)
- [x] `rpmsg dump all` (server)
- [x] `rpmsg ping all 10 1024 3 0` (server)
- [x] `rpmsg ping all 10 1024 3 0` (proxy)
- [x] `mount -t rpmsgfs -o cpu=server,fs=/proc /sp` (proxy)
- [x] `cat /sp/version` (proxy)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]