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&
result_cap)
{
#if WORKS
Genode::Foc_cpu_session_client cpu(Genode::env()->cpu_session_cap());
result_cap = cpu.alloc_irq();
#endif
#if DOES_NOT_WORK
Cap_index * i = Genode::cap_idx_alloc()->alloc_range(1);
l4_msgtag_t res = l4_factory_create_irq(L4_BASE_FACTORY_CAP, i->kcap());
assert(!l4_error(res));
Genode::Native_capability ncap(i);
result_cap = ncap;
#endif
}
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?
Daniel
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.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Genode-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/genode-main
------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet,
is your hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials, tech docs,
whitepapers, evaluation guides, and opinion stories. Check out the most
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Genode-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/genode-main