Hi Aditya,

the manual refers to various communication techniques in the description
of the individual session interfaces in Section 4.5. In my opinion,
those session interfaces are best examples.

> What I did:
> Server:
> Ram_dataspace_capability ds = env()->ram_session()->alloc(SIZE);
> void* arg = env()->rm_session()->attach(ds);

BTW, there is a convenience helper for performing this sequence (and the
reverse) at os/include/os/attached_ram_dataspace.h.

> I returned this ds through a getDataspace() RPC method on the server
> side to the invoking client.
> I'm able to effectively write bulk data between components. Thank you
> for directing me toward this.
> 
> I have a couple of spinoff questions though. 
> 1. Initially I tried creating a Ram_connection ram1 and allocated as in
> the ds_ownership program
> 
> ram1.ref_account(env()->ram_session->cap());
> env()->ram_session()->transfer_quota(ram1.cap(), 8*1024); 
> 
> Then Ram_dataspace_capability ds = ram1.alloc(SIZE); and attached ds to
> RM session and sent back ds.
> But the client threw a C++ IPC error and called abort(). 

The general steps look good to me. If you shared you experiment as a
branch at GitHub I could have a look, where the problem lies.

> A) Is this because ram1 was local to the server?

No.

> B) Is the transfer quota mechanism is similar to the transfer_quota from
> the client during the creation of a session
> in the constructor?

It is related but actually not very similar. Please have a look at
Section 3.3 for a description. In short, the session quota is meant to
be consumed by the respective server. The RAM server is like a bank
where each RAM session corresponds to a bank account. The quota
transferred to a RAM session is the balance on the account.

> 2. I'm still trying to get my head around the concept of a capability. I
> tried going through the definition of a capability
> in base/capability.h, but I seemed to get nowhere. What can a user do
> with a capability - mechanisms such as 
> attach and detach with the help of a capability etc.

May I refer you to Chapter 3 of the manual?

> I'm sure you've had similar questions asked before. Thank you taking the
> time to respond.

You are welcome.

Cheers
Norman

-- 
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main

Reply via email to