Hello, genode!
In Thread_base::start() function, there is a capability inserting part:
Cap_index *i = cap_map()->insert(state.id, state.cap); l4_utcb_tcr_u(state.utcb)->user[UTCB_TCR_BADGE] = (unsigned long) i; l4_utcb_tcr_u(state.utcb)->user[UTCB_TCR_THREAD_OBJ] = (addr_t)this;
in the above, *state.kcap* is the cap-selector in the Genode CORE (where Cpu_root is there). And, Thread_base::start() function tries to create the capability with the same value of state.kcap (it looks rather than delegating, uses direct value). My question here is that, "could it be possible that the state.kcap value is already taken by some other capability in the Genode application?"
Best regards, Jaeyong