Server badges in Core
Steffen Liebergeld
steffen at ...37...
Mon May 17 11:54:37 CEST 2010
Hello friendly Genode-people,
I am having difficulties unterstanding the handling of the server badge
(currently in core only)
As far as I understand, the badge identifies the receipient-object.
Therefore the sender encodes the address of the receiving object's
capability in the first slot of the send buffer.
On the receiver side, in Server_activation_base::entry(), the badge is
used to identify the correct object, whose dispatch() Method is then called.
The server however has to insert the capability into the Object_pool
first, which is done at Server_entrypoint::manage().
Now I am currently having problems in core's main function. During
Ram_session_client(init_ram_session_cap).ref_account(env()->ram_session-cap()),
an IPC call is sent to the "activation"-Thread, during which an invalid
badge is used. Consequently the activation thread does not find the
corresponding object and returns ERR_INVALID_OBJECT.
This raises the following questions: a) Which object is the correct
handler for this call, and b) where is the capability of the receiver
allocated and registered at the Object_pool?
I am looking forward to hearing from you.
Many thanks in advance.
Greetings,
Steffen
--
Dipl.-Inf. Steffen Liebergeld <steffen at ...37...>
Security in Telecommunications
TU Berlin/ Deutsche Telekom Laboratories
Ernst-Reuter-Platz 7, 10587 Berlin
Phone: +30 8353 58 263
Web: http://www.t-labs.tu-berlin.de/sect
More information about the users
mailing list