1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 22:57:44 +00:00

Kernel: Use Userspace<T> in sys$utime()

And again, another helper overload.
This commit is contained in:
Andreas Kling 2020-07-31 16:38:47 +02:00
parent 62a4099581
commit 180207062c
2 changed files with 12 additions and 2 deletions

View file

@ -268,7 +268,7 @@ public:
int sys$ioctl(int fd, unsigned request, FlatPtr arg);
int sys$mkdir(const char* pathname, size_t path_length, mode_t mode);
clock_t sys$times(tms*);
int sys$utime(const char* pathname, size_t path_length, const struct utimbuf*);
int sys$utime(Userspace<const char*> pathname, size_t path_length, Userspace<const struct utimbuf*>);
int sys$link(const Syscall::SC_link_params*);
int sys$unlink(const char* pathname, size_t path_length);
int sys$symlink(const Syscall::SC_symlink_params*);
@ -379,6 +379,16 @@ public:
return validate_read(value, size.value());
}
template<typename T>
[[nodiscard]] bool validate_read_typed(Userspace<T*> value, size_t count = 1)
{
Checked size = sizeof(T);
size *= count;
if (size.has_overflow())
return false;
return validate_read(value, size.value());
}
template<typename T>
[[nodiscard]] bool validate_read_and_copy_typed(T* dest, const T* src)
{