/* * \brief Interfaces for the registry of ROM modules * \author Norman Feske * \date 2014-01-11 */ /* * Copyright (C) 2014-2017 Genode Labs GmbH * * This file is part of the Genode OS framework, which is distributed * under the terms of the GNU Affero General Public License version 3. */ #ifndef _INCLUDE__REPORT_ROM__ROM_REGISTRY_H_ #define _INCLUDE__REPORT_ROM__ROM_REGISTRY_H_ #include namespace Rom { struct Registry_for_reader; struct Registry_for_writer; } struct Rom::Registry_for_reader : Interface { /** * Exception type */ class Lookup_failed { }; /** * Lookup ROM module for given ROM session label * * \throw Lookup_failed */ virtual Readable_module &lookup(Reader &reader, Module::Name const &rom_label) = 0; virtual void release(Reader &reader, Readable_module &module) = 0; }; struct Rom::Registry_for_writer : Interface { virtual Module &lookup(Writer &writer, Module::Name const &name) = 0; virtual void release(Writer &writer, Module &module) = 0; }; #endif /* _INCLUDE__REPORT_ROM__ROM_REGISTRY_H_ */