Serenity Operating System
at master 39 lines 851 B view raw
1/* 2 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include <Kernel/KSyms.h> 8#include <Kernel/Process.h> 9#include <Kernel/UserOrKernelBuffer.h> 10#include <Kernel/kstdio.h> 11 12namespace Kernel { 13 14ErrorOr<FlatPtr> Process::sys$dump_backtrace() 15{ 16 VERIFY_NO_PROCESS_BIG_LOCK(this); 17 dump_backtrace(); 18 return 0; 19} 20 21ErrorOr<FlatPtr> Process::sys$dbgputstr(Userspace<char const*> characters, size_t size) 22{ 23 VERIFY_NO_PROCESS_BIG_LOCK(this); 24 if (size == 0) 25 return 0; 26 27 if (size <= 1024) { 28 char buffer[1024]; 29 TRY(copy_from_user(buffer, characters, size)); 30 dbgputstr(buffer, size); 31 return size; 32 } 33 34 auto string = TRY(try_copy_kstring_from_user(characters, size)); 35 dbgputstr(string->view()); 36 return string->length(); 37} 38 39}