Rename tid() to dst() in Native_capability.
As suggested by Norman in the discussion of issue #145, this commit renames the tid() accessor in Native_capability to dst().
This commit is contained in:
parent
84ca4b25db
commit
ae8cf5f44d
|
@ -34,17 +34,17 @@ void Ipc_ostream::_send()
|
||||||
{
|
{
|
||||||
if (verbose_ipc)
|
if (verbose_ipc)
|
||||||
PDBG("thread %d sends IPC to %d, write_offset=%d",
|
PDBG("thread %d sends IPC to %d, write_offset=%d",
|
||||||
thread_myself(), _dst.tid(), _write_offset);
|
thread_myself(), _dst.dst(), _write_offset);
|
||||||
|
|
||||||
umword_t snd_size = min(_write_offset, (unsigned)L4_IPC_EXTENDED_MAX_SIZE);
|
umword_t snd_size = min(_write_offset, (unsigned)L4_IPC_EXTENDED_MAX_SIZE);
|
||||||
|
|
||||||
*(umword_t *)_snd_msg->addr() = _dst.local_name();
|
*(umword_t *)_snd_msg->addr() = _dst.local_name();
|
||||||
|
|
||||||
int ret = l4_send_extended(_dst.tid(), L4_IPC_TAG_SYNC_EXTENDED,
|
int ret = l4_send_extended(_dst.dst(), L4_IPC_TAG_SYNC_EXTENDED,
|
||||||
snd_size, _snd_msg->addr());
|
snd_size, _snd_msg->addr());
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
PERR("l4_send_extended (to thread %d) returned ret=%d",
|
PERR("l4_send_extended (to thread %d) returned ret=%d",
|
||||||
_dst.tid(), ret);
|
_dst.dst(), ret);
|
||||||
|
|
||||||
_write_offset = sizeof(umword_t);
|
_write_offset = sizeof(umword_t);
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ void Ipc_istream::_wait()
|
||||||
|
|
||||||
if (verbose_ipc)
|
if (verbose_ipc)
|
||||||
PDBG("thread %d waits for IPC from %d, rcv_buf at %p, rcv_size=%d",
|
PDBG("thread %d waits for IPC from %d, rcv_buf at %p, rcv_size=%d",
|
||||||
tid(), _rcv_cs, rcv_buf, (int)rcv_size);
|
dst(), _rcv_cs, rcv_buf, (int)rcv_size);
|
||||||
|
|
||||||
int ret = l4_receive_extended(_rcv_cs, rcv_size, rcv_buf);
|
int ret = l4_receive_extended(_rcv_cs, rcv_size, rcv_buf);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
@ -79,7 +79,7 @@ void Ipc_istream::_wait()
|
||||||
|
|
||||||
if (verbose_ipc)
|
if (verbose_ipc)
|
||||||
PDBG("thread %d received IPC from %d",
|
PDBG("thread %d received IPC from %d",
|
||||||
tid(), l4_get_sender());
|
dst(), l4_get_sender());
|
||||||
|
|
||||||
_read_offset = sizeof(umword_t);
|
_read_offset = sizeof(umword_t);
|
||||||
}
|
}
|
||||||
|
@ -107,7 +107,7 @@ void Ipc_client::_call()
|
||||||
{
|
{
|
||||||
#warning l4_sendrecv_extended is not yet implemented in l4lib/arch/syslib.h
|
#warning l4_sendrecv_extended is not yet implemented in l4lib/arch/syslib.h
|
||||||
_send();
|
_send();
|
||||||
_rcv_cs = _dst.tid();
|
_rcv_cs = _dst.dst();
|
||||||
_wait();
|
_wait();
|
||||||
_rcv_cs = L4_ANYTHREAD;
|
_rcv_cs = L4_ANYTHREAD;
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ Pager_capability Pager_entrypoint::manage(Pager_object *obj)
|
||||||
|
|
||||||
_activation->cap();
|
_activation->cap();
|
||||||
|
|
||||||
Untyped_capability cap = Native_capability(_activation->cap().tid(), obj->badge());
|
Untyped_capability cap = Native_capability(_activation->cap().dst(), obj->badge());
|
||||||
|
|
||||||
/* add server object to object pool */
|
/* add server object to object pool */
|
||||||
obj->cap(cap);
|
obj->cap(cap);
|
||||||
|
|
|
@ -35,7 +35,7 @@ void Platform_thread::set_cpu(unsigned int cpu_no)
|
||||||
|
|
||||||
int Platform_thread::start(void *ip, void *sp, unsigned int cpu_no)
|
int Platform_thread::start(void *ip, void *sp, unsigned int cpu_no)
|
||||||
{
|
{
|
||||||
Native_thread_id pager = _pager ? _pager->cap().tid() : -1;
|
Native_thread_id pager = _pager ? _pager->cap().dst() : -1;
|
||||||
|
|
||||||
/* setup thread context */
|
/* setup thread context */
|
||||||
struct exregs_data exregs;
|
struct exregs_data exregs;
|
||||||
|
|
|
@ -35,7 +35,7 @@ void Ipc_ostream::_send()
|
||||||
_snd_msg->send_dope = L4_IPC_DOPE((_write_offset + sizeof(umword_t) - 1)>>2, 0);
|
_snd_msg->send_dope = L4_IPC_DOPE((_write_offset + sizeof(umword_t) - 1)>>2, 0);
|
||||||
|
|
||||||
l4_msgdope_t result;
|
l4_msgdope_t result;
|
||||||
l4_ipc_send(_dst.tid(), _snd_msg->addr(), _dst.local_name(),
|
l4_ipc_send(_dst.dst(), _snd_msg->addr(), _dst.local_name(),
|
||||||
*reinterpret_cast<l4_umword_t *>(&_snd_msg->buf[sizeof(umword_t)]),
|
*reinterpret_cast<l4_umword_t *>(&_snd_msg->buf[sizeof(umword_t)]),
|
||||||
L4_IPC_NEVER, &result);
|
L4_IPC_NEVER, &result);
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ void Ipc_client::_call()
|
||||||
_snd_msg->send_dope = L4_IPC_DOPE((_write_offset + 2*sizeof(umword_t) - 1)>>2, 0);
|
_snd_msg->send_dope = L4_IPC_DOPE((_write_offset + 2*sizeof(umword_t) - 1)>>2, 0);
|
||||||
_rcv_msg->size_dope = L4_IPC_DOPE(_rcv_msg->size()>>2, 0);
|
_rcv_msg->size_dope = L4_IPC_DOPE(_rcv_msg->size()>>2, 0);
|
||||||
|
|
||||||
l4_ipc_call(_dst.tid(),
|
l4_ipc_call(_dst.dst(),
|
||||||
_write_offset <= 2*sizeof(umword_t) ? L4_IPC_SHORT_MSG : _snd_msg->addr(),
|
_write_offset <= 2*sizeof(umword_t) ? L4_IPC_SHORT_MSG : _snd_msg->addr(),
|
||||||
_dst.local_name(),
|
_dst.local_name(),
|
||||||
*reinterpret_cast<l4_umword_t *>(&_snd_msg->buf[sizeof(umword_t)]),
|
*reinterpret_cast<l4_umword_t *>(&_snd_msg->buf[sizeof(umword_t)]),
|
||||||
|
@ -193,7 +193,7 @@ void Ipc_server::_reply()
|
||||||
_snd_msg->send_dope = L4_IPC_DOPE((_write_offset + sizeof(umword_t) - 1)>>2, 0);
|
_snd_msg->send_dope = L4_IPC_DOPE((_write_offset + sizeof(umword_t) - 1)>>2, 0);
|
||||||
|
|
||||||
l4_msgdope_t result;
|
l4_msgdope_t result;
|
||||||
l4_ipc_send(_dst.tid(), _snd_msg->addr(), _dst.local_name(),
|
l4_ipc_send(_dst.dst(), _snd_msg->addr(), _dst.local_name(),
|
||||||
*reinterpret_cast<l4_umword_t *>(&_snd_msg->buf[sizeof(umword_t)]),
|
*reinterpret_cast<l4_umword_t *>(&_snd_msg->buf[sizeof(umword_t)]),
|
||||||
L4_IPC_SEND_TIMEOUT_0, &result);
|
L4_IPC_SEND_TIMEOUT_0, &result);
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ void Ipc_server::_reply_wait()
|
||||||
* an integer as RPC result.
|
* an integer as RPC result.
|
||||||
*/
|
*/
|
||||||
l4_ipc_reply_and_wait(
|
l4_ipc_reply_and_wait(
|
||||||
_dst.tid(),
|
_dst.dst(),
|
||||||
_write_offset <= 2*sizeof(umword_t) ? L4_IPC_SHORT_MSG : _snd_msg->addr(),
|
_write_offset <= 2*sizeof(umword_t) ? L4_IPC_SHORT_MSG : _snd_msg->addr(),
|
||||||
_dst.local_name(),
|
_dst.local_name(),
|
||||||
*reinterpret_cast<l4_umword_t *>(&_snd_msg->buf[sizeof(umword_t)]),
|
*reinterpret_cast<l4_umword_t *>(&_snd_msg->buf[sizeof(umword_t)]),
|
||||||
|
|
|
@ -105,8 +105,8 @@ Pager_capability Pager_entrypoint::manage(Pager_object *obj)
|
||||||
/* return invalid capability if no activation is present */
|
/* return invalid capability if no activation is present */
|
||||||
if (!_activation) return Pager_capability();
|
if (!_activation) return Pager_capability();
|
||||||
|
|
||||||
Native_thread_id tid = _activation->cap().tid();
|
Native_thread_id tid = _activation->cap().dst();
|
||||||
Native_capability cap(_activation->cap().tid(), obj->badge());
|
Native_capability cap(_activation->cap().dst(), obj->badge());
|
||||||
|
|
||||||
/* add server object to object pool */
|
/* add server object to object pool */
|
||||||
obj->cap(cap);
|
obj->cap(cap);
|
||||||
|
|
|
@ -37,7 +37,7 @@ int Platform_thread::start(void *ip, void *sp)
|
||||||
{
|
{
|
||||||
l4_umword_t dummy, old_eflags;
|
l4_umword_t dummy, old_eflags;
|
||||||
l4_threadid_t thread = _l4_thread_id;
|
l4_threadid_t thread = _l4_thread_id;
|
||||||
l4_threadid_t pager = _pager ? _pager->cap().tid() : L4_INVALID_ID;
|
l4_threadid_t pager = _pager ? _pager->cap().dst() : L4_INVALID_ID;
|
||||||
l4_threadid_t preempter = L4_INVALID_ID;
|
l4_threadid_t preempter = L4_INVALID_ID;
|
||||||
l4_threadid_t cap_handler = L4_INVALID_ID;
|
l4_threadid_t cap_handler = L4_INVALID_ID;
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ inline void Genode::Ipc_ostream::_marshal_capability(Genode::Native_capability c
|
||||||
long unique_id = cap.local_name();
|
long unique_id = cap.local_name();
|
||||||
_write_to_buf(unique_id);
|
_write_to_buf(unique_id);
|
||||||
if (unique_id)
|
if (unique_id)
|
||||||
_snd_msg->snd_append_cap_sel(cap.tid());
|
_snd_msg->snd_append_cap_sel(cap.dst());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -154,7 +154,7 @@ namespace Genode {
|
||||||
* Set destination for next reply
|
* Set destination for next reply
|
||||||
*/
|
*/
|
||||||
void set_reply_dst(Native_capability pager_object) {
|
void set_reply_dst(Native_capability pager_object) {
|
||||||
_last = pager_object.tid(); }
|
_last = pager_object.dst(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Answer call without sending a flex-page mapping
|
* Answer call without sending a flex-page mapping
|
||||||
|
|
|
@ -51,7 +51,7 @@ namespace Genode {
|
||||||
/* request mapping of semaphore capability selector */
|
/* request mapping of semaphore capability selector */
|
||||||
_sem = call<Rpc_request_semaphore>();
|
_sem = call<Rpc_request_semaphore>();
|
||||||
|
|
||||||
l4_msgtag_t tag = l4_irq_attach(_sem.tid(), 0,
|
l4_msgtag_t tag = l4_irq_attach(_sem.dst(), 0,
|
||||||
Thread_base::myself()->tid());
|
Thread_base::myself()->tid());
|
||||||
if (l4_error(tag))
|
if (l4_error(tag))
|
||||||
PERR("l4_irq_attach failed with %ld!", l4_error(tag));
|
PERR("l4_irq_attach failed with %ld!", l4_error(tag));
|
||||||
|
@ -76,7 +76,7 @@ namespace Genode {
|
||||||
using namespace Fiasco;
|
using namespace Fiasco;
|
||||||
|
|
||||||
/* block on semaphore, will be unblocked if signal is available */
|
/* block on semaphore, will be unblocked if signal is available */
|
||||||
l4_irq_receive(_sem.tid(), L4_IPC_NEVER);
|
l4_irq_receive(_sem.dst(), L4_IPC_NEVER);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now that the server has unblocked the semaphore, we are sure
|
* Now that the server has unblocked the semaphore, we are sure
|
||||||
|
|
|
@ -142,7 +142,7 @@ static l4_msgtag_t copy_msgbuf_to_utcb(Msgbuf_base *snd_msg, unsigned offset,
|
||||||
void Ipc_ostream::_send()
|
void Ipc_ostream::_send()
|
||||||
{
|
{
|
||||||
l4_msgtag_t tag = copy_msgbuf_to_utcb(_snd_msg, _write_offset, _dst);
|
l4_msgtag_t tag = copy_msgbuf_to_utcb(_snd_msg, _write_offset, _dst);
|
||||||
tag = l4_ipc_send(_dst.tid(), l4_utcb(), tag, L4_IPC_NEVER);
|
tag = l4_ipc_send(_dst.dst(), l4_utcb(), tag, L4_IPC_NEVER);
|
||||||
if (ipc_error(tag, DEBUG_MSG))
|
if (ipc_error(tag, DEBUG_MSG))
|
||||||
throw Ipc_error();
|
throw Ipc_error();
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ void Ipc_client::_call()
|
||||||
rcv_cap_sel += L4_CAP_SIZE;
|
rcv_cap_sel += L4_CAP_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
tag = l4_ipc_call(_dst.tid(), l4_utcb(), tag, L4_IPC_NEVER);
|
tag = l4_ipc_call(_dst.dst(), l4_utcb(), tag, L4_IPC_NEVER);
|
||||||
if (l4_ipc_error(tag, l4_utcb()) == L4_IPC_RECANCELED)
|
if (l4_ipc_error(tag, l4_utcb()) == L4_IPC_RECANCELED)
|
||||||
throw Genode::Blocking_canceled();
|
throw Genode::Blocking_canceled();
|
||||||
if (ipc_error(tag, DEBUG_MSG))
|
if (ipc_error(tag, DEBUG_MSG))
|
||||||
|
|
|
@ -49,7 +49,7 @@ void Thread_base::start()
|
||||||
/* get gate-capability and badge of new thread */
|
/* get gate-capability and badge of new thread */
|
||||||
Thread_state state;
|
Thread_state state;
|
||||||
env()->cpu_session()->state(_thread_cap, &state);
|
env()->cpu_session()->state(_thread_cap, &state);
|
||||||
_tid = state.cap.tid();
|
_tid = state.cap.dst();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* send newly constructed thread, pointer to its Thread_base object,
|
* send newly constructed thread, pointer to its Thread_base object,
|
||||||
|
|
|
@ -118,10 +118,10 @@ void Cap_session_component::free(Native_capability cap)
|
||||||
|
|
||||||
Capability_tree::tree()->remove(n);
|
Capability_tree::tree()->remove(n);
|
||||||
l4_msgtag_t tag = l4_task_unmap(L4_BASE_TASK_CAP,
|
l4_msgtag_t tag = l4_task_unmap(L4_BASE_TASK_CAP,
|
||||||
l4_obj_fpage(cap.tid(), 0, L4_FPAGE_RWX),
|
l4_obj_fpage(cap.dst(), 0, L4_FPAGE_RWX),
|
||||||
L4_FP_ALL_SPACES | L4_FP_DELETE_OBJ);
|
L4_FP_ALL_SPACES | L4_FP_DELETE_OBJ);
|
||||||
if (l4_msgtag_has_error(tag))
|
if (l4_msgtag_has_error(tag))
|
||||||
PERR("destruction of ipc-gate %lx failed!", (unsigned long) cap.tid());
|
PERR("destruction of ipc-gate %lx failed!", (unsigned long) cap.dst());
|
||||||
|
|
||||||
/* free badge _after_ invalidating all caps */
|
/* free badge _after_ invalidating all caps */
|
||||||
Badge_allocator::allocator()->free(n->badge());
|
Badge_allocator::allocator()->free(n->badge());
|
||||||
|
|
|
@ -111,7 +111,7 @@ namespace Genode {
|
||||||
|
|
||||||
Native_task native_task() { return _l4_task_cap; }
|
Native_task native_task() { return _l4_task_cap; }
|
||||||
unsigned badge() { return _badge; }
|
unsigned badge() { return _badge; }
|
||||||
Native_thread parent_cap() { return _parent.tid(); }
|
Native_thread parent_cap() { return _parent.dst(); }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -147,14 +147,14 @@ namespace Genode {
|
||||||
* Return identification of thread when faulting
|
* Return identification of thread when faulting
|
||||||
*/
|
*/
|
||||||
unsigned long pager_object_badge() {
|
unsigned long pager_object_badge() {
|
||||||
return (unsigned long) _thread_cap.tid(); }
|
return (unsigned long) _thread_cap.dst(); }
|
||||||
|
|
||||||
|
|
||||||
/*******************************
|
/*******************************
|
||||||
** Fiasco-specific Accessors **
|
** Fiasco-specific Accessors **
|
||||||
*******************************/
|
*******************************/
|
||||||
|
|
||||||
Native_thread native_thread() const { return _thread_cap.tid(); }
|
Native_thread native_thread() const { return _thread_cap.dst(); }
|
||||||
Native_capability thread_cap() const { return _thread_cap; }
|
Native_capability thread_cap() const { return _thread_cap; }
|
||||||
Native_capability gate() const { return _remote_gate_cap; }
|
Native_capability gate() const { return _remote_gate_cap; }
|
||||||
const char *name() const { return _name; }
|
const char *name() const { return _name; }
|
||||||
|
|
|
@ -56,7 +56,7 @@ Irq_session_component::Interrupt::Interrupt()
|
||||||
Native_thread Irq_session_component::Interrupt_handler::handler_cap()
|
Native_thread Irq_session_component::Interrupt_handler::handler_cap()
|
||||||
{
|
{
|
||||||
static Interrupt_handler handler;
|
static Interrupt_handler handler;
|
||||||
return handler._thread_cap.tid();
|
return handler._thread_cap.dst();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -126,7 +126,7 @@ void Platform_pd::map_parent_cap()
|
||||||
{
|
{
|
||||||
if (!_parent_cap_mapped) {
|
if (!_parent_cap_mapped) {
|
||||||
l4_msgtag_t tag = l4_task_map(_l4_task_cap, L4_BASE_TASK_CAP,
|
l4_msgtag_t tag = l4_task_map(_l4_task_cap, L4_BASE_TASK_CAP,
|
||||||
l4_obj_fpage(_parent.tid(), 0, L4_FPAGE_RWX),
|
l4_obj_fpage(_parent.dst(), 0, L4_FPAGE_RWX),
|
||||||
PARENT_CAP | L4_ITEM_MAP);
|
PARENT_CAP | L4_ITEM_MAP);
|
||||||
if (l4_msgtag_has_error(tag))
|
if (l4_msgtag_has_error(tag))
|
||||||
PWRN("mapping parent cap failed");
|
PWRN("mapping parent cap failed");
|
||||||
|
|
|
@ -41,7 +41,7 @@ int Platform_thread::start(void *ip, void *sp)
|
||||||
if (_pager && _platform_pd) {
|
if (_pager && _platform_pd) {
|
||||||
/* map pager cap */
|
/* map pager cap */
|
||||||
l4_msgtag_t tag = l4_task_map(_platform_pd->native_task(), L4_BASE_TASK_CAP,
|
l4_msgtag_t tag = l4_task_map(_platform_pd->native_task(), L4_BASE_TASK_CAP,
|
||||||
l4_obj_fpage(_pager->cap().tid(), 0, L4_FPAGE_RWX),
|
l4_obj_fpage(_pager->cap().dst(), 0, L4_FPAGE_RWX),
|
||||||
_remote_pager_cap | L4_ITEM_MAP);
|
_remote_pager_cap | L4_ITEM_MAP);
|
||||||
if (l4_msgtag_has_error(tag))
|
if (l4_msgtag_has_error(tag))
|
||||||
PWRN("mapping pager cap failed");
|
PWRN("mapping pager cap failed");
|
||||||
|
@ -53,15 +53,15 @@ int Platform_thread::start(void *ip, void *sp)
|
||||||
l4_thread_control_exc_handler(_remote_pager_cap);
|
l4_thread_control_exc_handler(_remote_pager_cap);
|
||||||
l4_thread_control_bind(_utcb, _platform_pd->native_task());
|
l4_thread_control_bind(_utcb, _platform_pd->native_task());
|
||||||
|
|
||||||
l4_msgtag_t tag = l4_thread_control_commit(_thread_cap.tid());
|
l4_msgtag_t tag = l4_thread_control_commit(_thread_cap.dst());
|
||||||
if (l4_msgtag_has_error(tag)) {
|
if (l4_msgtag_has_error(tag)) {
|
||||||
PWRN("l4_thread_control_commit for %lx failed!",
|
PWRN("l4_thread_control_commit for %lx failed!",
|
||||||
(unsigned long) _thread_cap.tid());
|
(unsigned long) _thread_cap.dst());
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set ip and sp and run the thread */
|
/* set ip and sp and run the thread */
|
||||||
tag = l4_thread_ex_regs(_thread_cap.tid(), (l4_addr_t) ip, (l4_addr_t) sp, 0);
|
tag = l4_thread_ex_regs(_thread_cap.dst(), (l4_addr_t) ip, (l4_addr_t) sp, 0);
|
||||||
if (l4_msgtag_has_error(tag)) {
|
if (l4_msgtag_has_error(tag)) {
|
||||||
PWRN("l4_thread_ex_regs failed!");
|
PWRN("l4_thread_ex_regs failed!");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -96,7 +96,7 @@ void Platform_thread::pause()
|
||||||
* The pager thread, which also acts as exception handler, will
|
* The pager thread, which also acts as exception handler, will
|
||||||
* leave the thread in exception state until, it gets woken again
|
* leave the thread in exception state until, it gets woken again
|
||||||
*/
|
*/
|
||||||
l4_thread_ex_regs_ret(_thread_cap.tid(), &_pager->state.ip,
|
l4_thread_ex_regs_ret(_thread_cap.dst(), &_pager->state.ip,
|
||||||
&_pager->state.sp, &flags);
|
&_pager->state.sp, &flags);
|
||||||
bool in_syscall = flags == 0;
|
bool in_syscall = flags == 0;
|
||||||
_pager->state.lock.unlock();
|
_pager->state.lock.unlock();
|
||||||
|
@ -111,7 +111,7 @@ void Platform_thread::pause()
|
||||||
* the requested thread, and stored its thread state
|
* the requested thread, and stored its thread state
|
||||||
*/
|
*/
|
||||||
while (exc == _pager->state.exceptions && !_pager->state.in_exception)
|
while (exc == _pager->state.exceptions && !_pager->state.in_exception)
|
||||||
l4_thread_switch(_thread_cap.tid());
|
l4_thread_switch(_thread_cap.dst());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,8 +150,8 @@ void Platform_thread::bind(Platform_pd *pd)
|
||||||
if (_gate_cap.valid()) {
|
if (_gate_cap.valid()) {
|
||||||
/* map thread's gate cap */
|
/* map thread's gate cap */
|
||||||
tag = l4_task_map(task, L4_BASE_TASK_CAP,
|
tag = l4_task_map(task, L4_BASE_TASK_CAP,
|
||||||
l4_obj_fpage(_gate_cap.tid(), 0, L4_FPAGE_RWX),
|
l4_obj_fpage(_gate_cap.dst(), 0, L4_FPAGE_RWX),
|
||||||
_remote_gate_cap.tid() | L4_ITEM_MAP);
|
_remote_gate_cap.dst() | L4_ITEM_MAP);
|
||||||
if (l4_msgtag_has_error(tag))
|
if (l4_msgtag_has_error(tag))
|
||||||
PWRN("mapping thread's gate cap failed");
|
PWRN("mapping thread's gate cap failed");
|
||||||
}
|
}
|
||||||
|
@ -167,12 +167,12 @@ void Platform_thread::bind(Platform_pd *pd)
|
||||||
|
|
||||||
void Platform_thread::unbind()
|
void Platform_thread::unbind()
|
||||||
{
|
{
|
||||||
l4_thread_ex_regs(_thread_cap.tid(), 0, 0, 0);
|
l4_thread_ex_regs(_thread_cap.dst(), 0, 0, 0);
|
||||||
l4_task_unmap(L4_BASE_TASK_CAP,
|
l4_task_unmap(L4_BASE_TASK_CAP,
|
||||||
l4_obj_fpage(_gate_cap.tid(), 0, L4_FPAGE_RWX),
|
l4_obj_fpage(_gate_cap.dst(), 0, L4_FPAGE_RWX),
|
||||||
L4_FP_ALL_SPACES | L4_FP_DELETE_OBJ);
|
L4_FP_ALL_SPACES | L4_FP_DELETE_OBJ);
|
||||||
l4_task_unmap(L4_BASE_TASK_CAP,
|
l4_task_unmap(L4_BASE_TASK_CAP,
|
||||||
l4_obj_fpage(_thread_cap.tid(), 0, L4_FPAGE_RWX),
|
l4_obj_fpage(_thread_cap.dst(), 0, L4_FPAGE_RWX),
|
||||||
L4_FP_ALL_SPACES | L4_FP_DELETE_OBJ);
|
L4_FP_ALL_SPACES | L4_FP_DELETE_OBJ);
|
||||||
_platform_pd = (Platform_pd*) 0;
|
_platform_pd = (Platform_pd*) 0;
|
||||||
}
|
}
|
||||||
|
@ -203,7 +203,7 @@ void Platform_thread::cancel_blocking()
|
||||||
void Platform_thread::_create_thread()
|
void Platform_thread::_create_thread()
|
||||||
{
|
{
|
||||||
l4_msgtag_t tag = l4_factory_create_thread(L4_BASE_FACTORY_CAP,
|
l4_msgtag_t tag = l4_factory_create_thread(L4_BASE_FACTORY_CAP,
|
||||||
_thread_cap.tid());
|
_thread_cap.dst());
|
||||||
if (l4_msgtag_has_error(tag))
|
if (l4_msgtag_has_error(tag))
|
||||||
PERR("cannot create more thread kernel-objects!");
|
PERR("cannot create more thread kernel-objects!");
|
||||||
}
|
}
|
||||||
|
@ -218,18 +218,18 @@ void Platform_thread::_finalize_construction(const char *name, unsigned prio)
|
||||||
PWRN("creating thread's irq failed");
|
PWRN("creating thread's irq failed");
|
||||||
|
|
||||||
/* attach thread to irq */
|
/* attach thread to irq */
|
||||||
tag = l4_irq_attach(_irq_cap, 0, _thread_cap.tid());
|
tag = l4_irq_attach(_irq_cap, 0, _thread_cap.dst());
|
||||||
if (l4_msgtag_has_error(tag))
|
if (l4_msgtag_has_error(tag))
|
||||||
PWRN("attaching thread's irq failed");
|
PWRN("attaching thread's irq failed");
|
||||||
|
|
||||||
/* set human readable name in kernel debugger */
|
/* set human readable name in kernel debugger */
|
||||||
strncpy(_name, name, sizeof(_name));
|
strncpy(_name, name, sizeof(_name));
|
||||||
Fiasco::l4_debugger_set_object_name(_thread_cap.tid(), name);
|
Fiasco::l4_debugger_set_object_name(_thread_cap.dst(), name);
|
||||||
|
|
||||||
/* set priority of thread */
|
/* set priority of thread */
|
||||||
prio = Cpu_session::scale_priority(DEFAULT_PRIORITY, prio);
|
prio = Cpu_session::scale_priority(DEFAULT_PRIORITY, prio);
|
||||||
l4_sched_param_t params = l4_sched_param(prio);
|
l4_sched_param_t params = l4_sched_param(prio);
|
||||||
l4_scheduler_run_thread(L4_BASE_SCHEDULER_CAP, _thread_cap.tid(), ¶ms);
|
l4_scheduler_run_thread(L4_BASE_SCHEDULER_CAP, _thread_cap.dst(), ¶ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -239,7 +239,7 @@ Platform_thread::Platform_thread(const char *name,
|
||||||
_badge(Badge_allocator::allocator()->alloc()),
|
_badge(Badge_allocator::allocator()->alloc()),
|
||||||
_thread_cap(cap_alloc()->alloc_id(_badge),
|
_thread_cap(cap_alloc()->alloc_id(_badge),
|
||||||
_badge),
|
_badge),
|
||||||
_node(_thread_cap.local_name(), 0, this, _thread_cap.tid()),
|
_node(_thread_cap.local_name(), 0, this, _thread_cap.dst()),
|
||||||
_utcb(0),
|
_utcb(0),
|
||||||
_platform_pd(0),
|
_platform_pd(0),
|
||||||
_pager(0)
|
_pager(0)
|
||||||
|
@ -259,7 +259,7 @@ Platform_thread::Platform_thread(const char *name,
|
||||||
Platform_thread::Platform_thread(Native_thread cap, const char *name)
|
Platform_thread::Platform_thread(Native_thread cap, const char *name)
|
||||||
: _core_thread(true),
|
: _core_thread(true),
|
||||||
_thread_cap(cap, -1),
|
_thread_cap(cap, -1),
|
||||||
_node(_thread_cap.local_name(), 0, this, _thread_cap.tid()),
|
_node(_thread_cap.local_name(), 0, this, _thread_cap.dst()),
|
||||||
_utcb(0),
|
_utcb(0),
|
||||||
_platform_pd(0),
|
_platform_pd(0),
|
||||||
_pager(0)
|
_pager(0)
|
||||||
|
@ -276,7 +276,7 @@ Platform_thread::Platform_thread(const char *name)
|
||||||
_badge(Badge_allocator::allocator()->alloc()),
|
_badge(Badge_allocator::allocator()->alloc()),
|
||||||
_thread_cap(cap_alloc()->alloc_id(_badge),
|
_thread_cap(cap_alloc()->alloc_id(_badge),
|
||||||
_badge),
|
_badge),
|
||||||
_node(_thread_cap.local_name(), 0, this, _thread_cap.tid()),
|
_node(_thread_cap.local_name(), 0, this, _thread_cap.dst()),
|
||||||
_utcb(0),
|
_utcb(0),
|
||||||
_platform_pd(0),
|
_platform_pd(0),
|
||||||
_pager(0)
|
_pager(0)
|
||||||
|
@ -304,6 +304,6 @@ Platform_thread::~Platform_thread()
|
||||||
|
|
||||||
/* remove the thread capability */
|
/* remove the thread capability */
|
||||||
Capability_tree::tree()->remove(&_node);
|
Capability_tree::tree()->remove(&_node);
|
||||||
cap_alloc()->free(_thread_cap.tid());
|
cap_alloc()->free(_thread_cap.dst());
|
||||||
Badge_allocator::allocator()->free(_badge);
|
Badge_allocator::allocator()->free(_badge);
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ void Signal_source_component::submit(Signal_context_component *context,
|
||||||
_signal_queue.enqueue(context);
|
_signal_queue.enqueue(context);
|
||||||
|
|
||||||
/* wake up client */
|
/* wake up client */
|
||||||
Fiasco::l4_irq_trigger(_blocking_semaphore.tid());
|
Fiasco::l4_irq_trigger(_blocking_semaphore.dst());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ void Thread_base::start()
|
||||||
new(platform()->core_mem_alloc()) Platform_thread(_context->name);
|
new(platform()->core_mem_alloc()) Platform_thread(_context->name);
|
||||||
|
|
||||||
platform_specific()->core_pd()->bind_thread(pt);
|
platform_specific()->core_pd()->bind_thread(pt);
|
||||||
_tid = pt->gate().tid();
|
_tid = pt->gate().dst();
|
||||||
_thread_cap = reinterpret_cap_cast<Cpu_thread>(pt->thread_cap());
|
_thread_cap = reinterpret_cap_cast<Cpu_thread>(pt->thread_cap());
|
||||||
|
|
||||||
pt->pager(platform_specific()->core_pager());
|
pt->pager(platform_specific()->core_pager());
|
||||||
|
|
|
@ -46,7 +46,7 @@ Pager_capability Pager_entrypoint::manage(Pager_object *obj)
|
||||||
/* return invalid capability if no activation is present */
|
/* return invalid capability if no activation is present */
|
||||||
if (!_activation) return Pager_capability();
|
if (!_activation) return Pager_capability();
|
||||||
|
|
||||||
Native_capability cap = Native_capability(_activation->cap().tid(), obj->badge());
|
Native_capability cap = Native_capability(_activation->cap().dst(), obj->badge());
|
||||||
|
|
||||||
/* add server object to object pool */
|
/* add server object to object pool */
|
||||||
obj->cap(cap);
|
obj->cap(cap);
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace Genode {
|
||||||
static IF *deref(Capability<IF> cap)
|
static IF *deref(Capability<IF> cap)
|
||||||
{
|
{
|
||||||
/* check if this is a pseudo capability */
|
/* check if this is a pseudo capability */
|
||||||
if (cap.tid() != 0 || !cap.local_name())
|
if (cap.dst() != 0 || !cap.local_name())
|
||||||
throw Non_local_capability();
|
throw Non_local_capability();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -108,7 +108,7 @@ void Ipc_client::_prepare_next_call()
|
||||||
{
|
{
|
||||||
/* prepare next request in buffer */
|
/* prepare next request in buffer */
|
||||||
long local_name = _dst.local_name();
|
long local_name = _dst.local_name();
|
||||||
long tid = Native_capability::tid();
|
long tid = Native_capability::dst();
|
||||||
|
|
||||||
_write_offset = 0;
|
_write_offset = 0;
|
||||||
_write_to_buf(local_name);
|
_write_to_buf(local_name);
|
||||||
|
@ -122,7 +122,7 @@ void Ipc_client::_prepare_next_call()
|
||||||
void Ipc_client::_call()
|
void Ipc_client::_call()
|
||||||
{
|
{
|
||||||
if (_dst.valid()) {
|
if (_dst.valid()) {
|
||||||
lx_send_to(_rcv_cs, _dst.tid(), "server",
|
lx_send_to(_rcv_cs, _dst.dst(), "server",
|
||||||
_snd_msg->buf, _write_offset);
|
_snd_msg->buf, _write_offset);
|
||||||
|
|
||||||
lx_recv_from(_rcv_cs, _rcv_msg->buf, _rcv_msg->size());
|
lx_recv_from(_rcv_cs, _rcv_msg->buf, _rcv_msg->size());
|
||||||
|
@ -183,7 +183,7 @@ void Ipc_server::_wait()
|
||||||
void Ipc_server::_reply()
|
void Ipc_server::_reply()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
lx_send_to(_rcv_cs, _dst.tid(), "client", _snd_msg->buf, _write_offset);
|
lx_send_to(_rcv_cs, _dst.dst(), "client", _snd_msg->buf, _write_offset);
|
||||||
} catch (Ipc_error) { }
|
} catch (Ipc_error) { }
|
||||||
|
|
||||||
_prepare_next_reply_wait();
|
_prepare_next_reply_wait();
|
||||||
|
@ -194,7 +194,7 @@ void Ipc_server::_reply_wait()
|
||||||
{
|
{
|
||||||
/* when first called, there was no request yet */
|
/* when first called, there was no request yet */
|
||||||
if (_reply_needed)
|
if (_reply_needed)
|
||||||
lx_send_to(_rcv_cs, _dst.tid(), "client", _snd_msg->buf, _write_offset);
|
lx_send_to(_rcv_cs, _dst.dst(), "client", _snd_msg->buf, _write_offset);
|
||||||
|
|
||||||
_wait();
|
_wait();
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,7 +116,7 @@ const char *Process::_priv_pd_args(Parent_capability parent_cap,
|
||||||
enum { ENV_STR_LEN = 256 };
|
enum { ENV_STR_LEN = 256 };
|
||||||
static char envbuf[5][ENV_STR_LEN];
|
static char envbuf[5][ENV_STR_LEN];
|
||||||
Genode::snprintf(envbuf[0], ENV_STR_LEN, "parent_tid=%ld",
|
Genode::snprintf(envbuf[0], ENV_STR_LEN, "parent_tid=%ld",
|
||||||
parent_cap.tid());
|
parent_cap.dst());
|
||||||
Genode::snprintf(envbuf[1], ENV_STR_LEN, "parent_local_name=%lu",
|
Genode::snprintf(envbuf[1], ENV_STR_LEN, "parent_local_name=%lu",
|
||||||
parent_cap.local_name());
|
parent_cap.local_name());
|
||||||
Genode::snprintf(envbuf[2], ENV_STR_LEN, "DISPLAY=%s",
|
Genode::snprintf(envbuf[2], ENV_STR_LEN, "DISPLAY=%s",
|
||||||
|
|
|
@ -37,7 +37,7 @@ namespace Genode {
|
||||||
{
|
{
|
||||||
Lock::Guard lock_guard(_lock());
|
Lock::Guard lock_guard(_lock());
|
||||||
|
|
||||||
return Native_capability(ep.tid(), ++_unique_id_cnt);
|
return Native_capability(ep.dst(), ++_unique_id_cnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void free(Native_capability cap) { }
|
void free(Native_capability cap) { }
|
||||||
|
|
|
@ -130,7 +130,7 @@ void Ipc_client::_call()
|
||||||
unsigned request_size = _write_offset;
|
unsigned request_size = _write_offset;
|
||||||
copy_msgbuf_to_utcb(_snd_msg, request_size, _dst.local_name());
|
copy_msgbuf_to_utcb(_snd_msg, request_size, _dst.local_name());
|
||||||
|
|
||||||
unsigned reply_size = Kernel::ipc_request(_dst.tid(), request_size);
|
unsigned reply_size = Kernel::ipc_request(_dst.dst(), request_size);
|
||||||
|
|
||||||
copy_utcb_to_msgbuf(reply_size, _rcv_msg);
|
copy_utcb_to_msgbuf(reply_size, _rcv_msg);
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,7 @@ Pager_capability Pager_entrypoint::manage(Pager_object *obj)
|
||||||
/* return invalid capability if no activation is present */
|
/* return invalid capability if no activation is present */
|
||||||
if (!_activation) return Pager_capability();
|
if (!_activation) return Pager_capability();
|
||||||
|
|
||||||
Native_capability cap = Native_capability(_activation->cap().tid(), obj->badge());
|
Native_capability cap = Native_capability(_activation->cap().dst(), obj->badge());
|
||||||
|
|
||||||
/* add server object to object pool */
|
/* add server object to object pool */
|
||||||
obj->cap(cap);
|
obj->cap(cap);
|
||||||
|
|
|
@ -96,7 +96,7 @@ int Platform_thread::state(Thread_state *state_dst)
|
||||||
|
|
||||||
int Platform_thread::start(void *ip, void *sp, unsigned int cpu_no)
|
int Platform_thread::start(void *ip, void *sp, unsigned int cpu_no)
|
||||||
{
|
{
|
||||||
Native_thread_id pager_tid = _pager ? _pager->cap().tid() : 0;
|
Native_thread_id pager_tid = _pager ? _pager->cap().dst() : 0;
|
||||||
Kernel::Utcb* putcb = physical_utcb(_tid);
|
Kernel::Utcb* putcb = physical_utcb(_tid);
|
||||||
|
|
||||||
/* Hand over arguments for the thread's bootstrap */
|
/* Hand over arguments for the thread's bootstrap */
|
||||||
|
|
|
@ -21,7 +21,7 @@ inline void Genode::Ipc_ostream::_marshal_capability(Genode::Native_capability c
|
||||||
{
|
{
|
||||||
long unique_id = cap.local_name();
|
long unique_id = cap.local_name();
|
||||||
_write_to_buf(unique_id);
|
_write_to_buf(unique_id);
|
||||||
_snd_msg->snd_append_pt_sel(cap.tid());
|
_snd_msg->snd_append_pt_sel(cap.dst());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ namespace Genode {
|
||||||
_init_sem();
|
_init_sem();
|
||||||
|
|
||||||
/* block on semaphore, will be unblocked if signal is available */
|
/* block on semaphore, will be unblocked if signal is available */
|
||||||
Nova::sm_ctrl(_sem.tid(), Nova::SEMAPHORE_DOWN);
|
Nova::sm_ctrl(_sem.dst(), Nova::SEMAPHORE_DOWN);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now that the server has unblocked the semaphore, we are sure
|
* Now that the server has unblocked the semaphore, we are sure
|
||||||
|
|
|
@ -138,9 +138,9 @@ void Ipc_client::_call()
|
||||||
_rcv_msg->rcv_prepare_pt_sel_window(utcb);
|
_rcv_msg->rcv_prepare_pt_sel_window(utcb);
|
||||||
|
|
||||||
/* establish the mapping via a portal traversal */
|
/* establish the mapping via a portal traversal */
|
||||||
if (_dst.tid() == 0)
|
if (_dst.dst() == 0)
|
||||||
PWRN("destination portal is zero");
|
PWRN("destination portal is zero");
|
||||||
int res = Nova::call(_dst.tid());
|
int res = Nova::call(_dst.dst());
|
||||||
if (res)
|
if (res)
|
||||||
PERR("call returned %d", res);
|
PERR("call returned %d", res);
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ static void request_event_portal(Pager_capability pager_cap,
|
||||||
utcb->set_msg_word(1);
|
utcb->set_msg_word(1);
|
||||||
utcb->crd_rcv = Obj_crd(exc_base + event, 0);
|
utcb->crd_rcv = Obj_crd(exc_base + event, 0);
|
||||||
|
|
||||||
int res = call(pager_cap.tid());
|
int res = call(pager_cap.dst());
|
||||||
if (res)
|
if (res)
|
||||||
PERR("request of event (%d) capability selector failed", event);
|
PERR("request of event (%d) capability selector failed", event);
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace Genode {
|
||||||
{
|
{
|
||||||
Lock::Guard lock_guard(_lock());
|
Lock::Guard lock_guard(_lock());
|
||||||
|
|
||||||
return Native_capability(ep.tid(), ++_unique_id_cnt);
|
return Native_capability(ep.dst(), ++_unique_id_cnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void free(Native_capability cap) { }
|
void free(Native_capability cap) { }
|
||||||
|
|
|
@ -63,7 +63,7 @@ namespace Genode {
|
||||||
/**
|
/**
|
||||||
* Return portal capability selector for parent interface
|
* Return portal capability selector for parent interface
|
||||||
*/
|
*/
|
||||||
int parent_pt_sel() { return _parent.tid(); }
|
int parent_pt_sel() { return _parent.dst(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assign PD selector to PD
|
* Assign PD selector to PD
|
||||||
|
|
|
@ -40,7 +40,7 @@ void Signal_source_component::submit(Signal_context_component *context,
|
||||||
_signal_queue.enqueue(context);
|
_signal_queue.enqueue(context);
|
||||||
|
|
||||||
/* wake up client */
|
/* wake up client */
|
||||||
Nova::sm_ctrl(_blocking_semaphore.tid(), Nova::SEMAPHORE_UP);
|
Nova::sm_ctrl(_blocking_semaphore.dst(), Nova::SEMAPHORE_UP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,7 @@ void Ipc_ostream::_send()
|
||||||
_dst.local_name());
|
_dst.local_name());
|
||||||
|
|
||||||
/* perform IPC send operation */
|
/* perform IPC send operation */
|
||||||
L4_MsgTag_t rcv_tag = L4_Send(_dst.tid());
|
L4_MsgTag_t rcv_tag = L4_Send(_dst.dst());
|
||||||
|
|
||||||
if (L4_IpcFailed(rcv_tag)) {
|
if (L4_IpcFailed(rcv_tag)) {
|
||||||
PERR("ipc error in _send.");
|
PERR("ipc error in _send.");
|
||||||
|
@ -186,7 +186,7 @@ void Ipc_client::_call()
|
||||||
_dst.local_name());
|
_dst.local_name());
|
||||||
|
|
||||||
L4_Accept(L4_UntypedWordsAcceptor);
|
L4_Accept(L4_UntypedWordsAcceptor);
|
||||||
L4_MsgTag_t rcv_tag = L4_Call(_dst.tid());
|
L4_MsgTag_t rcv_tag = L4_Call(_dst.dst());
|
||||||
|
|
||||||
enum { ERROR_MASK = 0xe, ERROR_CANCELED = 3 << 1 };
|
enum { ERROR_MASK = 0xe, ERROR_CANCELED = 3 << 1 };
|
||||||
if (L4_IpcFailed(rcv_tag) &&
|
if (L4_IpcFailed(rcv_tag) &&
|
||||||
|
@ -244,7 +244,7 @@ void Ipc_server::_reply()
|
||||||
_dst.local_name());
|
_dst.local_name());
|
||||||
|
|
||||||
/* perform non-blocking IPC send operation */
|
/* perform non-blocking IPC send operation */
|
||||||
L4_MsgTag_t rcv_tag = L4_Reply(_dst.tid());
|
L4_MsgTag_t rcv_tag = L4_Reply(_dst.dst());
|
||||||
|
|
||||||
if (L4_IpcFailed(rcv_tag))
|
if (L4_IpcFailed(rcv_tag))
|
||||||
PERR("ipc error in _reply - gets ignored");
|
PERR("ipc error in _reply - gets ignored");
|
||||||
|
@ -261,7 +261,7 @@ void Ipc_server::_reply_wait()
|
||||||
copy_msgbuf_to_utcb(_snd_msg, _write_offset/sizeof(L4_Word_t),
|
copy_msgbuf_to_utcb(_snd_msg, _write_offset/sizeof(L4_Word_t),
|
||||||
_dst.local_name());
|
_dst.local_name());
|
||||||
|
|
||||||
L4_MsgTag_t rcv_tag = L4_ReplyWait(_dst.tid(), &_rcv_cs);
|
L4_MsgTag_t rcv_tag = L4_ReplyWait(_dst.dst(), &_rcv_cs);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO: Check for IPC error
|
* TODO: Check for IPC error
|
||||||
|
|
|
@ -109,7 +109,7 @@ Pager_capability Pager_entrypoint::manage(Pager_object *obj)
|
||||||
/* return invalid capability if no activation is present */
|
/* return invalid capability if no activation is present */
|
||||||
if (!_activation) return Pager_capability();
|
if (!_activation) return Pager_capability();
|
||||||
|
|
||||||
Native_capability cap = Native_capability(_activation->cap().tid(), obj->badge());
|
Native_capability cap = Native_capability(_activation->cap().dst(), obj->badge());
|
||||||
|
|
||||||
/* add server object to object pool */
|
/* add server object to object pool */
|
||||||
obj->cap(cap);
|
obj->cap(cap);
|
||||||
|
|
|
@ -55,7 +55,7 @@ int Platform_thread::start(void *ip, void *sp, unsigned int cpu_no)
|
||||||
_thread_id);
|
_thread_id);
|
||||||
L4_SpaceId_t space_id = L4_SpaceId(space_no);
|
L4_SpaceId_t space_id = L4_SpaceId(space_no);
|
||||||
L4_ThreadId_t scheduler = L4_rootserver;
|
L4_ThreadId_t scheduler = L4_rootserver;
|
||||||
L4_ThreadId_t pager = _pager ? _pager->cap().tid() : L4_nilthread;
|
L4_ThreadId_t pager = _pager ? _pager->cap().dst() : L4_nilthread;
|
||||||
L4_ThreadId_t exception_handler = pager;
|
L4_ThreadId_t exception_handler = pager;
|
||||||
L4_Word_t resources = 0;
|
L4_Word_t resources = 0;
|
||||||
L4_Word_t utcb_size_per_task = L4_GetUtcbSize()*(1 << Thread_id_bits::THREAD);
|
L4_Word_t utcb_size_per_task = L4_GetUtcbSize()*(1 << Thread_id_bits::THREAD);
|
||||||
|
|
|
@ -47,7 +47,7 @@ using namespace Pistachio;
|
||||||
|
|
||||||
void Ipc_ostream::_send()
|
void Ipc_ostream::_send()
|
||||||
{
|
{
|
||||||
IPCDEBUG("_send to 0x%08lx.\n", _dst.tid().raw);
|
IPCDEBUG("_send to 0x%08lx.\n", _dst.dst().raw);
|
||||||
|
|
||||||
L4_Msg_t msg;
|
L4_Msg_t msg;
|
||||||
L4_StringItem_t sitem = L4_StringItem(_write_offset, _snd_msg->buf);
|
L4_StringItem_t sitem = L4_StringItem(_write_offset, _snd_msg->buf);
|
||||||
|
@ -59,7 +59,7 @@ void Ipc_ostream::_send()
|
||||||
L4_Append(&msg, sitem);
|
L4_Append(&msg, sitem);
|
||||||
L4_Load(&msg);
|
L4_Load(&msg);
|
||||||
|
|
||||||
L4_MsgTag_t result = L4_Send(_dst.tid());
|
L4_MsgTag_t result = L4_Send(_dst.dst());
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Error indicator
|
* Error indicator
|
||||||
|
@ -208,7 +208,7 @@ void Ipc_client::_call()
|
||||||
L4_Append(&msg, sitem);
|
L4_Append(&msg, sitem);
|
||||||
L4_Load(&msg);
|
L4_Load(&msg);
|
||||||
|
|
||||||
L4_MsgTag_t result = L4_Call(_dst.tid());
|
L4_MsgTag_t result = L4_Call(_dst.dst());
|
||||||
|
|
||||||
_write_offset = _read_offset = sizeof(umword_t);
|
_write_offset = _read_offset = sizeof(umword_t);
|
||||||
|
|
||||||
|
@ -266,7 +266,7 @@ void Ipc_server::_reply()
|
||||||
L4_Append(&msg, sitem);
|
L4_Append(&msg, sitem);
|
||||||
L4_Load(&msg);
|
L4_Load(&msg);
|
||||||
|
|
||||||
L4_MsgTag_t result = L4_Reply(_dst.tid());
|
L4_MsgTag_t result = L4_Reply(_dst.dst());
|
||||||
if (L4_IpcFailed(result))
|
if (L4_IpcFailed(result))
|
||||||
PERR("ipc error in _reply, ignored");
|
PERR("ipc error in _reply, ignored");
|
||||||
|
|
||||||
|
@ -298,7 +298,7 @@ void Ipc_server::_reply_wait()
|
||||||
L4_Accept(L4_UntypedWordsAcceptor);
|
L4_Accept(L4_UntypedWordsAcceptor);
|
||||||
L4_Accept(L4_StringItemsAcceptor, &msgbuf);
|
L4_Accept(L4_StringItemsAcceptor, &msgbuf);
|
||||||
|
|
||||||
L4_MsgTag_t result = L4_Ipc(_dst.tid(), L4_anythread, L4_Timeouts(L4_ZeroTime, L4_Never), &_rcv_cs);
|
L4_MsgTag_t result = L4_Ipc(_dst.dst(), L4_anythread, L4_Timeouts(L4_ZeroTime, L4_Never), &_rcv_cs);
|
||||||
IPCDEBUG("Got something from 0x%x.\n", L4_ThreadNo(L4_GlobalId(_rcv_cs)));
|
IPCDEBUG("Got something from 0x%x.\n", L4_ThreadNo(L4_GlobalId(_rcv_cs)));
|
||||||
|
|
||||||
/* error handling - check whether send or receive failed */
|
/* error handling - check whether send or receive failed */
|
||||||
|
|
|
@ -107,7 +107,7 @@ Pager_capability Pager_entrypoint::manage(Pager_object *obj)
|
||||||
/* return invalid capability if no activation is present */
|
/* return invalid capability if no activation is present */
|
||||||
if (!_activation) return Pager_capability();
|
if (!_activation) return Pager_capability();
|
||||||
|
|
||||||
Native_capability cap = Native_capability(_activation->cap().tid(), obj->badge());
|
Native_capability cap = Native_capability(_activation->cap().dst(), obj->badge());
|
||||||
|
|
||||||
/* add server object to object pool */
|
/* add server object to object pool */
|
||||||
obj->cap(cap);
|
obj->cap(cap);
|
||||||
|
|
|
@ -54,7 +54,7 @@ void Platform_thread::set_cpu(unsigned int cpu_no)
|
||||||
int Platform_thread::start(void *ip, void *sp, unsigned int cpu_no)
|
int Platform_thread::start(void *ip, void *sp, unsigned int cpu_no)
|
||||||
{
|
{
|
||||||
L4_ThreadId_t thread = _l4_thread_id;
|
L4_ThreadId_t thread = _l4_thread_id;
|
||||||
L4_ThreadId_t pager = _pager ? _pager->cap().tid() : L4_nilthread;
|
L4_ThreadId_t pager = _pager ? _pager->cap().dst() : L4_nilthread;
|
||||||
|
|
||||||
/* XXX should always be the root task */
|
/* XXX should always be the root task */
|
||||||
L4_ThreadId_t preempter = L4_Myself();
|
L4_ThreadId_t preempter = L4_Myself();
|
||||||
|
|
|
@ -110,7 +110,7 @@ namespace Genode {
|
||||||
/**
|
/**
|
||||||
* Return the kernel-specific capability destination
|
* Return the kernel-specific capability destination
|
||||||
*/
|
*/
|
||||||
Dst tid() const { return _tid; }
|
Dst dst() const { return _tid; }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ using namespace Genode;
|
||||||
|
|
||||||
Untyped_capability Rpc_entrypoint::_manage(Rpc_object_base *obj)
|
Untyped_capability Rpc_entrypoint::_manage(Rpc_object_base *obj)
|
||||||
{
|
{
|
||||||
Untyped_capability ep_cap = Native_capability(_cap.tid(), 0);
|
Untyped_capability ep_cap = Native_capability(_cap.dst(), 0);
|
||||||
Untyped_capability new_obj_cap = _cap_session->alloc(ep_cap);
|
Untyped_capability new_obj_cap = _cap_session->alloc(ep_cap);
|
||||||
|
|
||||||
/* add server object to object pool */
|
/* add server object to object pool */
|
||||||
|
|
|
@ -37,7 +37,7 @@ namespace Genode {
|
||||||
{
|
{
|
||||||
Lock::Guard lock_guard(_lock());
|
Lock::Guard lock_guard(_lock());
|
||||||
|
|
||||||
return Native_capability(ep.tid(), ++_unique_id_cnt);
|
return Native_capability(ep.dst(), ++_unique_id_cnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void free(Native_capability cap) { }
|
void free(Native_capability cap) { }
|
||||||
|
|
Loading…
Reference in New Issue