PERFORCE change 718517 for review

Robert Watson rwatson at FreeBSD.org
Sun Sep 15 20:16:12 UTC 2013


http://p4web.freebsd.org/@@718517?ac=10

Change 718517 by rwatson at rwatson_zenith_cl_cam_ac_uk on 2013/09/15 20:15:56

	Add some initial code to /bin/cheritest's ccall path to set up
	code and data capabilities for CCall in userspace.  Numerous
	current caveats, some identified in the comment.

Affected files ...

.. //depot/projects/ctsrd/cheribsd/src/bin/cheritest/cheritest.c#16 edit

Differences ...

==== //depot/projects/ctsrd/cheribsd/src/bin/cheritest/cheritest.c#16 (text+ko) ====

@@ -102,7 +102,30 @@
 cheritest_ccall(void)
 {
 
-	/* XXXRW: Temporary nop semantics. */
+	/*-
+	 * Construct a code capability in $c10, and a data capability in $c11,
+	 * starting with $c0 for both.
+	 *
+	 * Current limitations:
+	 * - Doesn't set the type (XXXRW: new or old semantics?)
+	 * - Doesn't use sealing.
+	 * - $c11 doesn't matter as sandbox_creturn doesn't access data.
+	 * - We don't flush registers before CCall.
+	 * - We don't restore registers after CCall.
+	 */
+	CHERI_CINCBASE(10, 0, sandbox_creturn);
+	/* XXXRW: CHERI_CSETTYPE(10, 10, sandbox_creturn); */
+	CHERI_CSETLEN(10, 10, 4);	/* XXXRW: Use symbols not magic. */
+	CHERI_CANDPERM(10, 10, CHERI_PERM_EXECUTE);
+	/* XXXRW: CHERI_CSEALCODE(10, 10); */
+
+	CHERI_CINCBASE(11, 0, sandbox_creturn);
+	/* XXXRW: CHERI_CSETTYPE(11, 11, sandbox_creturn); */
+	CHERI_CSETLEN(11, 11, 4);	/* XXXRW: Use symbols not magic. */
+	CHERI_CANDPERM(11, 11, CHERI_PERM_LOAD);
+	/* XXXRW: CHERI_CSEALDATA(11, 11); */
+	
+	/* Invoke capability. */
 	CHERI_CCALL(10, 11);
 }
 


More information about the p4-projects mailing list