base: avoid use of memcpy

This commit is contained in:
Norman Feske 2020-01-07 12:27:11 +01:00 committed by Christian Helmuth
parent 37ec636018
commit 6947bddd3f
3 changed files with 7 additions and 13 deletions

View File

@ -36,7 +36,7 @@ void Ipc_pager::_parse(unsigned long label) {
if (_type == PAGEFAULT || _type == EXCEPTION)
_parse_pagefault();
if (_type == PAUSE || _type == EXCEPTION)
memcpy(&_regs, l4_utcb_exc(), sizeof(l4_exc_regs_t));
_regs = *l4_utcb_exc();
}
@ -134,7 +134,7 @@ void Ipc_pager::acknowledge_wakeup()
void Ipc_pager::acknowledge_exception()
{
memcpy(l4_utcb_exc(), &_regs, sizeof(l4_exc_regs_t));
_regs = *l4_utcb_exc();
l4_cap_idx_t dst = Fiasco::Capability::valid(_last.kcap)
? _last.kcap : (l4_cap_idx_t)L4_SYSF_REPLY;
Fiasco::l4_msgtag_t const msg_tag =

View File

@ -89,7 +89,8 @@ class Genode::Connection : public Connection_base
enum { FORMAT_STRING_SIZE = Parent::Session_args::MAX_SIZE };
char _session_args[FORMAT_STRING_SIZE];
char _affinity_arg[sizeof(Affinity)];
Affinity _affinity_arg { };
void _session(Parent &,
Affinity const &affinity,
@ -99,17 +100,14 @@ class Genode::Connection : public Connection_base
sc.vprintf(format_args, list);
va_end(list);
memcpy(_affinity_arg, &affinity, sizeof(Affinity));
_affinity_arg = 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); }
_session_args, _affinity_arg); }
catch (...) {
error(SESSION_TYPE::service_name(), "-session creation failed "
"(", Cstring(_session_args), ")");

View File

@ -50,14 +50,10 @@ namespace Genode {
char const *string = string_buf.string();
size_t len = strlen(string);
char buf[string_buf.MAX_SIZE];
unsigned from_i = 0;
for (unsigned i = 0; i < len; i++) {
if (string[i] == '\n') {
memcpy(buf, string + from_i, i - from_i);
buf[i - from_i] = 0;
log("[", _label, "] ", Cstring(buf));
log("[", _label, "] ", Cstring(string + from_i, i - from_i));
from_i = i + 1;
}
}