Hi,
I have a scenario and would like to understand how the kernel is expected
to behave when I change the CSpace of a TCB when it is blocked on an EP.

1. A TCB (say TCB_1) is blocked on seL4_reply() on an endpoint (say EP_1).
2. Now, another PD, which has the capability to TCB_1, changes the CSpace
of TCB_1 by using seL4_TCB_SetSpace(). Let's assume that the VSpace is
identical.

This new CSpace can be different from the old CSpace in 4 ways:
A. It doesn't have the endpoint EP_1
B. It has the endpoint EP_1 but at a different CSlot.
C. It has the endpoint EP_1 at the same CSlot. But since it is a different
CSpace(so CNodes shared), it is a minted copy of the EP_1. Let's call it
EP_1-prime.
D. It has the endpoint EP_1 at the same CSlot, and it is the same EP as I
have shared the CNode containing the EP_1 from the original CSpace. New and
old CSpaces share the CNode containing that EP_1 like two trees sharing a
sub-tree.

I think scenario D should work as if nothing happened, but I do not
know what to expect in scenarios A, B, and C. I will try these out soon,
but I wanted your input as I did not find a clear answer in the manual.

Best,
Sid
_______________________________________________
Devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to