USB storage detachment / reattachment

Boris Mulder boris.mulder at ...434...
Fri Jan 27 12:00:04 CET 2017


I have been looking into your suggestions and I have some questions
about it.

On 13-01-17 11:32, Norman Feske wrote:
> You are already on the right track. Running rump_fs as a slave is good.
> You just missed a tiny piece of the puzzle: The 'Slave::Connection' does
> not only provide the session interface of the slave's service but also
> the corresponding 'Session_capability' (it inherits
> 'CONNECTION::Client', so the 'Slave::Connection' _is_ a session
> capability). Instead of calling the 'File_system' methods, the media
> component would pass this 'Session_capability' to init as response to
> the 'File_system' session request that originated from init.
I assume here the session() method inherited from Genode::Root has to be
implemented such that it returns the capability that is the
Slave::Connection after that connection has been initiated?

On 14-01-17 20:58, Nobody III wrote:

> I have personally done some work related to this issue. First off, I
> would suggest adding code to allow init to share child services with
> its parent. I also have a service_router component that I wrote. You
> may not be able to use it directly, but feel free to take some of the
> code to use in your media component. Here's a link to the code:
> https://github.com/NobodyIII/genode/tree/master/repos/os/src/server/service_router
>
> The code is a bit messy, so any help on making it ready to merge into
> the official Genode repo would be very welcome.

Here, you create a Forwarded_capability struct, which wraps a session
capability. It inherits from Id_space<Parent::Client>::Element. Why if I
may ask? Do I need to do that too?

It eventually invokes env.session() to create a new capability for the
forwarded service. Why does it not get its capability from the server,
but instead seems to create a new session for a certain service? It
seems to me that the Service router does not forward capabilities from
children, or am I wrong? Does the cap live somewhere else?

I'm missing the picture a bit here. Can you explain how it works with
those capabilities?

-- 

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)






More information about the users mailing list