sel4: complement base-common.mk

This patch extends the base-common library with the symbols needed to
link core.
This commit is contained in:
Norman Feske 2015-05-01 19:36:09 +02:00 committed by Christian Helmuth
parent 885e9333ac
commit 65a74cf5e0
3 changed files with 90 additions and 3 deletions

View File

@ -16,12 +16,14 @@ SRC_CC += child/child.cc
SRC_CC += process/process.cc
SRC_CC += elf/elf_binary.cc
SRC_CC += lock/lock.cc
SRC_CC += signal/signal.cc signal/common.cc
SRC_CC += server/server.cc
#SRC_CC += thread/thread.cc
SRC_CC += signal/signal.cc signal/common.cc signal/platform.cc
SRC_CC += server/server.cc server/common.cc
SRC_CC += pager/pager.cc pager/common.cc
SRC_CC += thread/thread.cc
SRC_CC += thread/trace.cc
SRC_CC += thread/myself.cc
SRC_CC += thread/context_allocator.cc
SRC_CC += thread/thread_bootstrap.cc
#SRC_CC += env/cap_map.cc
INC_DIR += $(REP_DIR)/src/base/lock

View File

@ -20,6 +20,22 @@
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 **
*****************/

View 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);
}