Thanks, that solves it for now.

Boris


On 31-01-17 16:30, Norman Feske wrote:
> Hello Boris,
>
>> When testing it with print() by inserting the following line
>>
>> log("testing... session = ", session, " cap = ", cap, " equal = ", session 
>> == cap);
>>
>> it outputs the following:
>>
>> session = cap<socket=27,key=474> cap = cap<socket=27,key=474> equal = 0
>>
>> So the comparison will always fail, and the overloaded close() and
>> upgrade() methods of Root cannot close/upgrade the correct session.
>>
>> Am I missing something here or is it not possible right now to locally
>> keep track of multiple forwarded session capabilities in this way?
> the kernel mechanisms for re-identifying capabilities vary a lot between
> the various kernels. For example, for seL4 I brought up this problem
> long ago [1] but there is still no good solution. On NOVA, the situation
> looks a bit brighter since we extended the kernel in this respect. In
> base-hw, it works.
>
> [1] http://sel4.systems/pipermail/devel/2014-November/000114.html
>
> For your current scenario, I recommend you to change the comparison to
>
>   session.local_name() == cap.local_name()
>
> The 'local_name' corresponds to the 'key' you observe in the output of
> the capability. It is expected to be unique for the corresponding RPC
> object.
>
> In the longer term, we try to largely eliminate the need to re-identify
> capabilities. In particular since Genode 16.11 [2], the interplay
> between parent and child components no longer relies on the
> re-identification of capabilities. It employs IDs instead. In fact,
> under the hood, there are no 'Root' RPC calls between components any
> more. But at the API level, we have not made the new facilities
> available yet. For now, I recommend you to use the 'local_name', or the
> 'Object_pool', which is a data structure that associates capabilities
> with a component-local object.
>
> [2]
> http://genode.org/documentation/release-notes/16.11#Asynchronous_parent-child_interactions
>
> Cheers
> Norman
>

-- 

Met vriendelijke groet / kind regards,

Boris Mulder

Cyber Security Labs B.V. | Gooimeer 6-31 | 1411 DD Naarden | The Netherlands
+31 35 631 3253 (office)


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main

Reply via email to