/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include namespace Kernel { KResultOr Process::sys$dump_backtrace() { VERIFY_NO_PROCESS_BIG_LOCK(this); dump_backtrace(); return 0; } KResultOr Process::sys$dbgputch(u8 ch) { VERIFY_NO_PROCESS_BIG_LOCK(this); dbgputch(ch); return 0; } KResultOr Process::sys$dbgputstr(Userspace characters, size_t size) { VERIFY_NO_PROCESS_BIG_LOCK(this); if (size == 0) return 0; if (size <= 1024) { char buffer[1024]; TRY(copy_from_user(buffer, characters, size)); dbgputstr(buffer, size); return size; } auto string = TRY(try_copy_kstring_from_user(characters, size)); dbgputstr(string->view()); return string->length(); } }