os: accessor for addr and size of packet stream

This commit is contained in:
Josef Söntgen 2019-01-15 10:56:13 +01:00 committed by Norman Feske
parent 3858e1df51
commit f9523c32d5
1 changed files with 11 additions and 0 deletions

View File

@ -532,6 +532,7 @@ class Genode::Packet_stream_base
Genode::Region_map &_rm;
Genode::Dataspace_capability _ds_cap;
void *_ds_local_base;
Genode::size_t _ds_size { 0 };
Genode::off_t _submit_queue_offset;
Genode::off_t _ack_queue_offset;
@ -563,6 +564,7 @@ class Genode::Packet_stream_base
if ((Genode::size_t)_bulk_buffer_offset >= ds_size)
throw Transport_dataspace_too_small();
_ds_size = ds_size;
_bulk_buffer_size = ds_size - _bulk_buffer_offset;
}
@ -617,6 +619,9 @@ class Genode::Packet_stream_base
return (CONTENT_TYPE *)((Genode::addr_t)_ds_local_base + packet.offset());
}
Genode::addr_t ds_local_base() const { return (Genode::addr_t)_ds_local_base; }
Genode::addr_t ds_size() const { return _ds_size; }
};
@ -823,6 +828,9 @@ class Genode::Packet_stream_source : private Packet_stream_base
Genode::Dataspace_capability dataspace() {
return Packet_stream_base::_dataspace(); }
Genode::addr_t ds_local_base() const { return reinterpret_cast<Genode::addr_t>(_ds_local_base); }
Genode::addr_t ds_size() const { return Packet_stream_base::_ds_size; }
};
@ -998,6 +1006,9 @@ class Genode::Packet_stream_sink : private Packet_stream_base
Genode::Dataspace_capability dataspace() {
return Packet_stream_base::_dataspace(); }
Genode::addr_t ds_local_base() const { return reinterpret_cast<Genode::addr_t>(_ds_local_base); }
Genode::addr_t ds_size() const { return Packet_stream_base::_ds_size; }
};
#endif /* _INCLUDE__OS__PACKET_STREAM_H_ */