summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_rpc_client.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-13 19:07:41 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-13 19:07:41 -0400
commit4b745a1c2c0534a1850b6efe6710536b2225c3f4 (patch)
tree63cedd53fec1366c1d698c57f46fa57a64b9049d /kernel/gsp_rpc_client.h
parent00e54c13c7c9030c4d5f7151467f2d85a3730e29 (diff)
downloadopen-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.h4
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_ */