Avoid use of uninitialized base class Genode::Connection

Remove legacy facade from Genode::Connection constructor.
This commit is contained in:
Ehmry - 2019-09-06 11:36:47 +02:00
parent 706774819a
commit 6a33b3f0ec
34 changed files with 111 additions and 197 deletions

View File

@ -45,14 +45,6 @@ class Genode::Connection_base : Noncopyable, Interface
_id_space_element(_parent_client, _env.id_space()) _id_space_element(_parent_client, _env.id_space())
{ } { }
/**
* Legacy constructor
*
* \noapi
*/
Connection_base();
void upgrade(Session::Resources resources) void upgrade(Session::Resources resources)
{ {
String<80> const args("ram_quota=", resources.ram_quota, ", " String<80> const args("ram_quota=", resources.ram_quota, ", "
@ -78,41 +70,41 @@ class Genode::Connection_base : Noncopyable, Interface
template <typename SESSION_TYPE> template <typename SESSION_TYPE>
class Genode::Connection : public Connection_base class Genode::Connection : public Connection_base
{ {
public:
struct Args {
Parent::Session_args session_args;
Affinity affinity;
};
private: private:
/* Args const _args;
* Buffer for storing the session arguments passed to the
* 'session' method that is called before the 'Connection' is
* constructed.
*/
enum { FORMAT_STRING_SIZE = Parent::Session_args::MAX_SIZE }; static
Args _session(Affinity const &affinity,
char _session_args[FORMAT_STRING_SIZE];
char _affinity_arg[sizeof(Affinity)];
void _session(Parent &,
Affinity const &affinity,
const char *format_args, va_list list) 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); sc.vprintf(format_args, list);
va_end(list); va_end(list);
memcpy(_affinity_arg, &affinity, sizeof(Affinity)); return Args { session_args, affinity };
} }
Capability<SESSION_TYPE> _request_cap() Capability<SESSION_TYPE> _request_cap()
{ {
Affinity affinity;
memcpy(&affinity, _affinity_arg, sizeof(Affinity));
try { try {
return _env.session<SESSION_TYPE>(_id_space_element.id(), return _env.session<SESSION_TYPE>(_id_space_element.id(),
_session_args, affinity); } _args.session_args,
_args.affinity);
}
catch (...) { catch (...) {
error(SESSION_TYPE::service_name(), "-session creation failed " error(SESSION_TYPE::service_name(), "-session creation failed "
"(", Cstring(_session_args), ")"); "(", _args.session_args.string(), ")");
throw; throw;
} }
} }
@ -126,9 +118,9 @@ class Genode::Connection : public Connection_base
/** /**
* Constructor * 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; } 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_list list;
va_start(list, format_args); va_start(list, format_args);
_session(parent, Affinity(), format_args, list); return _session(Affinity(), format_args, list);
return Capability<SESSION_TYPE>();
} }
/** /**
* Issue session request to the parent * Construct session argument buffer
*/ */
Capability<SESSION_TYPE> session(Parent &parent, static Args args(Affinity const &affinity,
Affinity const &affinity, char const *format_args, ...)
char const *format_args, ...)
{ {
va_list list; va_list list;
va_start(list, format_args); va_start(list, format_args);
_session(parent, affinity, format_args, list); return _session(affinity, format_args, list);
return Capability<SESSION_TYPE>();
} }
}; };

View File

@ -35,10 +35,10 @@ struct Genode::Cpu_connection : Connection<Cpu_session>, Cpu_session_client
Affinity const &affinity = Affinity()) Affinity const &affinity = Affinity())
: :
Connection<Cpu_session>(env, Connection<Cpu_session>(env,
session(env.parent(), affinity, args(affinity,
"priority=0x%lx, ram_quota=%u, " "priority=0x%lx, ram_quota=%u, "
"cap_quota=%u, label=\"%s\"", "cap_quota=%u, label=\"%s\"",
priority, RAM_QUOTA, CAP_QUOTA, label)), priority, RAM_QUOTA, CAP_QUOTA, label)),
Cpu_session_client(cap()) Cpu_session_client(cap())
{ } { }
}; };

View File

@ -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) Io_mem_connection(Env &env, addr_t base, size_t size, bool write_combined = false)
: :
Connection<Io_mem_session>(env, Connection<Io_mem_session>(env,
session(env.parent(), args("cap_quota=%u, ram_quota=6K, "
"cap_quota=%u, ram_quota=6K, " "base=0x%p, size=0x%lx, wc=%s",
"base=0x%p, size=0x%lx, wc=%s", CAP_QUOTA, base, size,
CAP_QUOTA, base, size, write_combined ? "yes" : "no")),
write_combined ? "yes" : "no")),
Io_mem_session_client(cap()) Io_mem_session_client(cap())
{ } { }
}; };

View File

@ -23,17 +23,6 @@ namespace Genode { struct Io_port_connection; }
struct Genode::Io_port_connection : Connection<Io_port_session>, struct Genode::Io_port_connection : Connection<Io_port_session>,
Io_port_session_client 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 * Constructor
* *
@ -43,10 +32,9 @@ struct Genode::Io_port_connection : Connection<Io_port_session>,
Io_port_connection(Env &env, unsigned base, unsigned size) Io_port_connection(Env &env, unsigned base, unsigned size)
: :
Connection<Io_port_session>(env, Connection<Io_port_session>(env,
session(env.parent(), args("ram_quota=6K, cap_quota=%u, "
"ram_quota=6K, cap_quota=%u, " "io_port_base=%u, io_port_size=%u",
"io_port_base=%u, io_port_size=%u", CAP_QUOTA, base, size)),
CAP_QUOTA, base, size)),
Io_port_session_client(cap()) Io_port_session_client(cap())
{ } { }
}; };

View File

@ -34,11 +34,10 @@ struct Genode::Irq_connection : Connection<Irq_session>, Irq_session_client
Irq_session::Polarity polarity = Irq_session::POLARITY_UNCHANGED, Irq_session::Polarity polarity = Irq_session::POLARITY_UNCHANGED,
Genode::addr_t device_config_phys = 0) Genode::addr_t device_config_phys = 0)
: :
Connection<Irq_session>(env, session(env.parent(), Connection<Irq_session>(env, args("ram_quota=6K, cap_quota=4, "
"ram_quota=6K, cap_quota=4, " "irq_number=%u, irq_trigger=%u, "
"irq_number=%u, irq_trigger=%u, " "irq_polarity=%u, device_config_phys=0x%lx",
"irq_polarity=%u, device_config_phys=0x%lx", irq, trigger, polarity, device_config_phys)),
irq, trigger, polarity, device_config_phys)),
Irq_session_client(cap()) Irq_session_client(cap())
{ } { }
}; };

View File

@ -30,9 +30,8 @@ struct Genode::Log_connection : Connection<Log_session>, Log_session_client
*/ */
Log_connection(Env &env, Session_label label = Session_label()) Log_connection(Env &env, Session_label label = Session_label())
: :
Connection<Log_session>(env, session(env.parent(), Connection<Log_session>(env, args("ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
"ram_quota=%ld, cap_quota=%ld, label=\"%s\"", RAM_QUOTA, CAP_QUOTA, label.string())),
RAM_QUOTA, CAP_QUOTA, label.string())),
Log_session_client(cap()) Log_session_client(cap())
{ } { }
}; };

View File

@ -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) Pd_connection(Env &env, char const *label = "", Virt_space space = CONSTRAIN)
: :
Connection<Pd_session>(env, session(env.parent(), Connection<Pd_session>(env, args("ram_quota=%u, cap_quota=%u, label=\"%s\", virt_space=%u",
"ram_quota=%u, cap_quota=%u, label=\"%s\", virt_space=%u", RAM_QUOTA, CAP_QUOTA, label, space)),
RAM_QUOTA, CAP_QUOTA, label, space)),
Pd_session_client(cap()) Pd_session_client(cap())
{ } { }
}; };

View File

@ -30,7 +30,7 @@ struct Genode::Rm_connection : Connection<Rm_session>, Rm_session_client
*/ */
Rm_connection(Env &env) 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)), RAM_QUOTA, CAP_QUOTA)),
Rm_session_client(cap()) Rm_session_client(cap())
{ } { }

View File

@ -37,10 +37,8 @@ struct Genode::Rom_connection : Connection<Rom_session>,
*/ */
Rom_connection(Env &env, const char *label) Rom_connection(Env &env, const char *label)
try : try :
Connection<Rom_session>(env, Connection<Rom_session>(env, args("ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
session(env.parent(), RAM_QUOTA, CAP_QUOTA, label)),
"ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
RAM_QUOTA, CAP_QUOTA, label)),
Rom_session_client(cap()) Rom_session_client(cap())
{ } { }
catch (...) { catch (...) {

View File

@ -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) Connection(Env &env, size_t ram_quota, size_t arg_buffer_size, unsigned parent_levels)
: :
Genode::Connection<Session>(env, Genode::Connection<Session>(env,
session(env.parent(), "ram_quota=%lu, arg_buffer_size=%lu, parent_levels=%u", args("ram_quota=%lu, arg_buffer_size=%lu, parent_levels=%u",
ram_quota + 2048, arg_buffer_size, parent_levels)), ram_quota + 2048, arg_buffer_size, parent_levels)),
Session_client(env.rm(), cap()) Session_client(env.rm(), cap())
{ } { }
}; };

View File

@ -24,19 +24,6 @@ namespace Genode { struct Vm_connection; }
struct Genode::Vm_connection : Connection<Vm_session>, Vm_session_client 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 * Constructor
* *
@ -48,7 +35,9 @@ struct Genode::Vm_connection : Connection<Vm_session>, Vm_session_client
long priority = Cpu_session::DEFAULT_PRIORITY, long priority = Cpu_session::DEFAULT_PRIORITY,
unsigned long affinity = 0) 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()) Vm_session_client(cap())
{ } { }

View File

@ -38,13 +38,3 @@ Id_space<Parent::Client> &Genode::env_session_id_space()
return id_space; return id_space;
} }
/*
* \deprecated
*/
Connection_base::Connection_base()
:
_env(internal_env()),
_id_space_element(_parent_client, _env.id_space())
{ }

View File

@ -129,7 +129,7 @@ void Timer::Connection::_enable_modern_mode()
Timer::Connection::Connection(Genode::Env &env, char const *label) 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\"", "ram_quota=10K, cap_quota=%u, label=\"%s\"",
CAP_QUOTA, label)), CAP_QUOTA, label)),
Session_client(cap()), Session_client(cap()),

View File

@ -25,8 +25,7 @@ struct Hello::Connection : Genode::Connection<Session>, Session_client
Connection(Genode::Env &env) Connection(Genode::Env &env)
: :
/* create session */ /* create session */
Genode::Connection<Hello::Session>(env, session(env.parent(), Genode::Connection<Hello::Session>(env, args("ram_quota=6K, cap_quota=4")),
"ram_quota=6K, cap_quota=4")),
/* initialize RPC interface */ /* initialize RPC interface */
Session_client(cap()) { } Session_client(cap()) { }

View File

@ -23,17 +23,6 @@ namespace Audio_in { struct Connection; }
struct Audio_in::Connection : Genode::Connection<Session>, Audio_in::Session_client 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 * 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) 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) Session_client(env.rm(), cap(), progress_signal)
{ } { }
}; };

View File

@ -39,9 +39,8 @@ struct Audio_out::Connection : Genode::Connection<Session>, Audio_out::Session_c
bool progress_signal = false) bool progress_signal = false)
: :
Genode::Connection<Session>(env, Genode::Connection<Session>(env,
session(env.parent(), args("ram_quota=%ld, cap_quota=%ld, channel=\"%s\"",
"ram_quota=%ld, cap_quota=%ld, channel=\"%s\"", 2*4096 + 2048 + sizeof(Stream), CAP_QUOTA, channel)),
2*4096 + 2048 + sizeof(Stream), CAP_QUOTA, channel)),
Session_client(env.rm(), cap(), alloc_signal, progress_signal) Session_client(env.rm(), cap(), alloc_signal, progress_signal)
{ } { }
}; };

View File

@ -222,9 +222,8 @@ struct Block::Connection : Genode::Connection<Session>, Session_client
const char *label = "") const char *label = "")
: :
Genode::Connection<Session>(env, Genode::Connection<Session>(env,
session(env.parent(), args("ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, label=\"%s\"",
"ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, label=\"%s\"", 14*1024 + tx_buf_size, CAP_QUOTA, tx_buf_size, label)),
14*1024 + tx_buf_size, CAP_QUOTA, tx_buf_size, label)),
Session_client(cap(), *tx_block_alloc, env.rm()), Session_client(cap(), *tx_block_alloc, env.rm()),
_max_block_count(_init_max_block_count(_tx.source()->bulk_buffer_size())) _max_block_count(_init_max_block_count(_tx.source()->bulk_buffer_size()))
{ } { }

View File

@ -72,17 +72,16 @@ struct File_system::Connection : Genode::Connection<Session>, Session_client
size_t tx_buf_size = DEFAULT_TX_BUF_SIZE) size_t tx_buf_size = DEFAULT_TX_BUF_SIZE)
: :
Genode::Connection<Session>(env, Genode::Connection<Session>(env,
session(env.parent(), args("ram_quota=%ld, "
"ram_quota=%ld, " "cap_quota=%ld, "
"cap_quota=%ld, " "tx_buf_size=%ld, "
"tx_buf_size=%ld, " "label=\"%s\", "
"label=\"%s\", " "root=\"%s\", "
"root=\"%s\", " "writeable=%d",
"writeable=%d", 8*1024*sizeof(long) + tx_buf_size,
8*1024*sizeof(long) + tx_buf_size, CAP_QUOTA,
CAP_QUOTA, tx_buf_size,
tx_buf_size, label, root, writeable)),
label, root, writeable)),
Session_client(cap(), tx_block_alloc, env.rm()) Session_client(cap(), tx_block_alloc, env.rm())
{ } { }

View File

@ -31,11 +31,9 @@ class Framebuffer::Connection : public Genode::Connection<Session>,
private: private:
/** /**
* Create session and return typed session capability * Create session arguments
*/ */
Session_capability _connect(Genode::Parent &parent, Args _args(unsigned width, unsigned height, Mode::Format format)
unsigned width, unsigned height,
Mode::Format format)
{ {
using namespace Genode; using namespace Genode;
@ -55,7 +53,7 @@ class Framebuffer::Connection : public Genode::Connection<Session>,
if (format != Mode::INVALID) if (format != Mode::INVALID)
Arg_string::set_arg(argbuf, sizeof(argbuf), "fb_format", format); Arg_string::set_arg(argbuf, sizeof(argbuf), "fb_format", format);
return session(parent, argbuf); return args(argbuf);
} }
public: public:
@ -71,9 +69,9 @@ class Framebuffer::Connection : public Genode::Connection<Session>,
*/ */
Connection(Genode::Env &env, Framebuffer::Mode mode) Connection(Genode::Env &env, Framebuffer::Mode mode)
: :
Genode::Connection<Session>(env, _connect(env.parent(), Genode::Connection<Session>(env, _args(mode.width(),
mode.width(), mode.height(), mode.height(),
mode.format())), mode.format())),
Session_client(cap()) Session_client(cap())
{ } { }
}; };

View File

@ -28,9 +28,8 @@ struct Gpio::Connection : Genode::Connection<Session>, Session_client
*/ */
Connection(Genode::Env &env, unsigned long gpio_pin) Connection(Genode::Env &env, unsigned long gpio_pin)
: :
Genode::Connection<Session>(env, session(env.parent(), Genode::Connection<Session>(env, args("ram_quota=8K, cap_quota=%ld, gpio=%ld",
"ram_quota=8K, cap_quota=%ld, gpio=%ld", CAP_QUOTA, gpio_pin)),
CAP_QUOTA, gpio_pin)),
Session_client(cap()) Session_client(cap())
{ } { }
}; };

View File

@ -22,17 +22,6 @@ namespace Gpu { struct Connection; }
struct Gpu::Connection : Genode::Connection<Session>, Session_client 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 * Constructor
* *
@ -43,7 +32,7 @@ struct Gpu::Connection : Genode::Connection<Session>, Session_client
Genode::size_t quota = Session::REQUIRED_QUOTA, Genode::size_t quota = Session::REQUIRED_QUOTA,
const char *label = "") 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()) Session_client(cap())
{ } { }
}; };

View File

@ -27,9 +27,8 @@ struct Input::Connection : Genode::Connection<Session>, Session_client
Connection(Genode::Env &env, char const *label = "") Connection(Genode::Env &env, char const *label = "")
: :
Genode::Connection<Input::Session>(env, Genode::Connection<Input::Session>(env,
session(env.parent(), args("ram_quota=18K, cap_quota=%u, label=\"%s\"",
"ram_quota=18K, cap_quota=%u, label=\"%s\"", CAP_QUOTA, label)),
CAP_QUOTA, label)),
Session_client(env.rm(), cap()) Session_client(env.rm(), cap())
{ } { }
}; };

View File

@ -28,10 +28,9 @@ struct Loader::Connection : Genode::Connection<Session>, Session_client
*/ */
Connection(Genode::Env &env, Ram_quota ram_quota, Cap_quota cap_quota) Connection(Genode::Env &env, Ram_quota ram_quota, Cap_quota cap_quota)
: :
Genode::Connection<Session>(env, session(env.parent(), Genode::Connection<Session>(env, args("ram_quota=%ld, cap_quota=%ld",
"ram_quota=%ld, cap_quota=%ld", ram_quota.value,
ram_quota.value, CAP_QUOTA + cap_quota.value)),
CAP_QUOTA + cap_quota.value)),
Session_client(cap()) Session_client(cap())
{ } { }
}; };

View File

@ -38,11 +38,10 @@ struct Nic::Connection : Genode::Connection<Session>, Session_client
char const *label = "") char const *label = "")
: :
Genode::Connection<Session>(env, Genode::Connection<Session>(env,
session(env.parent(), args("ram_quota=%ld, cap_quota=%ld, "
"ram_quota=%ld, cap_quota=%ld, " "tx_buf_size=%ld, rx_buf_size=%ld, label=\"%s\"",
"tx_buf_size=%ld, rx_buf_size=%ld, label=\"%s\"", 32*1024*sizeof(long) + tx_buf_size + rx_buf_size,
32*1024*sizeof(long) + tx_buf_size + rx_buf_size, CAP_QUOTA, tx_buf_size, rx_buf_size, label)),
CAP_QUOTA, tx_buf_size, rx_buf_size, label)),
Session_client(cap(), *tx_block_alloc, env.rm()) Session_client(cap(), *tx_block_alloc, env.rm())
{ } { }
}; };

View File

@ -39,7 +39,7 @@ class Nitpicker::Connection : public Genode::Connection<Session>,
/** /**
* Create session and return typed session capability * 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 }; enum { ARGBUF_SIZE = 128 };
char argbuf[ARGBUF_SIZE]; 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), "ram_quota", RAM_QUOTA);
Arg_string::set_arg(argbuf, sizeof(argbuf), "cap_quota", CAP_QUOTA); Arg_string::set_arg(argbuf, sizeof(argbuf), "cap_quota", CAP_QUOTA);
return session(parent, argbuf); return args(argbuf);
} }
public: public:
@ -66,7 +66,7 @@ class Nitpicker::Connection : public Genode::Connection<Session>,
Connection(Genode::Env &env, char const *label = "") Connection(Genode::Env &env, char const *label = "")
: :
/* establish nitpicker session */ /* establish nitpicker session */
Genode::Connection<Session>(env, _connect(env.parent(), label)), Genode::Connection<Session>(env, _args(label)),
Session_client(env.rm(), cap()), Session_client(env.rm(), cap()),
/* request frame-buffer and input sub sessions */ /* request frame-buffer and input sub sessions */

View File

@ -27,8 +27,7 @@ struct Platform::Connection : Genode::Connection<Session>, Client
* Constructor * Constructor
*/ */
Connection(Genode::Env &env) Connection(Genode::Env &env)
: Genode::Connection<Session>(env, session(env.parent(), : Genode::Connection<Session>(env, args("ram_quota=6K, cap_quota=%ld", CAP_QUOTA)),
"ram_quota=6K, cap_quota=%ld", CAP_QUOTA)),
Client(cap()) { } Client(cap()) { }
}; };

View File

@ -32,9 +32,9 @@ struct Regulator::Connection : Genode::Connection<Session>, Session_client
Connection(Genode::Env &env, Regulator_id regulator, const char * label = "") Connection(Genode::Env &env, Regulator_id regulator, const char * label = "")
: :
Genode::Connection<Session>(env, Genode::Connection<Session>(env,
session(env.parent(), args(env.parent(),
"ram_quota=8K, cap_quota=%ld, regulator=\"%s\", label=\"%s\"", "ram_quota=8K, cap_quota=%ld, regulator=\"%s\", label=\"%s\"",
CAP_QUOTA, regulator_name_by_id(regulator), label)), CAP_QUOTA, regulator_name_by_id(regulator), label)),
Session_client(cap()) Session_client(cap())
{ } { }
}; };

View File

@ -27,11 +27,10 @@ struct Report::Connection : Genode::Connection<Session>, Session_client
Connection(Genode::Env &env, char const *label, size_t buffer_size = 4096) Connection(Genode::Env &env, char const *label, size_t buffer_size = 4096)
: :
Genode::Connection<Session>(env, Genode::Connection<Session>(env,
session(env.parent(), args("label=\"%s\", ram_quota=%ld, "
"label=\"%s\", ram_quota=%ld, " "cap_quota=%ld, buffer_size=%zd",
"cap_quota=%ld, buffer_size=%zd", label, RAM_QUOTA + buffer_size,
label, RAM_QUOTA + buffer_size, CAP_QUOTA, buffer_size)),
CAP_QUOTA, buffer_size)),
Session_client(cap()) Session_client(cap())
{ } { }
}; };

View File

@ -29,7 +29,7 @@ struct Rtc::Connection : Genode::Connection<Session>, Session_client
Connection(Genode::Env &env, char const *label = "") Connection(Genode::Env &env, char const *label = "")
: :
Genode::Connection<Rtc::Session>( 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()) Session_client(cap())
{ } { }
}; };

View File

@ -27,9 +27,7 @@ struct Platform::Connection : Genode::Connection<Session>, Client
*/ */
Connection(Genode::Env &env) Connection(Genode::Env &env)
: :
Genode::Connection<Session>(env, session(env.parent(), Genode::Connection<Session>(env, args("ram_quota=16K, cap_quota=%u", CAP_QUOTA)),
"ram_quota=16K, cap_quota=%u",
CAP_QUOTA)),
Client(cap()) Client(cap())
{ } { }

View File

@ -49,9 +49,8 @@ struct Terminal::Connection : Genode::Connection<Session>, Session_client
*/ */
Connection(Genode::Env &env, char const *label = "") Connection(Genode::Env &env, char const *label = "")
: :
Genode::Connection<Session>(env, session(env.parent(), Genode::Connection<Session>(env, args("ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
"ram_quota=%ld, cap_quota=%ld, label=\"%s\"", 10*1024, CAP_QUOTA, label)),
10*1024, CAP_QUOTA, label)),
Session_client(env.rm(), cap()) Session_client(env.rm(), cap())
{ {
wait_for_connection(cap()); wait_for_connection(cap());

View File

@ -27,7 +27,7 @@ struct Uart::Connection : Genode::Connection<Session>, Session_client
*/ */
Connection(Genode::Env &env) 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()) Session_client(env.rm(), cap())
{ {
Terminal::Connection::wait_for_connection(cap()); Terminal::Connection::wait_for_connection(cap());

View File

@ -33,9 +33,8 @@ struct Usb::Connection : Genode::Connection<Session>, Session_client
Genode::Signal_context_capability()) Genode::Signal_context_capability())
: :
Genode::Connection<Session>(env, Genode::Connection<Session>(env,
session(env.parent(), args("ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, label=\"%s\"",
"ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, label=\"%s\"", 3 * 4096 + tx_buf_size, CAP_QUOTA, tx_buf_size, label)),
3 * 4096 + tx_buf_size, CAP_QUOTA, tx_buf_size, label)),
Session_client(cap(), *tx_block_alloc, env.rm(), sigh_state_changed) Session_client(cap(), *tx_block_alloc, env.rm(), sigh_state_changed)
{ } { }
}; };

View File

@ -27,7 +27,7 @@ struct Noux::Connection : Genode::Connection<Session>, Session_client
*/ */
Connection(Genode::Env &env) Connection(Genode::Env &env)
: :
Genode::Connection<Session>(env, session(env.parent(), "")), Genode::Connection<Session>(env, args("")),
Session_client(cap()) Session_client(cap())
{ } { }