Custom implementation of core services

David Werner wernerd at ...389...
Tue Mar 8 22:15:46 CET 2016

Hi Genode-mailing-list,

i have a little problem with my ram and rm custom implementations.

When i try to create a child component which uses my custom 
sessions/services by running the following code:

int main(void)
     PDBG("--- start proxy_server ---\n");

     PDBG("--- announcing proxy services --- ");

     Cap_connection cap;

     static Sliced_heap sliced_heap(env()->ram_session(),

     enum { STACK_SIZE = 8*1024 };
     static Rpc_entrypoint ep(&cap, STACK_SIZE, "proxy_ep");

     static Proxy::Prm_root prm_root(&ep, &ep, &sliced_heap);
     PDBG("PRM_root created and back in server-main!");

     static Proxy::Pram_root pram_root(&ep, &ep, &sliced_heap);
     PDBG("PRAM_root created and back in server-main!");

     PDBG("PRM service announced!");

     PDBG("PRAM service announced!");

     PDBG("--- starting test child ---");

     /* Creating session for child environment */

     static Rom_connection rom("proxy_test_client");
     static Pd_connection pd;
     static Proxy::Pram_connection pram; <---------------- custom 
service, execution fails here.
     static Cpu_connection cpu;
     static Proxy::Prm_connection prm;  <---------------- custom service
     static Cap_connection child_cap;

     /* declaring ref account for child's ram session and transferring 
quota */

     enum { CHILD_QUOTA = 1*1024*1024 };
  env()->ram_session()->transfer_quota(pram.ram_cap(), CHILD_QUOTA);

     /* creating test child */

     Test_child proxy_test_child(rom.dataspace(), pd.cap(), pram.cap(), 
cpu.cap(), prm.cap(), &child_cap);

     PDBG("--- proxy_server is going to sleep ---");
     PDBG("Server still awake - This output should not be reached!");

     return 0;

I get this output:

Genode 15.11-71-g2e0e767
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 112 MB to init
int main(): --- init created, waiting for exit condition ---
[init] Could not open ROM session for module ""
[init -> proxy_server] int main(): --- start proxy_server ---
[init -> proxy_server] int main(): --- announcing proxy services ---
[init -> proxy_server] 
Genode::Rpc_entrypoint*, Genode::Allocator*): Creating Prm_root_component...
[init -> proxy_server] int main(): PRM_root created and back in server-main!
[init -> proxy_server] 
Genode::Rpc_entrypoint*, Genode::Allocator*): Creating 
[init -> proxy_server] int main(): PRAM_root created and back in 
[init -> proxy_server] int main(): PRM service announced!
[init -> proxy_server] int main(): PRAM service announced!
[init -> proxy_server] int main(): --- starting test child ---
[init -> proxy_server] virtual Proxy::Pram_session_component* 
Proxy::Pram_root::_create_session(const char*): Creating 

KERNEL: Warning: nothing mapped: (Obj_space) from 
[0xfffffffffccfe5d8/38]: 0000000000000237 size: 0000000000000001 to 

Error: Test execution timed out
make: *** [run/proxy] Fehler 254

I have no idea why this may happen. When running a component which is 
started by init and which is no child of my server component opening a

connection to my custom service works perfectly fine.

I'd be very grateful for a little bit of help here.

Best regards,


More information about the users mailing list