Avoid use of uninitialized base class Genode::Connection
Remove legacy facade from Genode::Connection constructor.
This commit is contained in:
parent
706774819a
commit
6a33b3f0ec
|
@ -45,14 +45,6 @@ class Genode::Connection_base : Noncopyable, Interface
|
|||
_id_space_element(_parent_client, _env.id_space())
|
||||
{ }
|
||||
|
||||
/**
|
||||
* Legacy constructor
|
||||
*
|
||||
* \noapi
|
||||
*/
|
||||
Connection_base();
|
||||
|
||||
|
||||
void upgrade(Session::Resources resources)
|
||||
{
|
||||
String<80> const args("ram_quota=", resources.ram_quota, ", "
|
||||
|
@ -78,41 +70,41 @@ class Genode::Connection_base : Noncopyable, Interface
|
|||
template <typename SESSION_TYPE>
|
||||
class Genode::Connection : public Connection_base
|
||||
{
|
||||
public:
|
||||
|
||||
struct Args {
|
||||
Parent::Session_args session_args;
|
||||
Affinity affinity;
|
||||
};
|
||||
|
||||
private:
|
||||
|
||||
/*
|
||||
* Buffer for storing the session arguments passed to the
|
||||
* 'session' method that is called before the 'Connection' is
|
||||
* constructed.
|
||||
*/
|
||||
Args const _args;
|
||||
|
||||
enum { FORMAT_STRING_SIZE = Parent::Session_args::MAX_SIZE };
|
||||
|
||||
char _session_args[FORMAT_STRING_SIZE];
|
||||
char _affinity_arg[sizeof(Affinity)];
|
||||
|
||||
void _session(Parent &,
|
||||
Affinity const &affinity,
|
||||
static
|
||||
Args _session(Affinity const &affinity,
|
||||
const char *format_args, va_list list)
|
||||
{
|
||||
String_console sc(_session_args, FORMAT_STRING_SIZE);
|
||||
enum { FORMAT_STRING_SIZE = Parent::Session_args::MAX_SIZE };
|
||||
char session_args[FORMAT_STRING_SIZE];
|
||||
|
||||
String_console sc(session_args, FORMAT_STRING_SIZE);
|
||||
sc.vprintf(format_args, list);
|
||||
va_end(list);
|
||||
|
||||
memcpy(_affinity_arg, &affinity, sizeof(Affinity));
|
||||
return Args { session_args, affinity };
|
||||
}
|
||||
|
||||
Capability<SESSION_TYPE> _request_cap()
|
||||
{
|
||||
Affinity affinity;
|
||||
memcpy(&affinity, _affinity_arg, sizeof(Affinity));
|
||||
|
||||
try {
|
||||
return _env.session<SESSION_TYPE>(_id_space_element.id(),
|
||||
_session_args, affinity); }
|
||||
_args.session_args,
|
||||
_args.affinity);
|
||||
}
|
||||
catch (...) {
|
||||
error(SESSION_TYPE::service_name(), "-session creation failed "
|
||||
"(", Cstring(_session_args), ")");
|
||||
"(", _args.session_args.string(), ")");
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
@ -126,9 +118,9 @@ class Genode::Connection : public Connection_base
|
|||
/**
|
||||
* Constructor
|
||||
*/
|
||||
Connection(Env &env, Capability<SESSION_TYPE>)
|
||||
Connection(Env &env, Args const &args)
|
||||
:
|
||||
Connection_base(env), _cap(_request_cap())
|
||||
Connection_base(env), _args(args), _cap(_request_cap())
|
||||
{ }
|
||||
|
||||
/**
|
||||
|
@ -142,29 +134,26 @@ class Genode::Connection : public Connection_base
|
|||
Capability<SESSION_TYPE> cap() const { return _cap; }
|
||||
|
||||
/**
|
||||
* Issue session request to the parent
|
||||
* Construct session argument buffer
|
||||
*/
|
||||
Capability<SESSION_TYPE> session(Parent &parent, const char *format_args, ...)
|
||||
static Args args(const char *format_args, ...)
|
||||
{
|
||||
va_list list;
|
||||
va_start(list, format_args);
|
||||
|
||||
_session(parent, Affinity(), format_args, list);
|
||||
return Capability<SESSION_TYPE>();
|
||||
return _session(Affinity(), format_args, list);
|
||||
}
|
||||
|
||||
/**
|
||||
* Issue session request to the parent
|
||||
* Construct session argument buffer
|
||||
*/
|
||||
Capability<SESSION_TYPE> session(Parent &parent,
|
||||
Affinity const &affinity,
|
||||
char const *format_args, ...)
|
||||
static Args args(Affinity const &affinity,
|
||||
char const *format_args, ...)
|
||||
{
|
||||
va_list list;
|
||||
va_start(list, format_args);
|
||||
|
||||
_session(parent, affinity, format_args, list);
|
||||
return Capability<SESSION_TYPE>();
|
||||
return _session(affinity, format_args, list);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -35,10 +35,10 @@ struct Genode::Cpu_connection : Connection<Cpu_session>, Cpu_session_client
|
|||
Affinity const &affinity = Affinity())
|
||||
:
|
||||
Connection<Cpu_session>(env,
|
||||
session(env.parent(), affinity,
|
||||
"priority=0x%lx, ram_quota=%u, "
|
||||
"cap_quota=%u, label=\"%s\"",
|
||||
priority, RAM_QUOTA, CAP_QUOTA, label)),
|
||||
args(affinity,
|
||||
"priority=0x%lx, ram_quota=%u, "
|
||||
"cap_quota=%u, label=\"%s\"",
|
||||
priority, RAM_QUOTA, CAP_QUOTA, label)),
|
||||
Cpu_session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -32,11 +32,10 @@ struct Genode::Io_mem_connection : Connection<Io_mem_session>, Io_mem_session_cl
|
|||
Io_mem_connection(Env &env, addr_t base, size_t size, bool write_combined = false)
|
||||
:
|
||||
Connection<Io_mem_session>(env,
|
||||
session(env.parent(),
|
||||
"cap_quota=%u, ram_quota=6K, "
|
||||
"base=0x%p, size=0x%lx, wc=%s",
|
||||
CAP_QUOTA, base, size,
|
||||
write_combined ? "yes" : "no")),
|
||||
args("cap_quota=%u, ram_quota=6K, "
|
||||
"base=0x%p, size=0x%lx, wc=%s",
|
||||
CAP_QUOTA, base, size,
|
||||
write_combined ? "yes" : "no")),
|
||||
Io_mem_session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -23,17 +23,6 @@ namespace Genode { struct Io_port_connection; }
|
|||
struct Genode::Io_port_connection : Connection<Io_port_session>,
|
||||
Io_port_session_client
|
||||
{
|
||||
/**
|
||||
* Issue session request
|
||||
*
|
||||
* \noapi
|
||||
*/
|
||||
Capability<Io_port_session> _session(Parent &parent, unsigned base, unsigned size)
|
||||
{
|
||||
return session(parent, "ram_quota=6K, cap_quota=%u, io_port_base=%u, io_port_size=%u",
|
||||
CAP_QUOTA, base, size);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
|
@ -43,10 +32,9 @@ struct Genode::Io_port_connection : Connection<Io_port_session>,
|
|||
Io_port_connection(Env &env, unsigned base, unsigned size)
|
||||
:
|
||||
Connection<Io_port_session>(env,
|
||||
session(env.parent(),
|
||||
"ram_quota=6K, cap_quota=%u, "
|
||||
"io_port_base=%u, io_port_size=%u",
|
||||
CAP_QUOTA, base, size)),
|
||||
args("ram_quota=6K, cap_quota=%u, "
|
||||
"io_port_base=%u, io_port_size=%u",
|
||||
CAP_QUOTA, base, size)),
|
||||
Io_port_session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -34,11 +34,10 @@ struct Genode::Irq_connection : Connection<Irq_session>, Irq_session_client
|
|||
Irq_session::Polarity polarity = Irq_session::POLARITY_UNCHANGED,
|
||||
Genode::addr_t device_config_phys = 0)
|
||||
:
|
||||
Connection<Irq_session>(env, session(env.parent(),
|
||||
"ram_quota=6K, cap_quota=4, "
|
||||
"irq_number=%u, irq_trigger=%u, "
|
||||
"irq_polarity=%u, device_config_phys=0x%lx",
|
||||
irq, trigger, polarity, device_config_phys)),
|
||||
Connection<Irq_session>(env, args("ram_quota=6K, cap_quota=4, "
|
||||
"irq_number=%u, irq_trigger=%u, "
|
||||
"irq_polarity=%u, device_config_phys=0x%lx",
|
||||
irq, trigger, polarity, device_config_phys)),
|
||||
Irq_session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -30,9 +30,8 @@ struct Genode::Log_connection : Connection<Log_session>, Log_session_client
|
|||
*/
|
||||
Log_connection(Env &env, Session_label label = Session_label())
|
||||
:
|
||||
Connection<Log_session>(env, session(env.parent(),
|
||||
"ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
|
||||
RAM_QUOTA, CAP_QUOTA, label.string())),
|
||||
Connection<Log_session>(env, args("ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
|
||||
RAM_QUOTA, CAP_QUOTA, label.string())),
|
||||
Log_session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -32,9 +32,8 @@ struct Genode::Pd_connection : Connection<Pd_session>, Pd_session_client
|
|||
*/
|
||||
Pd_connection(Env &env, char const *label = "", Virt_space space = CONSTRAIN)
|
||||
:
|
||||
Connection<Pd_session>(env, session(env.parent(),
|
||||
"ram_quota=%u, cap_quota=%u, label=\"%s\", virt_space=%u",
|
||||
RAM_QUOTA, CAP_QUOTA, label, space)),
|
||||
Connection<Pd_session>(env, args("ram_quota=%u, cap_quota=%u, label=\"%s\", virt_space=%u",
|
||||
RAM_QUOTA, CAP_QUOTA, label, space)),
|
||||
Pd_session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -30,7 +30,7 @@ struct Genode::Rm_connection : Connection<Rm_session>, Rm_session_client
|
|||
*/
|
||||
Rm_connection(Env &env)
|
||||
:
|
||||
Connection<Rm_session>(env, session(env.parent(), "ram_quota=%u, cap_quota=%u",
|
||||
Connection<Rm_session>(env, args("ram_quota=%u, cap_quota=%u",
|
||||
RAM_QUOTA, CAP_QUOTA)),
|
||||
Rm_session_client(cap())
|
||||
{ }
|
||||
|
|
|
@ -37,10 +37,8 @@ struct Genode::Rom_connection : Connection<Rom_session>,
|
|||
*/
|
||||
Rom_connection(Env &env, const char *label)
|
||||
try :
|
||||
Connection<Rom_session>(env,
|
||||
session(env.parent(),
|
||||
"ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
|
||||
RAM_QUOTA, CAP_QUOTA, label)),
|
||||
Connection<Rom_session>(env, args("ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
|
||||
RAM_QUOTA, CAP_QUOTA, label)),
|
||||
Rom_session_client(cap())
|
||||
{ }
|
||||
catch (...) {
|
||||
|
|
|
@ -33,8 +33,8 @@ struct Genode::Trace::Connection : Genode::Connection<Genode::Trace::Session>,
|
|||
Connection(Env &env, size_t ram_quota, size_t arg_buffer_size, unsigned parent_levels)
|
||||
:
|
||||
Genode::Connection<Session>(env,
|
||||
session(env.parent(), "ram_quota=%lu, arg_buffer_size=%lu, parent_levels=%u",
|
||||
ram_quota + 2048, arg_buffer_size, parent_levels)),
|
||||
args("ram_quota=%lu, arg_buffer_size=%lu, parent_levels=%u",
|
||||
ram_quota + 2048, arg_buffer_size, parent_levels)),
|
||||
Session_client(env.rm(), cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -24,19 +24,6 @@ namespace Genode { struct Vm_connection; }
|
|||
|
||||
struct Genode::Vm_connection : Connection<Vm_session>, Vm_session_client
|
||||
{
|
||||
/**
|
||||
* Issue session request
|
||||
*
|
||||
* \noapi
|
||||
*/
|
||||
Capability<Vm_session> _session(Parent &parent, char const *label, long priority,
|
||||
unsigned long affinity)
|
||||
{
|
||||
return session(parent,
|
||||
"priority=0x%lx, affinity=0x%lx, ram_quota=16K, cap_quota=10, label=\"%s\"",
|
||||
priority, affinity, label);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
|
@ -48,7 +35,9 @@ struct Genode::Vm_connection : Connection<Vm_session>, Vm_session_client
|
|||
long priority = Cpu_session::DEFAULT_PRIORITY,
|
||||
unsigned long affinity = 0)
|
||||
:
|
||||
Connection<Vm_session>(env, _session(env.parent(), label, priority, affinity)),
|
||||
Connection<Vm_session>(env,
|
||||
args("priority=0x%lx, affinity=0x%lx, ram_quota=16K, cap_quota=10, label=\"%s\"",
|
||||
priority, affinity, label)),
|
||||
Vm_session_client(cap())
|
||||
{ }
|
||||
|
||||
|
|
|
@ -38,13 +38,3 @@ Id_space<Parent::Client> &Genode::env_session_id_space()
|
|||
|
||||
return id_space;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* \deprecated
|
||||
*/
|
||||
Connection_base::Connection_base()
|
||||
:
|
||||
_env(internal_env()),
|
||||
_id_space_element(_parent_client, _env.id_space())
|
||||
{ }
|
||||
|
|
|
@ -129,7 +129,7 @@ void Timer::Connection::_enable_modern_mode()
|
|||
|
||||
Timer::Connection::Connection(Genode::Env &env, char const *label)
|
||||
:
|
||||
Genode::Connection<Session>(env, session(env.parent(),
|
||||
Genode::Connection<Session>(env, args(
|
||||
"ram_quota=10K, cap_quota=%u, label=\"%s\"",
|
||||
CAP_QUOTA, label)),
|
||||
Session_client(cap()),
|
||||
|
|
|
@ -25,8 +25,7 @@ struct Hello::Connection : Genode::Connection<Session>, Session_client
|
|||
Connection(Genode::Env &env)
|
||||
:
|
||||
/* create session */
|
||||
Genode::Connection<Hello::Session>(env, session(env.parent(),
|
||||
"ram_quota=6K, cap_quota=4")),
|
||||
Genode::Connection<Hello::Session>(env, args("ram_quota=6K, cap_quota=4")),
|
||||
|
||||
/* initialize RPC interface */
|
||||
Session_client(cap()) { }
|
||||
|
|
|
@ -23,17 +23,6 @@ namespace Audio_in { struct Connection; }
|
|||
|
||||
struct Audio_in::Connection : Genode::Connection<Session>, Audio_in::Session_client
|
||||
{
|
||||
/**
|
||||
* Issue session request
|
||||
*
|
||||
* \noapi
|
||||
*/
|
||||
Genode::Capability<Audio_in::Session> _session(Genode::Parent &parent, char const *channel)
|
||||
{
|
||||
return session(parent, "ram_quota=%ld, cap_quota=%ld, channel=\"%s\"",
|
||||
10*1024 + sizeof(Stream), CAP_QUOTA, channel);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
|
@ -43,7 +32,9 @@ struct Audio_in::Connection : Genode::Connection<Session>, Audio_in::Session_cli
|
|||
*/
|
||||
Connection(Genode::Env &env, char const *channel, bool progress_signal = false)
|
||||
:
|
||||
Genode::Connection<Session>(env, _session(env.parent(), channel)),
|
||||
Genode::Connection<Session>(env,
|
||||
args("ram_quota=%ld, cap_quota=%ld, channel=\"%s\"",
|
||||
10*1024 + sizeof(Stream), CAP_QUOTA, channel)),
|
||||
Session_client(env.rm(), cap(), progress_signal)
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -39,9 +39,8 @@ struct Audio_out::Connection : Genode::Connection<Session>, Audio_out::Session_c
|
|||
bool progress_signal = false)
|
||||
:
|
||||
Genode::Connection<Session>(env,
|
||||
session(env.parent(),
|
||||
"ram_quota=%ld, cap_quota=%ld, channel=\"%s\"",
|
||||
2*4096 + 2048 + sizeof(Stream), CAP_QUOTA, channel)),
|
||||
args("ram_quota=%ld, cap_quota=%ld, channel=\"%s\"",
|
||||
2*4096 + 2048 + sizeof(Stream), CAP_QUOTA, channel)),
|
||||
Session_client(env.rm(), cap(), alloc_signal, progress_signal)
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -222,9 +222,8 @@ struct Block::Connection : Genode::Connection<Session>, Session_client
|
|||
const char *label = "")
|
||||
:
|
||||
Genode::Connection<Session>(env,
|
||||
session(env.parent(),
|
||||
"ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, label=\"%s\"",
|
||||
14*1024 + tx_buf_size, CAP_QUOTA, tx_buf_size, label)),
|
||||
args("ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, label=\"%s\"",
|
||||
14*1024 + tx_buf_size, CAP_QUOTA, tx_buf_size, label)),
|
||||
Session_client(cap(), *tx_block_alloc, env.rm()),
|
||||
_max_block_count(_init_max_block_count(_tx.source()->bulk_buffer_size()))
|
||||
{ }
|
||||
|
|
|
@ -72,17 +72,16 @@ struct File_system::Connection : Genode::Connection<Session>, Session_client
|
|||
size_t tx_buf_size = DEFAULT_TX_BUF_SIZE)
|
||||
:
|
||||
Genode::Connection<Session>(env,
|
||||
session(env.parent(),
|
||||
"ram_quota=%ld, "
|
||||
"cap_quota=%ld, "
|
||||
"tx_buf_size=%ld, "
|
||||
"label=\"%s\", "
|
||||
"root=\"%s\", "
|
||||
"writeable=%d",
|
||||
8*1024*sizeof(long) + tx_buf_size,
|
||||
CAP_QUOTA,
|
||||
tx_buf_size,
|
||||
label, root, writeable)),
|
||||
args("ram_quota=%ld, "
|
||||
"cap_quota=%ld, "
|
||||
"tx_buf_size=%ld, "
|
||||
"label=\"%s\", "
|
||||
"root=\"%s\", "
|
||||
"writeable=%d",
|
||||
8*1024*sizeof(long) + tx_buf_size,
|
||||
CAP_QUOTA,
|
||||
tx_buf_size,
|
||||
label, root, writeable)),
|
||||
Session_client(cap(), tx_block_alloc, env.rm())
|
||||
{ }
|
||||
|
||||
|
|
|
@ -31,11 +31,9 @@ class Framebuffer::Connection : public Genode::Connection<Session>,
|
|||
private:
|
||||
|
||||
/**
|
||||
* Create session and return typed session capability
|
||||
* Create session arguments
|
||||
*/
|
||||
Session_capability _connect(Genode::Parent &parent,
|
||||
unsigned width, unsigned height,
|
||||
Mode::Format format)
|
||||
Args _args(unsigned width, unsigned height, Mode::Format format)
|
||||
{
|
||||
using namespace Genode;
|
||||
|
||||
|
@ -55,7 +53,7 @@ class Framebuffer::Connection : public Genode::Connection<Session>,
|
|||
if (format != Mode::INVALID)
|
||||
Arg_string::set_arg(argbuf, sizeof(argbuf), "fb_format", format);
|
||||
|
||||
return session(parent, argbuf);
|
||||
return args(argbuf);
|
||||
}
|
||||
|
||||
public:
|
||||
|
@ -71,9 +69,9 @@ class Framebuffer::Connection : public Genode::Connection<Session>,
|
|||
*/
|
||||
Connection(Genode::Env &env, Framebuffer::Mode mode)
|
||||
:
|
||||
Genode::Connection<Session>(env, _connect(env.parent(),
|
||||
mode.width(), mode.height(),
|
||||
mode.format())),
|
||||
Genode::Connection<Session>(env, _args(mode.width(),
|
||||
mode.height(),
|
||||
mode.format())),
|
||||
Session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -28,9 +28,8 @@ struct Gpio::Connection : Genode::Connection<Session>, Session_client
|
|||
*/
|
||||
Connection(Genode::Env &env, unsigned long gpio_pin)
|
||||
:
|
||||
Genode::Connection<Session>(env, session(env.parent(),
|
||||
"ram_quota=8K, cap_quota=%ld, gpio=%ld",
|
||||
CAP_QUOTA, gpio_pin)),
|
||||
Genode::Connection<Session>(env, args("ram_quota=8K, cap_quota=%ld, gpio=%ld",
|
||||
CAP_QUOTA, gpio_pin)),
|
||||
Session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -22,17 +22,6 @@ namespace Gpu { struct Connection; }
|
|||
|
||||
struct Gpu::Connection : Genode::Connection<Session>, Session_client
|
||||
{
|
||||
/**
|
||||
* Issue session request
|
||||
*
|
||||
* \noapi
|
||||
*/
|
||||
Genode::Capability<Gpu::Session> _session(Genode::Parent &parent,
|
||||
char const *label, Genode::size_t quota)
|
||||
{
|
||||
return session(parent, "ram_quota=%ld, label=\"%s\"", quota, label);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
|
@ -43,7 +32,7 @@ struct Gpu::Connection : Genode::Connection<Session>, Session_client
|
|||
Genode::size_t quota = Session::REQUIRED_QUOTA,
|
||||
const char *label = "")
|
||||
:
|
||||
Genode::Connection<Session>(env, _session(env.parent(), label, quota)),
|
||||
Genode::Connection<Session>(env, args("ram_quota=%ld, label=\"%s\"", quota, label)),
|
||||
Session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -27,9 +27,8 @@ struct Input::Connection : Genode::Connection<Session>, Session_client
|
|||
Connection(Genode::Env &env, char const *label = "")
|
||||
:
|
||||
Genode::Connection<Input::Session>(env,
|
||||
session(env.parent(),
|
||||
"ram_quota=18K, cap_quota=%u, label=\"%s\"",
|
||||
CAP_QUOTA, label)),
|
||||
args("ram_quota=18K, cap_quota=%u, label=\"%s\"",
|
||||
CAP_QUOTA, label)),
|
||||
Session_client(env.rm(), cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -28,10 +28,9 @@ struct Loader::Connection : Genode::Connection<Session>, Session_client
|
|||
*/
|
||||
Connection(Genode::Env &env, Ram_quota ram_quota, Cap_quota cap_quota)
|
||||
:
|
||||
Genode::Connection<Session>(env, session(env.parent(),
|
||||
"ram_quota=%ld, cap_quota=%ld",
|
||||
ram_quota.value,
|
||||
CAP_QUOTA + cap_quota.value)),
|
||||
Genode::Connection<Session>(env, args("ram_quota=%ld, cap_quota=%ld",
|
||||
ram_quota.value,
|
||||
CAP_QUOTA + cap_quota.value)),
|
||||
Session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -38,11 +38,10 @@ struct Nic::Connection : Genode::Connection<Session>, Session_client
|
|||
char const *label = "")
|
||||
:
|
||||
Genode::Connection<Session>(env,
|
||||
session(env.parent(),
|
||||
"ram_quota=%ld, cap_quota=%ld, "
|
||||
"tx_buf_size=%ld, rx_buf_size=%ld, label=\"%s\"",
|
||||
32*1024*sizeof(long) + tx_buf_size + rx_buf_size,
|
||||
CAP_QUOTA, tx_buf_size, rx_buf_size, label)),
|
||||
args("ram_quota=%ld, cap_quota=%ld, "
|
||||
"tx_buf_size=%ld, rx_buf_size=%ld, label=\"%s\"",
|
||||
32*1024*sizeof(long) + tx_buf_size + rx_buf_size,
|
||||
CAP_QUOTA, tx_buf_size, rx_buf_size, label)),
|
||||
Session_client(cap(), *tx_block_alloc, env.rm())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -39,7 +39,7 @@ class Nitpicker::Connection : public Genode::Connection<Session>,
|
|||
/**
|
||||
* Create session and return typed session capability
|
||||
*/
|
||||
Session_capability _connect(Genode::Parent &parent, char const *label)
|
||||
Args _args(char const *label)
|
||||
{
|
||||
enum { ARGBUF_SIZE = 128 };
|
||||
char argbuf[ARGBUF_SIZE];
|
||||
|
@ -55,7 +55,7 @@ class Nitpicker::Connection : public Genode::Connection<Session>,
|
|||
Arg_string::set_arg(argbuf, sizeof(argbuf), "ram_quota", RAM_QUOTA);
|
||||
Arg_string::set_arg(argbuf, sizeof(argbuf), "cap_quota", CAP_QUOTA);
|
||||
|
||||
return session(parent, argbuf);
|
||||
return args(argbuf);
|
||||
}
|
||||
|
||||
public:
|
||||
|
@ -66,7 +66,7 @@ class Nitpicker::Connection : public Genode::Connection<Session>,
|
|||
Connection(Genode::Env &env, char const *label = "")
|
||||
:
|
||||
/* establish nitpicker session */
|
||||
Genode::Connection<Session>(env, _connect(env.parent(), label)),
|
||||
Genode::Connection<Session>(env, _args(label)),
|
||||
Session_client(env.rm(), cap()),
|
||||
|
||||
/* request frame-buffer and input sub sessions */
|
||||
|
|
|
@ -27,8 +27,7 @@ struct Platform::Connection : Genode::Connection<Session>, Client
|
|||
* Constructor
|
||||
*/
|
||||
Connection(Genode::Env &env)
|
||||
: Genode::Connection<Session>(env, session(env.parent(),
|
||||
"ram_quota=6K, cap_quota=%ld", CAP_QUOTA)),
|
||||
: Genode::Connection<Session>(env, args("ram_quota=6K, cap_quota=%ld", CAP_QUOTA)),
|
||||
Client(cap()) { }
|
||||
};
|
||||
|
||||
|
|
|
@ -32,9 +32,9 @@ struct Regulator::Connection : Genode::Connection<Session>, Session_client
|
|||
Connection(Genode::Env &env, Regulator_id regulator, const char * label = "")
|
||||
:
|
||||
Genode::Connection<Session>(env,
|
||||
session(env.parent(),
|
||||
"ram_quota=8K, cap_quota=%ld, regulator=\"%s\", label=\"%s\"",
|
||||
CAP_QUOTA, regulator_name_by_id(regulator), label)),
|
||||
args(env.parent(),
|
||||
"ram_quota=8K, cap_quota=%ld, regulator=\"%s\", label=\"%s\"",
|
||||
CAP_QUOTA, regulator_name_by_id(regulator), label)),
|
||||
Session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -27,11 +27,10 @@ struct Report::Connection : Genode::Connection<Session>, Session_client
|
|||
Connection(Genode::Env &env, char const *label, size_t buffer_size = 4096)
|
||||
:
|
||||
Genode::Connection<Session>(env,
|
||||
session(env.parent(),
|
||||
"label=\"%s\", ram_quota=%ld, "
|
||||
"cap_quota=%ld, buffer_size=%zd",
|
||||
label, RAM_QUOTA + buffer_size,
|
||||
CAP_QUOTA, buffer_size)),
|
||||
args("label=\"%s\", ram_quota=%ld, "
|
||||
"cap_quota=%ld, buffer_size=%zd",
|
||||
label, RAM_QUOTA + buffer_size,
|
||||
CAP_QUOTA, buffer_size)),
|
||||
Session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -29,7 +29,7 @@ struct Rtc::Connection : Genode::Connection<Session>, Session_client
|
|||
Connection(Genode::Env &env, char const *label = "")
|
||||
:
|
||||
Genode::Connection<Rtc::Session>(
|
||||
env, session(env.parent(), "ram_quota=8K, label=\"%s\"", label)),
|
||||
env, args("ram_quota=8K, label=\"%s\"", label)),
|
||||
Session_client(cap())
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -27,9 +27,7 @@ struct Platform::Connection : Genode::Connection<Session>, Client
|
|||
*/
|
||||
Connection(Genode::Env &env)
|
||||
:
|
||||
Genode::Connection<Session>(env, session(env.parent(),
|
||||
"ram_quota=16K, cap_quota=%u",
|
||||
CAP_QUOTA)),
|
||||
Genode::Connection<Session>(env, args("ram_quota=16K, cap_quota=%u", CAP_QUOTA)),
|
||||
Client(cap())
|
||||
{ }
|
||||
|
||||
|
|
|
@ -49,9 +49,8 @@ struct Terminal::Connection : Genode::Connection<Session>, Session_client
|
|||
*/
|
||||
Connection(Genode::Env &env, char const *label = "")
|
||||
:
|
||||
Genode::Connection<Session>(env, session(env.parent(),
|
||||
"ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
|
||||
10*1024, CAP_QUOTA, label)),
|
||||
Genode::Connection<Session>(env, args("ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
|
||||
10*1024, CAP_QUOTA, label)),
|
||||
Session_client(env.rm(), cap())
|
||||
{
|
||||
wait_for_connection(cap());
|
||||
|
|
|
@ -27,7 +27,7 @@ struct Uart::Connection : Genode::Connection<Session>, Session_client
|
|||
*/
|
||||
Connection(Genode::Env &env)
|
||||
:
|
||||
Genode::Connection<Session>(env, session(env.parent(), "ram_quota=%ld", 2*4096)),
|
||||
Genode::Connection<Session>(env, args("ram_quota=%ld", 2*4096)),
|
||||
Session_client(env.rm(), cap())
|
||||
{
|
||||
Terminal::Connection::wait_for_connection(cap());
|
||||
|
|
|
@ -33,9 +33,8 @@ struct Usb::Connection : Genode::Connection<Session>, Session_client
|
|||
Genode::Signal_context_capability())
|
||||
:
|
||||
Genode::Connection<Session>(env,
|
||||
session(env.parent(),
|
||||
"ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, label=\"%s\"",
|
||||
3 * 4096 + tx_buf_size, CAP_QUOTA, tx_buf_size, label)),
|
||||
args("ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, label=\"%s\"",
|
||||
3 * 4096 + tx_buf_size, CAP_QUOTA, tx_buf_size, label)),
|
||||
Session_client(cap(), *tx_block_alloc, env.rm(), sigh_state_changed)
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -27,7 +27,7 @@ struct Noux::Connection : Genode::Connection<Session>, Session_client
|
|||
*/
|
||||
Connection(Genode::Env &env)
|
||||
:
|
||||
Genode::Connection<Session>(env, session(env.parent(), "")),
|
||||
Genode::Connection<Session>(env, args("")),
|
||||
Session_client(cap())
|
||||
{ }
|
||||
|
||||
|
|
Loading…
Reference in New Issue