mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-22 06:57:51 +00:00
os/packet_stream: avoid global env
Pass an explicit Region_map reference to stream constructors. Issue #1987 Issue #2034
This commit is contained in:
parent
ce3170f3f7
commit
9bae4823a0
@ -37,10 +37,11 @@ class Block::Session_client : public Genode::Rpc_client<Session>
|
|||||||
* transmission buffer
|
* transmission buffer
|
||||||
*/
|
*/
|
||||||
Session_client(Session_capability session,
|
Session_client(Session_capability session,
|
||||||
Genode::Range_allocator *tx_buffer_alloc)
|
Genode::Range_allocator &tx_buffer_alloc,
|
||||||
|
Genode::Region_map &rm)
|
||||||
:
|
:
|
||||||
Genode::Rpc_client<Session>(session),
|
Genode::Rpc_client<Session>(session),
|
||||||
_tx(call<Rpc_tx_cap>(), tx_buffer_alloc)
|
_tx(call<Rpc_tx_cap>(), rm, tx_buffer_alloc)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ struct Block::Connection : Genode::Connection<Session>, Session_client
|
|||||||
const char *label = "")
|
const char *label = "")
|
||||||
:
|
:
|
||||||
Genode::Connection<Session>(env, _session(env.parent(), label, tx_buf_size)),
|
Genode::Connection<Session>(env, _session(env.parent(), label, tx_buf_size)),
|
||||||
Session_client(cap(), tx_block_alloc)
|
Session_client(cap(), *tx_block_alloc, env.rm())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -62,7 +62,7 @@ struct Block::Connection : Genode::Connection<Session>, Session_client
|
|||||||
const char *label = "")
|
const char *label = "")
|
||||||
:
|
:
|
||||||
Genode::Connection<Session>(_session(*Genode::env()->parent(), label, tx_buf_size)),
|
Genode::Connection<Session>(_session(*Genode::env()->parent(), label, tx_buf_size)),
|
||||||
Session_client(cap(), tx_block_alloc)
|
Session_client(cap(), *tx_block_alloc, *Genode::env()->rm_session())
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ class Block::Session_rpc_object : public Genode::Rpc_object<Session, Session_rpc
|
|||||||
*/
|
*/
|
||||||
Session_rpc_object(Genode::Dataspace_capability tx_ds,
|
Session_rpc_object(Genode::Dataspace_capability tx_ds,
|
||||||
Genode::Rpc_entrypoint &ep)
|
Genode::Rpc_entrypoint &ep)
|
||||||
: _tx(tx_ds, ep) { }
|
: _tx(tx_ds, *Genode::env()->rm_session(), ep) { }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return capability to packet-stream channel
|
* Return capability to packet-stream channel
|
||||||
|
@ -37,10 +37,11 @@ class File_system::Session_client : public Genode::Rpc_client<Session>
|
|||||||
* transmission buffer
|
* transmission buffer
|
||||||
*/
|
*/
|
||||||
Session_client(Session_capability session,
|
Session_client(Session_capability session,
|
||||||
Genode::Range_allocator &tx_buffer_alloc)
|
Genode::Range_allocator &tx_buffer_alloc,
|
||||||
|
Genode::Region_map &rm)
|
||||||
:
|
:
|
||||||
Rpc_client<Session>(session),
|
Rpc_client<Session>(session),
|
||||||
_tx(call<Rpc_tx_cap>(), &tx_buffer_alloc)
|
_tx(call<Rpc_tx_cap>(), rm, tx_buffer_alloc)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ struct File_system::Connection_base : Genode::Connection<Session>, Session_clien
|
|||||||
:
|
:
|
||||||
Genode::Connection<Session>(env, _session(env.parent(), label, root,
|
Genode::Connection<Session>(env, _session(env.parent(), label, root,
|
||||||
writeable, tx_buf_size)),
|
writeable, tx_buf_size)),
|
||||||
Session_client(cap(), tx_block_alloc)
|
Session_client(cap(), tx_block_alloc, env.rm())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -94,7 +94,7 @@ struct File_system::Connection_base : Genode::Connection<Session>, Session_clien
|
|||||||
:
|
:
|
||||||
Genode::Connection<Session>(_session(*Genode::env()->parent(), label,
|
Genode::Connection<Session>(_session(*Genode::env()->parent(), label,
|
||||||
root, writeable, tx_buf_size)),
|
root, writeable, tx_buf_size)),
|
||||||
Session_client(cap(), tx_block_alloc)
|
Session_client(cap(), tx_block_alloc, *Genode::env()->rm_session())
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ class File_system::Session_rpc_object : public Genode::Rpc_object<Session, Sessi
|
|||||||
*/
|
*/
|
||||||
Session_rpc_object(Genode::Dataspace_capability tx_ds,
|
Session_rpc_object(Genode::Dataspace_capability tx_ds,
|
||||||
Genode::Rpc_entrypoint &ep)
|
Genode::Rpc_entrypoint &ep)
|
||||||
: _tx(tx_ds, ep) { }
|
: _tx(tx_ds, *Genode::env()->rm_session(), ep) { }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return capability to packet-stream channel
|
* Return capability to packet-stream channel
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2009-2013 Genode Labs GmbH
|
* Copyright (C) 2009-2016 Genode Labs GmbH
|
||||||
*
|
*
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
* This file is part of the Genode OS framework, which is distributed
|
||||||
* under the terms of the GNU General Public License version 2.
|
* under the terms of the GNU General Public License version 2.
|
||||||
@ -38,11 +38,12 @@ class Nic::Session_client : public Genode::Rpc_client<Session>
|
|||||||
* transmission buffer
|
* transmission buffer
|
||||||
*/
|
*/
|
||||||
Session_client(Session_capability session,
|
Session_client(Session_capability session,
|
||||||
Genode::Range_allocator *tx_buffer_alloc)
|
Genode::Range_allocator &tx_buffer_alloc,
|
||||||
|
Genode::Region_map &rm)
|
||||||
:
|
:
|
||||||
Genode::Rpc_client<Session>(session),
|
Genode::Rpc_client<Session>(session),
|
||||||
_tx(call<Rpc_tx_cap>(), tx_buffer_alloc),
|
_tx(call<Rpc_tx_cap>(), rm, tx_buffer_alloc),
|
||||||
_rx(call<Rpc_rx_cap>())
|
_rx(call<Rpc_rx_cap>(),rm )
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ struct Nic::Connection : Genode::Connection<Session>, Session_client
|
|||||||
:
|
:
|
||||||
Genode::Connection<Session>(env, _session(env.parent(), label,
|
Genode::Connection<Session>(env, _session(env.parent(), label,
|
||||||
tx_buf_size, rx_buf_size)),
|
tx_buf_size, rx_buf_size)),
|
||||||
Session_client(cap(), tx_block_alloc)
|
Session_client(cap(), *tx_block_alloc, env.rm())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -72,7 +72,7 @@ struct Nic::Connection : Genode::Connection<Session>, Session_client
|
|||||||
:
|
:
|
||||||
Genode::Connection<Session>(_session(*Genode::env()->parent(), label,
|
Genode::Connection<Session>(_session(*Genode::env()->parent(), label,
|
||||||
tx_buf_size, rx_buf_size)),
|
tx_buf_size, rx_buf_size)),
|
||||||
Session_client(cap(), tx_block_alloc)
|
Session_client(cap(), *tx_block_alloc, *Genode::env()->rm_session())
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -46,7 +46,8 @@ class Nic::Session_rpc_object : public Genode::Rpc_object<Session, Session_rpc_o
|
|||||||
Genode::Range_allocator *rx_buffer_alloc,
|
Genode::Range_allocator *rx_buffer_alloc,
|
||||||
Genode::Rpc_entrypoint &ep)
|
Genode::Rpc_entrypoint &ep)
|
||||||
:
|
:
|
||||||
_tx(tx_ds, ep), _rx(rx_ds, rx_buffer_alloc, ep) { }
|
_tx(tx_ds, *Genode::env()->rm_session(), ep),
|
||||||
|
_rx(rx_ds, *Genode::env()->rm_session(), *rx_buffer_alloc, ep) { }
|
||||||
|
|
||||||
Genode::Capability<Tx> _tx_cap() { return _tx.cap(); }
|
Genode::Capability<Tx> _tx_cap() { return _tx.cap(); }
|
||||||
Genode::Capability<Rx> _rx_cap() { return _rx.cap(); }
|
Genode::Capability<Rx> _rx_cap() { return _rx.cap(); }
|
||||||
|
@ -433,6 +433,7 @@ class Genode::Packet_stream_base
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
Genode::Region_map &_rm;
|
||||||
Genode::Dataspace_capability _ds_cap;
|
Genode::Dataspace_capability _ds_cap;
|
||||||
void *_ds_local_base;
|
void *_ds_local_base;
|
||||||
|
|
||||||
@ -449,13 +450,14 @@ class Genode::Packet_stream_base
|
|||||||
* \throw 'Transport_dataspace_too_small'
|
* \throw 'Transport_dataspace_too_small'
|
||||||
*/
|
*/
|
||||||
Packet_stream_base(Genode::Dataspace_capability transport_ds,
|
Packet_stream_base(Genode::Dataspace_capability transport_ds,
|
||||||
|
Genode::Region_map &rm,
|
||||||
Genode::size_t submit_queue_size,
|
Genode::size_t submit_queue_size,
|
||||||
Genode::size_t ack_queue_size)
|
Genode::size_t ack_queue_size)
|
||||||
:
|
:
|
||||||
_ds_cap(transport_ds),
|
_rm(rm), _ds_cap(transport_ds),
|
||||||
|
|
||||||
/* map dataspace locally */
|
/* map dataspace locally */
|
||||||
_ds_local_base(Genode::env()->rm_session()->attach(_ds_cap)),
|
_ds_local_base(rm.attach(_ds_cap)),
|
||||||
_submit_queue_offset(0),
|
_submit_queue_offset(0),
|
||||||
_ack_queue_offset(_submit_queue_offset + submit_queue_size),
|
_ack_queue_offset(_submit_queue_offset + submit_queue_size),
|
||||||
_bulk_buffer_offset(_ack_queue_offset + ack_queue_size)
|
_bulk_buffer_offset(_ack_queue_offset + ack_queue_size)
|
||||||
@ -479,7 +481,7 @@ class Genode::Packet_stream_base
|
|||||||
*/
|
*/
|
||||||
try {
|
try {
|
||||||
/* unmap transport dataspace locally */
|
/* unmap transport dataspace locally */
|
||||||
Genode::env()->rm_session()->detach(_ds_local_base);
|
_rm.detach(_ds_local_base);
|
||||||
} catch (...) { }
|
} catch (...) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -541,7 +543,7 @@ class Genode::Packet_stream_source : private Packet_stream_base
|
|||||||
typedef typename POLICY::Ack_queue Ack_queue;
|
typedef typename POLICY::Ack_queue Ack_queue;
|
||||||
typedef typename POLICY::Content_type Content_type;
|
typedef typename POLICY::Content_type Content_type;
|
||||||
|
|
||||||
Genode::Range_allocator *_packet_alloc;
|
Genode::Range_allocator &_packet_alloc;
|
||||||
|
|
||||||
Packet_descriptor_transmitter<Submit_queue> _submit_transmitter;
|
Packet_descriptor_transmitter<Submit_queue> _submit_transmitter;
|
||||||
Packet_descriptor_receiver<Ack_queue> _ack_receiver;
|
Packet_descriptor_receiver<Ack_queue> _ack_receiver;
|
||||||
@ -558,6 +560,7 @@ class Genode::Packet_stream_source : private Packet_stream_base
|
|||||||
*
|
*
|
||||||
* \param transport_ds dataspace used for communication buffer shared
|
* \param transport_ds dataspace used for communication buffer shared
|
||||||
* between source and sink
|
* between source and sink
|
||||||
|
* \param rm region to map buffer dataspace into
|
||||||
* \param packet_alloc allocator for managing packet allocation within
|
* \param packet_alloc allocator for managing packet allocation within
|
||||||
* the shared communication buffer
|
* the shared communication buffer
|
||||||
*
|
*
|
||||||
@ -565,10 +568,11 @@ class Genode::Packet_stream_source : private Packet_stream_base
|
|||||||
* initialized by the constructor using dataspace-relative offsets
|
* initialized by the constructor using dataspace-relative offsets
|
||||||
* rather than pointers.
|
* rather than pointers.
|
||||||
*/
|
*/
|
||||||
Packet_stream_source(Genode::Range_allocator *packet_alloc,
|
Packet_stream_source(Genode::Dataspace_capability transport_ds_cap,
|
||||||
Genode::Dataspace_capability transport_ds_cap)
|
Genode::Region_map &rm,
|
||||||
|
Genode::Range_allocator &packet_alloc)
|
||||||
:
|
:
|
||||||
Packet_stream_base(transport_ds_cap,
|
Packet_stream_base(transport_ds_cap, rm,
|
||||||
sizeof(Submit_queue),
|
sizeof(Submit_queue),
|
||||||
sizeof(Ack_queue)),
|
sizeof(Ack_queue)),
|
||||||
_packet_alloc(packet_alloc),
|
_packet_alloc(packet_alloc),
|
||||||
@ -580,13 +584,13 @@ class Genode::Packet_stream_source : private Packet_stream_base
|
|||||||
Ack_queue::CONSUMER))
|
Ack_queue::CONSUMER))
|
||||||
{
|
{
|
||||||
/* initialize packet allocator */
|
/* initialize packet allocator */
|
||||||
_packet_alloc->add_range(_bulk_buffer_offset,
|
_packet_alloc.add_range(_bulk_buffer_offset,
|
||||||
_bulk_buffer_size);
|
_bulk_buffer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
~Packet_stream_source()
|
~Packet_stream_source()
|
||||||
{
|
{
|
||||||
_packet_alloc->remove_range(_bulk_buffer_offset,
|
_packet_alloc.remove_range(_bulk_buffer_offset,
|
||||||
_bulk_buffer_size);
|
_bulk_buffer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -643,7 +647,7 @@ class Genode::Packet_stream_source : private Packet_stream_base
|
|||||||
Packet_descriptor alloc_packet(Genode::size_t size, int align = POLICY::Packet_descriptor::PACKET_ALIGNMENT)
|
Packet_descriptor alloc_packet(Genode::size_t size, int align = POLICY::Packet_descriptor::PACKET_ALIGNMENT)
|
||||||
{
|
{
|
||||||
void *base = 0;
|
void *base = 0;
|
||||||
if (size && _packet_alloc->alloc_aligned(size, &base, align).error())
|
if (size && _packet_alloc.alloc_aligned(size, &base, align).error())
|
||||||
throw Packet_alloc_failed();
|
throw Packet_alloc_failed();
|
||||||
|
|
||||||
return Packet_descriptor((Genode::off_t)base, size);
|
return Packet_descriptor((Genode::off_t)base, size);
|
||||||
@ -706,7 +710,7 @@ class Genode::Packet_stream_source : private Packet_stream_base
|
|||||||
void release_packet(Packet_descriptor packet)
|
void release_packet(Packet_descriptor packet)
|
||||||
{
|
{
|
||||||
if (packet.size())
|
if (packet.size())
|
||||||
_packet_alloc->free((void *)packet.offset(), packet.size());
|
_packet_alloc.free((void *)packet.offset(), packet.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
void debug_print_buffers() {
|
void debug_print_buffers() {
|
||||||
@ -743,9 +747,10 @@ class Genode::Packet_stream_sink : private Packet_stream_base
|
|||||||
* \param transport_ds dataspace used for communication buffer shared between
|
* \param transport_ds dataspace used for communication buffer shared between
|
||||||
* source and sink
|
* source and sink
|
||||||
*/
|
*/
|
||||||
Packet_stream_sink(Genode::Dataspace_capability transport_ds)
|
Packet_stream_sink(Genode::Dataspace_capability transport_ds,
|
||||||
|
Genode::Region_map &rm)
|
||||||
:
|
:
|
||||||
Packet_stream_base(transport_ds, sizeof(Submit_queue), sizeof(Ack_queue)),
|
Packet_stream_base(transport_ds, rm, sizeof(Submit_queue), sizeof(Ack_queue)),
|
||||||
|
|
||||||
/* construct packet-descriptor queues */
|
/* construct packet-descriptor queues */
|
||||||
_submit_receiver(construct_at<Submit_queue>(_submit_queue_local_base(),
|
_submit_receiver(construct_at<Submit_queue>(_submit_queue_local_base(),
|
||||||
|
@ -42,9 +42,11 @@ class Packet_stream_rx::Client : public Genode::Rpc_client<CHANNEL>
|
|||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
Client(Genode::Capability<CHANNEL> channel_cap) :
|
Client(Genode::Capability<CHANNEL> channel_cap,
|
||||||
|
Genode::Region_map &rm)
|
||||||
|
:
|
||||||
Genode::Rpc_client<CHANNEL>(channel_cap),
|
Genode::Rpc_client<CHANNEL>(channel_cap),
|
||||||
_sink(Base::template call<Rpc_dataspace>())
|
_sink(Base::template call<Rpc_dataspace>(), rm)
|
||||||
{
|
{
|
||||||
/* wire data-flow signals for the packet receiver */
|
/* wire data-flow signals for the packet receiver */
|
||||||
_sink.register_sigh_ack_avail(Base::template call<Rpc_ack_avail>());
|
_sink.register_sigh_ack_avail(Base::template call<Rpc_ack_avail>());
|
||||||
|
@ -45,9 +45,10 @@ class Packet_stream_rx::Rpc_object : public Genode::Rpc_object<CHANNEL, Rpc_obje
|
|||||||
* interface
|
* interface
|
||||||
*/
|
*/
|
||||||
Rpc_object(Genode::Dataspace_capability ds,
|
Rpc_object(Genode::Dataspace_capability ds,
|
||||||
Genode::Range_allocator *buffer_alloc,
|
Genode::Region_map &rm,
|
||||||
|
Genode::Range_allocator &buffer_alloc,
|
||||||
Genode::Rpc_entrypoint &ep)
|
Genode::Rpc_entrypoint &ep)
|
||||||
: _ep(ep), _cap(_ep.manage(this)), _source(buffer_alloc, ds),
|
: _ep(ep), _cap(_ep.manage(this)), _source(ds, rm, buffer_alloc),
|
||||||
|
|
||||||
/* init signal handlers with default handlers of source */
|
/* init signal handlers with default handlers of source */
|
||||||
_sigh_ready_to_submit(_source.sigh_ready_to_submit()),
|
_sigh_ready_to_submit(_source.sigh_ready_to_submit()),
|
||||||
|
@ -49,10 +49,11 @@ class Packet_stream_tx::Client : public Genode::Rpc_client<CHANNEL>
|
|||||||
* transmission buffer
|
* transmission buffer
|
||||||
*/
|
*/
|
||||||
Client(Genode::Capability<CHANNEL> channel_cap,
|
Client(Genode::Capability<CHANNEL> channel_cap,
|
||||||
Genode::Range_allocator *buffer_alloc)
|
Genode::Region_map &rm,
|
||||||
|
Genode::Range_allocator &buffer_alloc)
|
||||||
:
|
:
|
||||||
Genode::Rpc_client<CHANNEL>(channel_cap),
|
Genode::Rpc_client<CHANNEL>(channel_cap),
|
||||||
_source(buffer_alloc, Base::template call<Rpc_dataspace>())
|
_source(Base::template call<Rpc_dataspace>(), rm, buffer_alloc)
|
||||||
{
|
{
|
||||||
/* wire data-flow signals for the packet transmitter */
|
/* wire data-flow signals for the packet transmitter */
|
||||||
_source.register_sigh_packet_avail(Base::template call<Rpc_packet_avail>());
|
_source.register_sigh_packet_avail(Base::template call<Rpc_packet_avail>());
|
||||||
|
@ -43,9 +43,10 @@ class Packet_stream_tx::Rpc_object : public Genode::Rpc_object<CHANNEL, Rpc_obje
|
|||||||
* interface
|
* interface
|
||||||
*/
|
*/
|
||||||
Rpc_object(Genode::Dataspace_capability ds,
|
Rpc_object(Genode::Dataspace_capability ds,
|
||||||
|
Genode::Region_map &rm,
|
||||||
Genode::Rpc_entrypoint &ep)
|
Genode::Rpc_entrypoint &ep)
|
||||||
:
|
:
|
||||||
_ep(ep), _cap(_ep.manage(this)), _sink(ds),
|
_ep(ep), _cap(_ep.manage(this)), _sink(ds, rm),
|
||||||
|
|
||||||
/* init signal handlers with default handlers of sink */
|
/* init signal handlers with default handlers of sink */
|
||||||
_sigh_ready_to_ack(_sink.sigh_ready_to_ack()),
|
_sigh_ready_to_ack(_sink.sigh_ready_to_ack()),
|
||||||
|
@ -41,11 +41,12 @@ class Usb::Session_client : public Genode::Rpc_client<Session>
|
|||||||
* transmission buffer
|
* transmission buffer
|
||||||
*/
|
*/
|
||||||
Session_client(Session_capability session,
|
Session_client(Session_capability session,
|
||||||
Genode::Range_allocator *tx_buffer_alloc,
|
Genode::Range_allocator &tx_buffer_alloc,
|
||||||
|
Genode::Region_map &rm,
|
||||||
Genode::Signal_context_capability state_change)
|
Genode::Signal_context_capability state_change)
|
||||||
:
|
:
|
||||||
Genode::Rpc_client<Session>(session),
|
Genode::Rpc_client<Session>(session),
|
||||||
_tx(call<Rpc_tx_cap>(), tx_buffer_alloc)
|
_tx(call<Rpc_tx_cap>(), rm, tx_buffer_alloc)
|
||||||
{
|
{
|
||||||
if (state_change.valid())
|
if (state_change.valid())
|
||||||
sigh_state_change(state_change);
|
sigh_state_change(state_change);
|
||||||
|
@ -46,7 +46,7 @@ struct Usb::Connection : Genode::Connection<Session>, Session_client
|
|||||||
Genode::Signal_context_capability())
|
Genode::Signal_context_capability())
|
||||||
:
|
:
|
||||||
Genode::Connection<Session>(env, _session(env.parent(), label, tx_buf_size)),
|
Genode::Connection<Session>(env, _session(env.parent(), label, tx_buf_size)),
|
||||||
Session_client(cap(), tx_block_alloc, sigh_state_changed)
|
Session_client(cap(), *tx_block_alloc, env.rm(), sigh_state_changed)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -63,7 +63,7 @@ struct Usb::Connection : Genode::Connection<Session>, Session_client
|
|||||||
Genode::Signal_context_capability())
|
Genode::Signal_context_capability())
|
||||||
:
|
:
|
||||||
Genode::Connection<Session>(_session(*Genode::env()->parent(), label, tx_buf_size)),
|
Genode::Connection<Session>(_session(*Genode::env()->parent(), label, tx_buf_size)),
|
||||||
Session_client(cap(), tx_block_alloc, sigh_state_changed)
|
Session_client(cap(), *tx_block_alloc, *Genode::env()->rm_session(), sigh_state_changed)
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ class Usb::Session_rpc_object : public Genode::Rpc_object<Session, Session_rpc_o
|
|||||||
*/
|
*/
|
||||||
Session_rpc_object(Genode::Dataspace_capability tx_ds,
|
Session_rpc_object(Genode::Dataspace_capability tx_ds,
|
||||||
Genode::Rpc_entrypoint &ep)
|
Genode::Rpc_entrypoint &ep)
|
||||||
: _tx(tx_ds, ep) { }
|
: _tx(tx_ds, *Genode::env()->rm_session(), ep) { }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return capability to packet-stream channel
|
* Return capability to packet-stream channel
|
||||||
|
@ -144,7 +144,8 @@ class Source : private Genode::Thread_deprecated<STACK_SIZE>,
|
|||||||
/* init bulk buffer allocator, storing its meta data on the heap */
|
/* init bulk buffer allocator, storing its meta data on the heap */
|
||||||
Thread_deprecated("source"),
|
Thread_deprecated("source"),
|
||||||
Genode::Allocator_avl(Genode::env()->heap()),
|
Genode::Allocator_avl(Genode::env()->heap()),
|
||||||
Packet_stream_source<Test_packet_stream_policy>(this, ds_cap),
|
Packet_stream_source<Test_packet_stream_policy>(
|
||||||
|
ds_cap, *Genode::env()->rm_session(), *this),
|
||||||
_operation(OP_NONE),
|
_operation(OP_NONE),
|
||||||
_lock(Genode::Lock::LOCKED),
|
_lock(Genode::Lock::LOCKED),
|
||||||
_cnt(0)
|
_cnt(0)
|
||||||
@ -225,7 +226,8 @@ class Sink : private Genode::Thread_deprecated<STACK_SIZE>,
|
|||||||
Sink(Genode::Dataspace_capability ds_cap)
|
Sink(Genode::Dataspace_capability ds_cap)
|
||||||
:
|
:
|
||||||
Thread_deprecated("sink"),
|
Thread_deprecated("sink"),
|
||||||
Packet_stream_sink<Test_packet_stream_policy>(ds_cap),
|
Packet_stream_sink<Test_packet_stream_policy>(
|
||||||
|
ds_cap, *Genode::env()->rm_session()),
|
||||||
_operation(OP_NONE),
|
_operation(OP_NONE),
|
||||||
_lock(Genode::Lock::LOCKED),
|
_lock(Genode::Lock::LOCKED),
|
||||||
_cnt(0)
|
_cnt(0)
|
||||||
|
Loading…
Reference in New Issue
Block a user