kermit the frog kermit@tower.com.ar writes:
Hello, thanks for always answering (im such a pain in the ... (-:
Well, this time, after following Michael's instructions (heres a piece of the code) : th = l4_myself(); printf("rmgr_init()\n"); rmgr_init(); printf("Hello, task: %d, thread: %d\n", th.id.task, th.id.lthread);
sigma0.id.task = 2; sigma0.id.lthread = 0;
recv.id.task = rmgr_get_task(6); recv.id.chief = th.id.task ; recv.id.lthread = 0; recv = l4_task_new(recv, 5, (dword_t) task+(4096*2), (dword_t)task, sigma0);
All i get is : 'sys_id_nearest'
What is that ??
Argh, the library code snippet I sent you uses l4_nchief(), a binding for the sys_id_nearest system call, a call which has only been fixed recently. I really should release a new code snapshot... I'll try to do this later today (and I'll try to make the source code more accessible in order to avoid such problems in the future).
For now, you can try the Fiasco patch below, or you can modify the librmgr.c file I sent you to find out its Rmgr server by querying its pager using l4_thread_ex_regs() instead of using l4_nchief() -- just change the "#if 0" in rmgr_init() to "#if 1".
Sorry, Michael