parent
d24ed9783b
commit
20e91d0b60
|
@ -8,7 +8,7 @@ LIBS += cxx l4 startup
|
||||||
|
|
||||||
SRC_CC += cap_copy.cc main_bootstrap.cc
|
SRC_CC += cap_copy.cc main_bootstrap.cc
|
||||||
SRC_CC += ipc/ipc.cc ipc/pager.cc ipc/ipc_marshal_cap.cc
|
SRC_CC += ipc/ipc.cc ipc/pager.cc ipc/ipc_marshal_cap.cc
|
||||||
SRC_CC += pager/pager.cc
|
SRC_CC += pager/pager.cc pager/common.cc
|
||||||
SRC_CC += avl_tree/avl_tree.cc
|
SRC_CC += avl_tree/avl_tree.cc
|
||||||
SRC_CC += allocator/slab.cc
|
SRC_CC += allocator/slab.cc
|
||||||
SRC_CC += allocator/allocator_avl.cc
|
SRC_CC += allocator/allocator_avl.cc
|
||||||
|
|
|
@ -8,7 +8,7 @@ LIBS += cxx startup
|
||||||
|
|
||||||
SRC_CC += cap_copy.cc main_bootstrap.cc
|
SRC_CC += cap_copy.cc main_bootstrap.cc
|
||||||
SRC_CC += ipc/ipc.cc ipc/pager.cc ipc/ipc_marshal_cap.cc
|
SRC_CC += ipc/ipc.cc ipc/pager.cc ipc/ipc_marshal_cap.cc
|
||||||
SRC_CC += pager/pager.cc
|
SRC_CC += pager/pager.cc pager/common.cc
|
||||||
SRC_CC += avl_tree/avl_tree.cc
|
SRC_CC += avl_tree/avl_tree.cc
|
||||||
SRC_CC += allocator/slab.cc
|
SRC_CC += allocator/slab.cc
|
||||||
SRC_CC += allocator/allocator_avl.cc
|
SRC_CC += allocator/allocator_avl.cc
|
||||||
|
|
|
@ -8,7 +8,7 @@ LIBS += cxx syscall startup
|
||||||
|
|
||||||
SRC_CC += main_bootstrap.cc
|
SRC_CC += main_bootstrap.cc
|
||||||
SRC_CC += ipc/ipc.cc ipc/pager.cc
|
SRC_CC += ipc/ipc.cc ipc/pager.cc
|
||||||
SRC_CC += pager/pager.cc
|
SRC_CC += pager/pager.cc pager/common.cc
|
||||||
SRC_CC += avl_tree/avl_tree.cc
|
SRC_CC += avl_tree/avl_tree.cc
|
||||||
SRC_CC += allocator/slab.cc
|
SRC_CC += allocator/slab.cc
|
||||||
SRC_CC += allocator/allocator_avl.cc
|
SRC_CC += allocator/allocator_avl.cc
|
||||||
|
|
|
@ -8,7 +8,7 @@ LIBS += cxx
|
||||||
|
|
||||||
SRC_CC += cap_copy.cc
|
SRC_CC += cap_copy.cc
|
||||||
SRC_CC += ipc/ipc.cc ipc/ipc_marshal_cap.cc
|
SRC_CC += ipc/ipc.cc ipc/ipc_marshal_cap.cc
|
||||||
SRC_CC += pager/pager.cc
|
SRC_CC += pager/pager.cc pager/common.cc
|
||||||
SRC_CC += avl_tree/avl_tree.cc
|
SRC_CC += avl_tree/avl_tree.cc
|
||||||
SRC_CC += allocator/slab.cc
|
SRC_CC += allocator/slab.cc
|
||||||
SRC_CC += allocator/allocator_avl.cc
|
SRC_CC += allocator/allocator_avl.cc
|
||||||
|
|
|
@ -20,6 +20,7 @@ SRC_CC += lock/lock.cc
|
||||||
SRC_CC += signal/signal.cc signal/common.cc
|
SRC_CC += signal/signal.cc signal/common.cc
|
||||||
SRC_CC += server/server.cc server/common.cc
|
SRC_CC += server/server.cc server/common.cc
|
||||||
SRC_CC += thread/thread_bootstrap.cc thread/trace.cc
|
SRC_CC += thread/thread_bootstrap.cc thread/trace.cc
|
||||||
|
SRC_CC += pager/common.cc
|
||||||
|
|
||||||
INC_DIR += $(REP_DIR)/src/base/lock
|
INC_DIR += $(REP_DIR)/src/base/lock
|
||||||
INC_DIR += $(BASE_DIR)/src/base/lock
|
INC_DIR += $(BASE_DIR)/src/base/lock
|
||||||
|
|
|
@ -8,7 +8,7 @@ LIBS += cxx startup
|
||||||
|
|
||||||
SRC_CC += cap_copy.cc main_bootstrap.cc
|
SRC_CC += cap_copy.cc main_bootstrap.cc
|
||||||
SRC_CC += ipc/ipc.cc ipc/pager.cc ipc/ipc_marshal_cap.cc
|
SRC_CC += ipc/ipc.cc ipc/pager.cc ipc/ipc_marshal_cap.cc
|
||||||
SRC_CC += pager/pager.cc
|
SRC_CC += pager/pager.cc pager/common.cc
|
||||||
SRC_CC += avl_tree/avl_tree.cc
|
SRC_CC += avl_tree/avl_tree.cc
|
||||||
SRC_CC += allocator/slab.cc
|
SRC_CC += allocator/slab.cc
|
||||||
SRC_CC += allocator/allocator_avl.cc
|
SRC_CC += allocator/allocator_avl.cc
|
||||||
|
|
|
@ -8,7 +8,7 @@ LIBS += cxx startup
|
||||||
|
|
||||||
SRC_CC += cap_copy.cc main_bootstrap.cc
|
SRC_CC += cap_copy.cc main_bootstrap.cc
|
||||||
SRC_CC += ipc/ipc.cc ipc/pager.cc ipc/ipc_marshal_cap.cc
|
SRC_CC += ipc/ipc.cc ipc/pager.cc ipc/ipc_marshal_cap.cc
|
||||||
SRC_CC += pager/pager.cc
|
SRC_CC += pager/pager.cc pager/common.cc
|
||||||
SRC_CC += avl_tree/avl_tree.cc
|
SRC_CC += avl_tree/avl_tree.cc
|
||||||
SRC_CC += allocator/slab.cc
|
SRC_CC += allocator/slab.cc
|
||||||
SRC_CC += allocator/allocator_avl.cc
|
SRC_CC += allocator/allocator_avl.cc
|
||||||
|
|
|
@ -79,14 +79,10 @@ namespace Genode {
|
||||||
*/
|
*/
|
||||||
virtual int pager(Ipc_pager &ps) = 0;
|
virtual int pager(Ipc_pager &ps) = 0;
|
||||||
|
|
||||||
void wake_up()
|
/**
|
||||||
{
|
* Wake up the faulter
|
||||||
/* notify pager to wake up faulter */
|
*/
|
||||||
Msgbuf<16> snd, rcv;
|
void wake_up();
|
||||||
Native_capability pager = cap();
|
|
||||||
Ipc_client ipc_client(pager, &snd, &rcv);
|
|
||||||
ipc_client << this << IPC_CALL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assign user-level exception handler for the pager object
|
* Assign user-level exception handler for the pager object
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* \brief Standard implementation of pager object
|
||||||
|
* \author Martin Stein
|
||||||
|
* \date 2013-11-04
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2013 Genode Labs GmbH
|
||||||
|
*
|
||||||
|
* This file is part of the Genode OS framework, which is distributed
|
||||||
|
* under the terms of the GNU General Public License version 2.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Genode includes */
|
||||||
|
#include <base/pager.h>
|
||||||
|
|
||||||
|
using namespace Genode;
|
||||||
|
|
||||||
|
|
||||||
|
void Pager_object::wake_up()
|
||||||
|
{
|
||||||
|
/* notify pager to wake up faulter */
|
||||||
|
Msgbuf<16> snd, rcv;
|
||||||
|
Native_capability pager = cap();
|
||||||
|
Ipc_client ipc_client(pager, &snd, &rcv);
|
||||||
|
ipc_client << this << IPC_CALL;
|
||||||
|
}
|
Loading…
Reference in New Issue