Introducing a cmp() operation
kauer at os.inf.tu-dresden.de
Wed Jun 15 11:20:22 CEST 2005
> > Just as reminder:
> > Situation: S -> C -> (1 reference) A -> B
> > Goal: /-> (1 reference) A
> > S-> C
> > \-> (1 reference) B
> > 1. In the start situation A is trusted by B to provide the endpoint to S.
> > Since A could unmap this endpoint everytime.
> > 2. Therefore B can ask A for a new reference. Since A can not provide this
> > service, it asks C and attaches a  return endpoint to B in its message.
> > 3. C answers directly to B and maps them a new reference.
> This protocol requires that the receiver of the capability, in this
> case B, makes a blocking call to the sender, in this case A. But in
> many cases B does not trust A enough to block indefinitely until A
> does the right thing.
To get into the start situation B has to receive a mapping from A.
If this mapping was done, as an result of an RPC (because B requested the
mapping) B blocked on A.
If A send this capability within a request to B, it could easily ask
C to send this request.
> For example, in the case where a client wants to submit a
> capability reference to a server (let's say a name server).
Assume B is a nameserver and A wants to "upload" a capability reference.
Then A calls C, which sends a new reference to B.
More information about the l4-hackers