PERFORCE change 821164 for review
Robert Watson
rwatson at FreeBSD.org
Mon Sep 23 21:33:49 UTC 2013
http://p4web.freebsd.org/@@821164?ac=10
Change 821164 by rwatson at rwatson_zenith_cl_cam_ac_uk on 2013/09/23 21:33:41
Set up code and data capabilities to more narrowly point to the
inlined minimal test sandbox assembly in cheritest_sandbox.S.
Affected files ...
.. //depot/projects/ctsrd/cheribsd/src/bin/cheritest/cheritest.c#18 edit
.. //depot/projects/ctsrd/cheribsd/src/bin/cheritest/cheritest_sandbox.S#2 edit
.. //depot/projects/ctsrd/cheribsd/src/bin/cheritest/cheritest_sandbox.h#2 edit
Differences ...
==== //depot/projects/ctsrd/cheribsd/src/bin/cheritest/cheritest.c#18 (text+ko) ====
@@ -114,15 +114,17 @@
* - 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_CINCBASE(10, 0, &sandbox_creturn);
+ /* XXXRW: CHERI_CSETTYPE(10, 10, &sandbox_creturn); */
+ CHERI_CSETLEN(10, 10, (uintptr_t)&sandbox_creturn_end -
+ (uintptr_t)&sandbox_creturn);
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_CINCBASE(11, 0, &sandbox_creturn);
+ /* XXXRW: CHERI_CSETTYPE(11, 11, &sandbox_creturn); */
+ CHERI_CSETLEN(11, 11, (uintptr_t)&sandbox_creturn_end -
+ (uintptr_t)&sandbox_creturn);
CHERI_CANDPERM(11, 11, CHERI_PERM_LOAD);
/* XXXRW: CHERI_CSEALDATA(11, 11); */
==== //depot/projects/ctsrd/cheribsd/src/bin/cheritest/cheritest_sandbox.S#2 (text+ko) ====
@@ -46,5 +46,7 @@
sandbox_creturn:
creturn
+ .end sandbox_creturn
- .end sandbox_creturn
+ .global sandbox_creturn_end
+sandbox_creturn_end:
==== //depot/projects/ctsrd/cheribsd/src/bin/cheritest/cheritest_sandbox.h#2 (text+ko) ====
@@ -31,6 +31,7 @@
#ifndef _CHERITEST_SANDBOX_H_
#define _CHERITEST_SANDBOX_H_
-void sandbox_creturn(void);
+extern void *sandbox_creturn;
+extern void *sandbox_creturn_end;
#endif /* !_CHERITEST_SANDBOX_H_ */
More information about the p4-projects
mailing list