Native_capability as [out] parameters

Daniel Waddington daniel.waddington at ...161...
Tue Feb 19 01:38:17 CET 2013

Hi Stefan,

In my test server side session function, if I use a core-created 
capability (via alloc_irq) it works.  If I try to do similar behavior 
locally, the capability appears to be valid (i.e., it exists in the jdb 
object table) but will not martial correctly - .valid() fails at the 
client side (note my server process has L4_BASE_FACTORY_CAP).

Can you enlighten me? I am clearly doing something wrong.

status_t Foo::Session_component::create(Genode::Native_capability& 
   Genode::Foc_cpu_session_client cpu(Genode::env()->cpu_session_cap());
   result_cap = cpu.alloc_irq();

   Cap_index * i = Genode::cap_idx_alloc()->alloc_range(1);

   l4_msgtag_t res = l4_factory_create_irq(L4_BASE_FACTORY_CAP, i->kcap());

   Genode::Native_capability ncap(i);
   result_cap = ncap;

BTW, I'm currently using Native_capabilities to test.  But I also do not 
know how to convert from a Native_capability to a typed capability. ;-) 
Can you show me?


On 02/18/2013 01:15 AM, Stefan Kalkowski wrote:
> Hi Daniel,
> On 02/14/2013 08:33 PM, Daniel Waddington wrote:
>> Hi,
>> Can I pass Native_capability types as [out] parameters using
>> "Native_capability *" type - with the cross-process mapping happening?
>> Most of the examples use only use the return value to do [out]
>> capabilities.  i.e. GENODE_RPC(Rpc_foo,int,foo,Genode::Native_capability
>> *) doesn't seem to work, but there might be something else afoot.
> actually it should work the way you've described it. I've tested it
> right now by extending the hello example the same way, and the
> capability was successfully transfered to the calling client as an argument.
> By the way, why do you use Native_capability instead of Capability?
> Although both should work, I would use the generic Capability class,
> especially in an interface.
> Best regards
> Stefan
>> Daniel
>> ------------------------------------------------------------------------------
>> Free Next-Gen Firewall Hardware Offer
>> Buy your Sophos next-gen firewall before the end March 2013
>> and get the hardware for free! Learn more.
>> _______________________________________________
>> Genode-main mailing list
>> Genode-main at

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the users mailing list