diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-13 19:07:41 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-13 19:07:41 -0400 |
| commit | 4b745a1c2c0534a1850b6efe6710536b2225c3f4 (patch) | |
| tree | 63cedd53fec1366c1d698c57f46fa57a64b9049d /kernel/gsp_rpc_client.h | |
| parent | 00e54c13c7c9030c4d5f7151467f2d85a3730e29 (diff) | |
| download | open-iov-4b745a1c2c0534a1850b6efe6710536b2225c3f4.tar.gz open-iov-4b745a1c2c0534a1850b6efe6710536b2225c3f4.zip | |
Phase 1: Add GSP Emulation Engine (host-side)
- New kernel/gsp_emulation.h: GSP emulation context and API
- New kernel/gsp_emulation.c: Per-mdev emulation thread with:
- Adaptive polling of doorbell at BAR0+0x110C00
- Shared memory RPC processing (4KB at BAR0+0x1000)
- Dispatch for all 12 RPC types via firmware-decompiled handlers
- MSI-X completion interrupt injection via eventfd
- Statistics tracking (processed/failed RPCs, latency)
- Modified kernel/main.c: Integrate gsp_emu_init/cleanup in device lifecycle
- Modified kernel/Makefile: Add gsp_emulation.o to build
- Modified kernel/gsp_rpc_client.h: Export gsp_rpc_emulation_set/is_enabled
Diffstat (limited to 'kernel/gsp_rpc_client.h')
| -rw-r--r-- | kernel/gsp_rpc_client.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/gsp_rpc_client.h b/kernel/gsp_rpc_client.h index 8702b0f..64bfe5b 100644 --- a/kernel/gsp_rpc_client.h +++ b/kernel/gsp_rpc_client.h @@ -310,4 +310,8 @@ int gsp_wpr_write_mutex_release(struct gsp_client *client, u32 wpr_id); int gsp_wpr_scratch_mutex_acquire(struct gsp_client *client, u32 wpr_id); int gsp_wpr_scratch_mutex_release(struct gsp_client *client, u32 wpr_id); +/* Emulation control */ +void gsp_rpc_emulation_set(bool enable); +bool gsp_rpc_emulation_is_enabled(void); + #endif /* _GSP_RPC_CLIENT_H_ */ |
