diff --git a/base/include/base/connection.h b/base/include/base/connection.h index fd0566a07..a347d0ae5 100644 --- a/base/include/base/connection.h +++ b/base/include/base/connection.h @@ -43,6 +43,20 @@ namespace Genode { On_destruction _on_destruction; + Capability _session(Affinity const &affinity, + const char *format_args, va_list list) + { + char buf[FORMAT_STRING_SIZE]; + + String_console sc(buf, FORMAT_STRING_SIZE); + sc.vprintf(format_args, list); + + va_end(list); + + /* call parent interface with the resulting argument buffer */ + return env()->parent()->session(buf, affinity); + } + public: /** @@ -74,23 +88,26 @@ namespace Genode { void on_destruction(On_destruction od) { _on_destruction = od; } /** - * Shortcut for env()->parent()->session() function + * Shortcut for env()->parent()->session() */ Capability session(const char *format_args, ...) { - char buf[FORMAT_STRING_SIZE]; - - /* process format string */ va_list list; va_start(list, format_args); - String_console sc(buf, FORMAT_STRING_SIZE); - sc.vprintf(format_args, list); + return _session(Affinity(), format_args, list); + } - va_end(list); + /** + * Shortcut for env()->parent()->session() + */ + Capability session(Affinity const &affinity, + char const *format_args, ...) + { + va_list list; + va_start(list, format_args); - /* call parent interface with the resulting argument buffer */ - return env()->parent()->session(buf); + return _session(affinity, format_args, list); } }; } diff --git a/base/include/cpu_session/connection.h b/base/include/cpu_session/connection.h index 07caf9a2e..464d3f1a7 100644 --- a/base/include/cpu_session/connection.h +++ b/base/include/cpu_session/connection.h @@ -30,10 +30,12 @@ namespace Genode { * \param priority designated priority of all threads created * with this CPU session */ - Cpu_connection(const char *label = "", long priority = DEFAULT_PRIORITY) + Cpu_connection(char const *label = "", + long priority = DEFAULT_PRIORITY, + Affinity const &affinity = Affinity()) : Connection( - session("priority=0x%lx, ram_quota=32K, label=\"%s\"", + session(affinity, "priority=0x%lx, ram_quota=32K, label=\"%s\"", priority, label)), Cpu_session_client(cap()) { } };