1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 14:28:12 +00:00

Kernel: Have File virtuals take a FileDescriptor& rather than a Process&.

This will allow us to implement different behaviors depending on the role
of the descriptor a File is being accessed through.
This commit is contained in:
Andreas Kling 2019-04-29 13:58:40 +02:00
parent 3761bc3ed7
commit 8cbb7f101f
39 changed files with 156 additions and 155 deletions

View file

@ -31,14 +31,14 @@ String MasterPTY::pts_name() const
return m_pts_name;
}
ssize_t MasterPTY::read(Process&, byte* buffer, ssize_t size)
ssize_t MasterPTY::read(FileDescriptor&, byte* buffer, ssize_t size)
{
if (!m_slave && m_buffer.is_empty())
return 0;
return m_buffer.read(buffer, size);
}
ssize_t MasterPTY::write(Process&, const byte* buffer, ssize_t size)
ssize_t MasterPTY::write(FileDescriptor&, const byte* buffer, ssize_t size)
{
if (!m_slave)
return -EIO;
@ -46,14 +46,14 @@ ssize_t MasterPTY::write(Process&, const byte* buffer, ssize_t size)
return size;
}
bool MasterPTY::can_read(Process&) const
bool MasterPTY::can_read(FileDescriptor&) const
{
if (!m_slave)
return true;
return !m_buffer.is_empty();
}
bool MasterPTY::can_write(Process&) const
bool MasterPTY::can_write(FileDescriptor&) const
{
return true;
}
@ -96,9 +96,9 @@ void MasterPTY::close()
}
}
int MasterPTY::ioctl(Process& process, unsigned request, unsigned arg)
int MasterPTY::ioctl(FileDescriptor& descriptor, unsigned request, unsigned arg)
{
if (request == TIOCSWINSZ)
return m_slave->ioctl(process, request, arg);
return m_slave->ioctl(descriptor, request, arg);
return -EINVAL;
}