1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 23:37:35 +00:00

Add ioctl() and reimplement tcsetpgrp/tcsetpgrp as ioctls.

This commit is contained in:
Andreas Kling 2018-11-16 13:11:21 +01:00
parent 2529925fe9
commit c99f8af66d
16 changed files with 94 additions and 45 deletions

View file

@ -1,4 +1,5 @@
#include "CharacterDevice.h"
#include <LibC/errno_numbers.h>
CharacterDevice::~CharacterDevice()
{
@ -8,3 +9,8 @@ RetainPtr<FileDescriptor> CharacterDevice::open(int options)
{
return VFS::the().open(*this, options);
}
int CharacterDevice::ioctl(Process&, unsigned, unsigned)
{
return -ENOTTY;
}

View file

@ -4,6 +4,8 @@
#include "Limits.h"
#include "FileDescriptor.h"
class Process;
class CharacterDevice {
public:
virtual ~CharacterDevice();
@ -20,10 +22,12 @@ public:
virtual bool isTTY() const { return false; }
virtual int ioctl(Process&, unsigned request, unsigned arg);
protected:
CharacterDevice(unsigned major, unsigned minor) : m_major(major), m_minor(minor) { }
private:
unsigned m_major { 0 };
unsigned m_minor{ 0 };
unsigned m_minor { 0 };
};

View file

@ -38,6 +38,9 @@ public:
bool isDirectory() const;
bool is_character_device() const { return m_vnode && m_vnode->isCharacterDevice(); }
CharacterDevice* character_device() { return m_vnode ? m_vnode->characterDevice() : nullptr; }
#ifdef SERENITY
bool isTTY() const;
const TTY* tty() const;