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:
parent
6c1ba09fbd
commit
8d4d1c7457
4 changed files with 11 additions and 15 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue