summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_sema_service.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_sema_service.h')
-rw-r--r--kernel/gsp_sema_service.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/gsp_sema_service.h b/kernel/gsp_sema_service.h
index 36f9902..6f07209 100644
--- a/kernel/gsp_sema_service.h
+++ b/kernel/gsp_sema_service.h
@@ -107,6 +107,18 @@ struct sema_vaspace_desc {
void gsp_sema_service_vaspace_add(const struct sema_vaspace_desc *desc);
void gsp_sema_service_vaspace_del(u32 h_vaspace);
/*
+ * eng23 (CONT.483): RM-record 3D-class attachment. The X lane carries its
+ * C597 SET_OBJECT inline in the init push, but the direct-GL client's
+ * channel binds the class channel-side: the client allocates TURING_A
+ * (0xc597) with hParent = its own channel and never re-emits a bind push
+ * (observed: alloc 0xc597 h=0xbeef9097 parent=0xbeef0100). The GSP-RM
+ * emulation reports that allocation here, and the service thread applies
+ * it as the sticky attachment the section recognizer gates on (same
+ * effect as the X lane's inline bind). Called from the RM thread, applied
+ * on the service thread - no shared-table writes cross threads.
+ */
+void gsp_sema_service_gl_attach(u32 h_object, u32 subch);
+/*
* CONT.407: a client's DUP_OBJECT of a VAS gives the destination client a
* NEW handle for the SAME page directory (measured: the GL client dups X's
* VAS 0x10005 as 0xbfef0001, then allocates its GR channel with