[seL4] Change Access Right to Memory Pages

Norrathep Rattanavipanon nrattana at uci.edu
Tue May 2 03:21:58 AEST 2017


Hello,

I have some questions about how to change access rights in seL4. (I'm using
native seL4, not camkes)

1) Currently, I'm using seL4_ARCH_Page_Remap to change an access right
(from R/W to R/O) to a specific page (of other processes) at run-time. I'm
doing as follows:

seL4_CPtr frame = vspace_get_cap(&(p.vspace), p.thread.stack_top-1); //
only for the stack
int error = seL4_ARCH_Page_Remap(frame, ppd.cptr, seL4_CanRead,
seL4_ARCH_Default_VMAttributes);

Am I doing it correctly? The code seems to work fine for me but I just want
to double check.

2) If my understanding in 1) is correct, the remap function only takes 1
cap at a time.
So if I want to modify access rights of many pages, do I have to call the
remap function multiple times?
Or is there a more efficient way to do so?

3) I am also curious how the kernel handles the remap function. Does it
simply flip/change some bits? Or does it involve page-related operations as
well?
e.g. unmap that page first and then remap the same region with a new access
right? I guess it should be the former but I need to be sure about that.

Thank you,

Oak


-- 
Norrathep (Oak) Rattanavipanon
M.S. in Computer Science
University of California - Irvine
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sel4.systems/pipermail/devel/attachments/20170501/b408e5c4/attachment.html>


More information about the Devel mailing list