genode/repos/os/include/report_rom/rom_registry.h

52 lines
1.1 KiB
C++

/*
* \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 <report_rom/rom_module.h>
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_ */