mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-30 16:14:13 +00:00
sel4: complement base-common.mk
This patch extends the base-common library with the symbols needed to link core.
This commit is contained in:
parent
885e9333ac
commit
65a74cf5e0
@ -16,12 +16,14 @@ SRC_CC += child/child.cc
|
|||||||
SRC_CC += process/process.cc
|
SRC_CC += process/process.cc
|
||||||
SRC_CC += elf/elf_binary.cc
|
SRC_CC += elf/elf_binary.cc
|
||||||
SRC_CC += lock/lock.cc
|
SRC_CC += lock/lock.cc
|
||||||
SRC_CC += signal/signal.cc signal/common.cc
|
SRC_CC += signal/signal.cc signal/common.cc signal/platform.cc
|
||||||
SRC_CC += server/server.cc
|
SRC_CC += server/server.cc server/common.cc
|
||||||
#SRC_CC += thread/thread.cc
|
SRC_CC += pager/pager.cc pager/common.cc
|
||||||
|
SRC_CC += thread/thread.cc
|
||||||
SRC_CC += thread/trace.cc
|
SRC_CC += thread/trace.cc
|
||||||
SRC_CC += thread/myself.cc
|
SRC_CC += thread/myself.cc
|
||||||
SRC_CC += thread/context_allocator.cc
|
SRC_CC += thread/context_allocator.cc
|
||||||
|
SRC_CC += thread/thread_bootstrap.cc
|
||||||
#SRC_CC += env/cap_map.cc
|
#SRC_CC += env/cap_map.cc
|
||||||
|
|
||||||
INC_DIR += $(REP_DIR)/src/base/lock
|
INC_DIR += $(REP_DIR)/src/base/lock
|
||||||
|
@ -20,6 +20,22 @@
|
|||||||
using namespace Genode;
|
using namespace Genode;
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************
|
||||||
|
** IPC marshalling support **
|
||||||
|
*****************************/
|
||||||
|
|
||||||
|
void Ipc_ostream::_marshal_capability(Native_capability const &cap)
|
||||||
|
{
|
||||||
|
PDBG("not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Ipc_istream::_unmarshal_capability(Native_capability &cap)
|
||||||
|
{
|
||||||
|
PDBG("not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*****************
|
/*****************
|
||||||
** Ipc_ostream **
|
** Ipc_ostream **
|
||||||
*****************/
|
*****************/
|
||||||
|
69
repos/base-sel4/src/base/pager/pager.cc
Normal file
69
repos/base-sel4/src/base/pager/pager.cc
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* \brief Pager framework
|
||||||
|
* \author Norman Feske
|
||||||
|
* \date 2015-05-01
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2015 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>
|
||||||
|
#include <base/sleep.h>
|
||||||
|
|
||||||
|
using namespace Genode;
|
||||||
|
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
** Pager activation **
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
void Pager_activation_base::entry()
|
||||||
|
{
|
||||||
|
Ipc_pager pager;
|
||||||
|
_cap = pager;
|
||||||
|
_cap_valid.unlock();
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
|
||||||
|
PDBG("not implemented");
|
||||||
|
sleep_forever();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
** Pager entrypoint **
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
Pager_entrypoint::Pager_entrypoint(Cap_session *, Pager_activation_base *a)
|
||||||
|
: _activation(a)
|
||||||
|
{ _activation->ep(this); }
|
||||||
|
|
||||||
|
|
||||||
|
void Pager_entrypoint::dissolve(Pager_object *obj)
|
||||||
|
{
|
||||||
|
remove_locked(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Pager_capability Pager_entrypoint::manage(Pager_object *obj)
|
||||||
|
{
|
||||||
|
/* return invalid capability if no activation is present */
|
||||||
|
if (!_activation) return Pager_capability();
|
||||||
|
|
||||||
|
_activation->cap();
|
||||||
|
|
||||||
|
Untyped_capability cap = Native_capability(_activation->cap().dst(), obj->badge());
|
||||||
|
|
||||||
|
/* add server object to object pool */
|
||||||
|
obj->cap(cap);
|
||||||
|
insert(obj);
|
||||||
|
|
||||||
|
/* return capability that uses the object id as badge */
|
||||||
|
return reinterpret_cap_cast<Pager_object>(cap);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user