1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 08:37:46 +00:00

Kernel: Use Userspace<T> in more syscalls

This commit is contained in:
Andreas Kling 2020-08-01 11:37:40 +02:00
parent 6c1ba09fbd
commit 8d4d1c7457
4 changed files with 11 additions and 15 deletions

View file

@ -42,7 +42,7 @@ int Process::sys$dbgputch(u8 ch)
return 0;
}
int Process::sys$dbgputstr(const u8* characters, int length)
int Process::sys$dbgputstr(Userspace<const u8*> characters, int length)
{
if (!length)
return 0;
@ -50,7 +50,7 @@ int Process::sys$dbgputstr(const u8* characters, int length)
return -EFAULT;
SmapDisabler disabler;
for (int i = 0; i < length; ++i)
IO::out8(0xe9, characters[i]);
IO::out8(0xe9, characters.unsafe_userspace_ptr()[i]);
return 0;
}

View file

@ -55,23 +55,20 @@ int Process::sys$set_process_icon(int icon_id)
return 0;
}
int Process::sys$get_process_name(char* buffer, int buffer_size)
int Process::sys$get_process_name(Userspace<char*> buffer, size_t buffer_size)
{
REQUIRE_PROMISE(stdio);
if (buffer_size <= 0)
return -EINVAL;
if (!validate_write(buffer, buffer_size))
return -EFAULT;
if (m_name.length() + 1 > (size_t)buffer_size)
if (m_name.length() + 1 > buffer_size)
return -ENAMETOOLONG;
copy_to_user(buffer, m_name.characters(), m_name.length() + 1);
return 0;
}
int Process::sys$set_process_name(const char* user_name, size_t user_name_length)
int Process::sys$set_process_name(Userspace<const char*> user_name, size_t user_name_length)
{
REQUIRE_PROMISE(proc);
if (user_name_length > 256)

View file

@ -31,7 +31,7 @@
namespace Kernel {
int Process::sys$watch_file(const char* user_path, size_t path_length)
int Process::sys$watch_file(Userspace<const char*> user_path, size_t path_length)
{
REQUIRE_PROMISE(rpath);
auto path = get_syscall_path_argument(user_path, path_length);