/* * \brief Core implementation of the ROM session interface * \author Norman Feske * \date 2006-07-06 */ /* * Copyright (C) 2006-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. */ #include #include #include #include using namespace Genode; Rom_session_component::Rom_session_component(Rom_fs *rom_fs, Rpc_entrypoint *ds_ep, const char *args) : _rom_module(_find_rom(rom_fs, args)), _ds(_rom_module ? _rom_module->size() : 0, _rom_module ? _rom_module->addr() : 0, false, false, 0), _ds_ep(ds_ep) { /* ROM module not found */ if (!_rom_module) throw Root::Invalid_args(); _ds_cap = static_cap_cast(_ds_ep->manage(&_ds)); } Rom_session_component::~Rom_session_component() { _ds_ep->dissolve(&_ds); }