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.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/gsp_sema_service.h b/kernel/gsp_sema_service.h
index 6f591e5..3f2a8dc 100644
--- a/kernel/gsp_sema_service.h
+++ b/kernel/gsp_sema_service.h
@@ -106,6 +106,17 @@ 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);
+/*
+ * 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
+ * hVASpace=0xbfef0001). Register the destination handle as an alias of the
+ * source's directory so the channel's gpfifo VA resolves through the
+ * client's own VAS instead of falling through to another registered
+ * directory (observed bogus 0x1bcfff0/ap=2 answer). Returns true when the
+ * source handle was a registered VAS and the alias was installed.
+ */
+bool gsp_sema_service_vaspace_alias(u32 h_dst, u32 h_src);
/*
* r820: a driver-declared kernel-buffer translation from an