remote_rom: Genode API compatibility
This commit is contained in:
committed by
Norman Feske
parent
92ef8619c7
commit
557ffbac80
@@ -27,7 +27,6 @@
|
||||
|
||||
namespace Remote_rom {
|
||||
using Genode::Packet_descriptor;
|
||||
using Genode::env;
|
||||
using Net::Ethernet_frame;
|
||||
using Net::Ipv4_packet;
|
||||
using Net::Mac_address;
|
||||
|
||||
@@ -165,7 +165,7 @@ class Remote_rom::Backend_client :
|
||||
|
||||
void send_ack(Content_receiver const &recv);
|
||||
|
||||
void receive(Packet &packet, Size_guard &size_guard);
|
||||
void receive(Packet &packet, Size_guard &size_guard) override;
|
||||
|
||||
public:
|
||||
|
||||
@@ -177,7 +177,7 @@ class Remote_rom::Backend_client :
|
||||
{ }
|
||||
|
||||
|
||||
void register_receiver(Rom_receiver_base *receiver)
|
||||
void register_receiver(Rom_receiver_base *receiver) override
|
||||
{
|
||||
/* TODO support multiple receivers (ROM names) */
|
||||
_content_receiver.register_receiver(receiver);
|
||||
|
||||
@@ -194,7 +194,7 @@ class Remote_rom::Backend_server :
|
||||
|
||||
void send_packet(Content_sender const &sender);
|
||||
|
||||
void receive(Packet &packet, Size_guard &);
|
||||
void receive(Packet &packet, Size_guard &) override;
|
||||
|
||||
public:
|
||||
|
||||
@@ -206,11 +206,11 @@ class Remote_rom::Backend_server :
|
||||
{ }
|
||||
|
||||
|
||||
void register_forwarder(Rom_forwarder_base *forwarder)
|
||||
void register_forwarder(Rom_forwarder_base *forwarder) override
|
||||
{ _content_sender.register_forwarder(forwarder); }
|
||||
|
||||
|
||||
void send_update()
|
||||
void send_update() override
|
||||
{
|
||||
if (!_content_sender.content_size()) return;
|
||||
|
||||
|
||||
@@ -177,7 +177,7 @@ class Remote_rom::Root : public Genode::Root_component<Session_component>
|
||||
|
||||
protected:
|
||||
|
||||
Session_component *_create_session(const char *)
|
||||
Session_component *_create_session(const char *) override
|
||||
{
|
||||
using namespace Genode;
|
||||
|
||||
@@ -236,10 +236,10 @@ struct Remote_rom::Main : public Rom_receiver_base
|
||||
_backend.register_receiver(this);
|
||||
}
|
||||
|
||||
const char* module_name() const { return remotename; }
|
||||
unsigned content_hash() const { return rom_module.hash(); }
|
||||
const char* module_name() const override { return remotename; }
|
||||
unsigned content_hash() const override { return rom_module.hash(); }
|
||||
|
||||
char* start_new_content(unsigned hash, size_t len)
|
||||
char* start_new_content(unsigned hash, size_t len) override
|
||||
{
|
||||
/* save expected hash */
|
||||
/* TODO (optional) skip if we already have the same data */
|
||||
@@ -248,7 +248,7 @@ struct Remote_rom::Main : public Rom_receiver_base
|
||||
return rom_module.base(len);
|
||||
}
|
||||
|
||||
void commit_new_content(bool abort=false)
|
||||
void commit_new_content(bool abort=false) override
|
||||
{
|
||||
if (abort)
|
||||
return;
|
||||
|
||||
@@ -60,8 +60,8 @@ struct Remote_rom::Rom_forwarder : Rom_forwarder_base
|
||||
update();
|
||||
}
|
||||
|
||||
void start_transmission() { _transmitting = true; }
|
||||
void finish_transmission()
|
||||
void start_transmission() override { _transmitting = true; }
|
||||
void finish_transmission() override
|
||||
{
|
||||
_transmitting = false;
|
||||
|
||||
@@ -71,7 +71,7 @@ struct Remote_rom::Rom_forwarder : Rom_forwarder_base
|
||||
update();
|
||||
}
|
||||
|
||||
const char *module_name() const { return modulename; }
|
||||
const char *module_name() const override { return modulename; }
|
||||
|
||||
void update()
|
||||
{
|
||||
@@ -85,7 +85,7 @@ struct Remote_rom::Rom_forwarder : Rom_forwarder_base
|
||||
/* refresh dataspace if valid */
|
||||
_rom.update();
|
||||
|
||||
if (_rom.is_valid()) {
|
||||
if (_rom.valid()) {
|
||||
_current_hash = cksum(_rom.local_addr<char>(), content_size());
|
||||
|
||||
/* trigger backend_server */
|
||||
@@ -93,14 +93,14 @@ struct Remote_rom::Rom_forwarder : Rom_forwarder_base
|
||||
}
|
||||
}
|
||||
|
||||
unsigned content_hash() const
|
||||
unsigned content_hash() const override
|
||||
{
|
||||
return _current_hash;
|
||||
}
|
||||
|
||||
size_t content_size() const
|
||||
size_t content_size() const override
|
||||
{
|
||||
if (_rom.is_valid()) {
|
||||
if (_rom.valid()) {
|
||||
if (binary)
|
||||
return _rom.size();
|
||||
else
|
||||
@@ -110,9 +110,9 @@ struct Remote_rom::Rom_forwarder : Rom_forwarder_base
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t transfer_content(char *dst, size_t dst_len, size_t offset=0) const
|
||||
size_t transfer_content(char *dst, size_t dst_len, size_t offset=0) const override
|
||||
{
|
||||
if (_rom.is_valid()) {
|
||||
if (_rom.valid()) {
|
||||
size_t const len = Genode::min(dst_len, content_size()-offset);
|
||||
Genode::memcpy(dst, _rom.local_addr<char>() + offset, len);
|
||||
/* clear remaining buffer to prevent data leakage */
|
||||
|
||||
Reference in New Issue
Block a user