Kernel: Clarify why ftruncate() & pread() are passed off_t const*

I fell into this trap and tried to switch the syscalls to pass by
the `off_t` by register. I think it makes sense to add a clarifying
comment for future readers of the code, so they don't fall into the
same trap. :^)
This commit is contained in:
Brian Gianforcaro 2021-12-29 03:33:22 -08:00 committed by Brian Gianforcaro
parent 9d034785de
commit b5367bbf31
Notes: sideshowbarker 2024-07-17 21:59:27 +09:00
2 changed files with 4 additions and 0 deletions

View File

@ -9,6 +9,8 @@
namespace Kernel {
// NOTE: The length is passed by pointer because off_t is 64bit,
// hence it can't be passed by register on 32bit platforms.
ErrorOr<FlatPtr> Process::sys$ftruncate(int fd, Userspace<off_t const*> userspace_length)
{
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)

View File

@ -86,6 +86,8 @@ ErrorOr<FlatPtr> Process::sys$read(int fd, Userspace<u8*> buffer, size_t size)
return TRY(description->read(user_buffer, size));
}
// NOTE: The offset is passed by pointer because off_t is 64bit,
// hence it can't be passed by register on 32bit platforms.
ErrorOr<FlatPtr> Process::sys$pread(int fd, Userspace<u8*> buffer, size_t size, Userspace<off_t const*> userspace_offset)
{
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)