How nxp-auto-linux/ipc-shm works
IPCF is a Linux shared-memory IPC driver for communication between Linux and an RTOS on different cores of the same processor. Its main workflow configures an instance and channels, exchanges messages through shared-memory buffers and queues, and notifies or polls for reception. The graph includes kernel and user-space OS support, hardware interrupt implementations, and the documented sample variants. Edges are limited to relationships shown in excerpts, the source index, or the README; unsampled platform and sample internals are not inferred.
Main entry points: ipc-shm.c IPC shared-memory API · ipc-hw.h Hardware interface · ipc-uio.c Kernel UIO and device bridge · ipc-os.c Kernel OS services
Components 20
Shared-memory driver
- IPC shared-memory API
ipc-shm.c - API configuration and types
ipc-types.h - Channel ring queues
ipc-queue.c
OS integration
- Kernel OS services
os_kernel/ipc-os.c - Kernel UIO and device bridge
os_kernel/ipc-uio.c - Xen kernel support
os_kernel/ipc-xen.c - User-space OS services
os_uio/ipc-os.c
Hardware interrupts
- Hardware interface
hw/ipc-hw.h - S32G3 interrupt control
hw/s32g3xx/ipc-hw-s32g3xx.c - S32 Gen1 interrupt control
hw/s32gen1/ipc-hw-s32gen1.c - S32R47 interrupt control
hw/s32r47/ipc-hw-s32r47.c - S32V234 interrupt control
hw/s32v234/ipc-hw-s32v234.c
Sample applications
- Kernel ping-pong sample
sample_user/sample.c - Kernel multi-instance sample
sample_multi_instance/sample_multi_instance.c - User-space ping-pong sample
sample_user/sample.c - User-space multi-instance sample
sample_multi_instance_user/sample_multi_instance.c - Xen dom0 sample
sample_xen/dom0/sample.c - Xen dom0less sample
sample_xen/dom0less/sample.c
Other components
- Linux application
- RTOS peer
Connections 20
- Linux application → IPC shared-memory API: calls API
- IPC shared-memory API → RTOS peer: exchanges messages
- IPC shared-memory API → Channel ring queues: uses queues
ipc-shm.c - IPC shared-memory API → Kernel OS services: uses OS services
ipc-shm.c - IPC shared-memory API → User-space OS services: uses OS services
ipc-shm.c - Kernel OS services → Hardware interface: uses hardware API
os_kernel/ipc-os.c - Kernel UIO and device bridge → Hardware interface: controls interrupts
os_kernel/ipc-uio.c - Kernel UIO and device bridge → Kernel OS services: uses OS services
os_kernel/ipc-uio.c - Xen kernel support → Hardware interface: uses hardware API
os_kernel/ipc-xen.c - User-space OS services → Kernel UIO and device bridge: configures device
os_uio/ipc-os.c - S32G3 interrupt control → Hardware interface: implements interface
hw/s32g3xx/ipc-hw-s32g3xx.c - S32 Gen1 interrupt control → Hardware interface: implements interface
hw/s32gen1/ipc-hw-s32gen1.c - S32R47 interrupt control → Hardware interface: implements interface
hw/s32r47/ipc-hw-s32r47.c - S32V234 interrupt control → Hardware interface: implements interface
hw/s32v234/ipc-hw-s32v234.c - Kernel ping-pong sample → IPC shared-memory API: calls API
sample_user/sample.c - Kernel multi-instance sample → IPC shared-memory API: calls API
sample_multi_instance/sample_multi_instance.c - User-space ping-pong sample → IPC shared-memory API: calls API
sample_user/sample.c - User-space multi-instance sample → IPC shared-memory API: calls API
sample_multi_instance_user/sample_multi_instance.c - Xen dom0 sample → IPC shared-memory API: calls API
sample_xen/dom0/sample.c - Xen dom0less sample → IPC shared-memory API: calls API
sample_xen/dom0less/sample.c