mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-05-28 15:34:31 +00:00
fix(kernel/driver): remove unused device handling code in daemon
Signed-off-by: EnderIce2 <enderice2@protonmail.com>
This commit is contained in:
parent
bf1e3432d7
commit
95585fce5f
@ -40,28 +40,14 @@ namespace Driver
|
|||||||
* min:
|
* min:
|
||||||
* 0 - <ROOT>
|
* 0 - <ROOT>
|
||||||
* 1 - /proc/self
|
* 1 - /proc/self
|
||||||
* 2 - /dev/null
|
|
||||||
* 3 - /dev/zero
|
|
||||||
* 4 - /dev/random
|
|
||||||
* 5 - /dev/mem
|
|
||||||
* 6 - /dev/kcon
|
|
||||||
* 7 - /dev/tty
|
|
||||||
* 8 - /dev/ptmx
|
|
||||||
*
|
*
|
||||||
* maj = 1
|
* maj = 1
|
||||||
* min:
|
* min:
|
||||||
* 0 - /dev/input/keyboard
|
* 0 - /dev/input/keyboard
|
||||||
* 1 - /dev/input/mouse
|
* 1 - /dev/input/mouse
|
||||||
* ..- /dev/input/eventN
|
* ..- /dev/input/eventN
|
||||||
*
|
|
||||||
* maj = 2
|
|
||||||
* min:
|
|
||||||
* 0 - /dev/fb0
|
|
||||||
* ..- /dev/fbN
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
TTY::PTMXDevice *ptmx = nullptr;
|
|
||||||
|
|
||||||
int __fs_Lookup(struct Inode *_Parent, const char *Name, struct Inode **Result)
|
int __fs_Lookup(struct Inode *_Parent, const char *Name, struct Inode **Result)
|
||||||
{
|
{
|
||||||
func("%#lx %s %#lx", _Parent, Name, Result);
|
func("%#lx %s %#lx", _Parent, Name, Result);
|
||||||
@ -117,61 +103,6 @@ namespace Driver
|
|||||||
func("%#lx %d %d", Node, Size, Offset);
|
func("%#lx %d %d", Node, Size, Offset);
|
||||||
switch (Node->GetMajor())
|
switch (Node->GetMajor())
|
||||||
{
|
{
|
||||||
case 0:
|
|
||||||
{
|
|
||||||
switch (Node->GetMinor())
|
|
||||||
{
|
|
||||||
case 2: /* /dev/null */
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
case 3: /* /dev/zero */
|
|
||||||
{
|
|
||||||
if (Size <= 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
memset(Buffer, 0, Size);
|
|
||||||
return Size;
|
|
||||||
}
|
|
||||||
case 4: /* /dev/random */
|
|
||||||
{
|
|
||||||
if (Size <= 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (Size < sizeof(uint64_t))
|
|
||||||
{
|
|
||||||
uint8_t *buf = (uint8_t *)Buffer;
|
|
||||||
for (size_t i = 0; i < Size; i++)
|
|
||||||
buf[i] = (uint8_t)(Random::rand16() & 0xFF);
|
|
||||||
return Size;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t *buf = (uint64_t *)Buffer;
|
|
||||||
for (size_t i = 0; i < Size / sizeof(uint64_t); i++)
|
|
||||||
buf[i] = Random::rand64();
|
|
||||||
return Size;
|
|
||||||
}
|
|
||||||
case 5: /* /dev/mem */
|
|
||||||
{
|
|
||||||
stub;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
case 6: /* /dev/kcon */
|
|
||||||
return KernelConsole::CurrentTerminal.load()->Read(Buffer, Size, Offset);
|
|
||||||
case 7: /* /dev/tty */
|
|
||||||
{
|
|
||||||
TTY::TeletypeDriver *tty = (TTY::TeletypeDriver *)thisProcess->tty;
|
|
||||||
if (tty == nullptr)
|
|
||||||
return -ENOTTY;
|
|
||||||
return tty->Read(Buffer, Size, Offset);
|
|
||||||
}
|
|
||||||
case 8: /* /dev/ptmx */
|
|
||||||
return -ENOSYS;
|
|
||||||
default:
|
|
||||||
return -ENOENT;
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
switch (Node->GetMinor())
|
switch (Node->GetMinor())
|
||||||
@ -210,16 +141,6 @@ namespace Driver
|
|||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
switch (Node->GetMinor())
|
|
||||||
{
|
|
||||||
case 0: /* /dev/fb0 */
|
|
||||||
return -EINVAL;
|
|
||||||
default:
|
|
||||||
return -ENOENT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
std::unordered_map<dev_t, Driver::DriverObject> &drivers =
|
std::unordered_map<dev_t, Driver::DriverObject> &drivers =
|
||||||
@ -246,42 +167,6 @@ namespace Driver
|
|||||||
|
|
||||||
switch (Node->GetMajor())
|
switch (Node->GetMajor())
|
||||||
{
|
{
|
||||||
case 0:
|
|
||||||
{
|
|
||||||
switch (Node->GetMinor())
|
|
||||||
{
|
|
||||||
case 2: /* /dev/null */
|
|
||||||
{
|
|
||||||
return Size;
|
|
||||||
}
|
|
||||||
case 3: /* /dev/zero */
|
|
||||||
{
|
|
||||||
return Size;
|
|
||||||
}
|
|
||||||
case 4: /* /dev/random */
|
|
||||||
{
|
|
||||||
return Size;
|
|
||||||
}
|
|
||||||
case 5: /* /dev/mem */
|
|
||||||
{
|
|
||||||
stub;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
case 6: /* /dev/kcon */
|
|
||||||
return KernelConsole::CurrentTerminal.load()->Write(Buffer, Size, Offset);
|
|
||||||
case 7: /* /dev/tty */
|
|
||||||
{
|
|
||||||
TTY::TeletypeDriver *tty = (TTY::TeletypeDriver *)thisProcess->tty;
|
|
||||||
if (tty == nullptr)
|
|
||||||
return -ENOTTY;
|
|
||||||
return tty->Write(Buffer, Size, Offset);
|
|
||||||
}
|
|
||||||
case 8: /* /dev/ptmx */
|
|
||||||
return -ENOSYS;
|
|
||||||
default:
|
|
||||||
return -ENOENT;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
switch (Node->GetMinor())
|
switch (Node->GetMinor())
|
||||||
@ -298,16 +183,6 @@ namespace Driver
|
|||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
switch (Node->GetMinor())
|
|
||||||
{
|
|
||||||
case 0: /* /dev/fb0 */
|
|
||||||
return -EINVAL;
|
|
||||||
default:
|
|
||||||
return -ENOENT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
std::unordered_map<dev_t, Driver::DriverObject> &drivers =
|
std::unordered_map<dev_t, Driver::DriverObject> &drivers =
|
||||||
@ -334,30 +209,6 @@ namespace Driver
|
|||||||
|
|
||||||
switch (Node->GetMajor())
|
switch (Node->GetMajor())
|
||||||
{
|
{
|
||||||
case 0:
|
|
||||||
{
|
|
||||||
switch (Node->GetMinor())
|
|
||||||
{
|
|
||||||
case 2: /* /dev/null */
|
|
||||||
case 3: /* /dev/zero */
|
|
||||||
case 4: /* /dev/random */
|
|
||||||
case 5: /* /dev/mem */
|
|
||||||
return -ENOSYS;
|
|
||||||
case 6: /* /dev/kcon */
|
|
||||||
return KernelConsole::CurrentTerminal.load()->Open(Flags, Mode);
|
|
||||||
case 7: /* /dev/tty */
|
|
||||||
{
|
|
||||||
TTY::TeletypeDriver *tty = (TTY::TeletypeDriver *)thisProcess->tty;
|
|
||||||
if (tty == nullptr)
|
|
||||||
return -ENOTTY;
|
|
||||||
return tty->Open(Flags, Mode);
|
|
||||||
}
|
|
||||||
case 8: /* /dev/ptmx */
|
|
||||||
return ptmx->Open();
|
|
||||||
default:
|
|
||||||
return -ENOENT;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
switch (Node->GetMinor())
|
switch (Node->GetMinor())
|
||||||
@ -395,30 +246,6 @@ namespace Driver
|
|||||||
|
|
||||||
switch (Node->GetMajor())
|
switch (Node->GetMajor())
|
||||||
{
|
{
|
||||||
case 0:
|
|
||||||
{
|
|
||||||
switch (Node->GetMinor())
|
|
||||||
{
|
|
||||||
case 2: /* /dev/null */
|
|
||||||
case 3: /* /dev/zero */
|
|
||||||
case 4: /* /dev/random */
|
|
||||||
case 5: /* /dev/mem */
|
|
||||||
return -ENOSYS;
|
|
||||||
case 6: /* /dev/kcon */
|
|
||||||
return KernelConsole::CurrentTerminal.load()->Close();
|
|
||||||
case 7: /* /dev/tty */
|
|
||||||
{
|
|
||||||
TTY::TeletypeDriver *tty = (TTY::TeletypeDriver *)thisProcess->tty;
|
|
||||||
if (tty == nullptr)
|
|
||||||
return -ENOTTY;
|
|
||||||
return tty->Close();
|
|
||||||
}
|
|
||||||
case 8: /* /dev/ptmx */
|
|
||||||
return ptmx->Close();
|
|
||||||
default:
|
|
||||||
return -ENOENT;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
switch (Node->GetMinor())
|
switch (Node->GetMinor())
|
||||||
@ -456,31 +283,6 @@ namespace Driver
|
|||||||
|
|
||||||
switch (Node->GetMajor())
|
switch (Node->GetMajor())
|
||||||
{
|
{
|
||||||
case 0:
|
|
||||||
{
|
|
||||||
switch (Node->GetMinor())
|
|
||||||
{
|
|
||||||
case 2: /* /dev/null */
|
|
||||||
case 3: /* /dev/zero */
|
|
||||||
case 4: /* /dev/random */
|
|
||||||
case 5: /* /dev/mem */
|
|
||||||
return -ENOSYS;
|
|
||||||
case 6: /* /dev/kcon */
|
|
||||||
return KernelConsole::CurrentTerminal.load()->Ioctl(Request, Argp);
|
|
||||||
case 7: /* /dev/tty */
|
|
||||||
{
|
|
||||||
TTY::TeletypeDriver *tty = (TTY::TeletypeDriver *)thisProcess->tty;
|
|
||||||
if (tty == nullptr)
|
|
||||||
return -ENOTTY;
|
|
||||||
return tty->Ioctl(Request, Argp);
|
|
||||||
}
|
|
||||||
case 8: /* /dev/ptmx */
|
|
||||||
return -ENOSYS;
|
|
||||||
default:
|
|
||||||
return -ENOENT;
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
switch (Node->GetMinor())
|
switch (Node->GetMinor())
|
||||||
@ -492,32 +294,6 @@ namespace Driver
|
|||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
switch (Node->GetMinor())
|
|
||||||
{
|
|
||||||
case 0: /* /dev/fb0 */
|
|
||||||
{
|
|
||||||
switch (Request)
|
|
||||||
{
|
|
||||||
case FBIOGET_SCREEN_INFO:
|
|
||||||
{
|
|
||||||
FramebufferScreenInfo *info = (FramebufferScreenInfo *)Argp;
|
|
||||||
info->Width = Display->GetWidth;
|
|
||||||
info->Height = Display->GetHeight;
|
|
||||||
info->Pitch = Display->GetPitch();
|
|
||||||
info->Bpp = Display->GetBitsPerPixel();
|
|
||||||
info->Size = Display->GetSize;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
return -ENOSYS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
return -ENOENT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
std::unordered_map<dev_t, Driver::DriverObject> &drivers =
|
std::unordered_map<dev_t, Driver::DriverObject> &drivers =
|
||||||
@ -717,8 +493,7 @@ namespace Driver
|
|||||||
|
|
||||||
dev_t Manager::RegisterDevice(dev_t DriverID, DeviceType Type, const InodeOperations *Operations)
|
dev_t Manager::RegisterDevice(dev_t DriverID, DeviceType Type, const InodeOperations *Operations)
|
||||||
{
|
{
|
||||||
std::unordered_map<dev_t, Driver::DriverObject> &drivers =
|
std::unordered_map<dev_t, Driver::DriverObject> &drivers = DriverManager->GetDrivers();
|
||||||
DriverManager->GetDrivers();
|
|
||||||
const auto it = drivers.find(DriverID);
|
const auto it = drivers.find(DriverID);
|
||||||
if (it == drivers.end())
|
if (it == drivers.end())
|
||||||
ReturnLogError(-EINVAL, "Driver %d not found", DriverID);
|
ReturnLogError(-EINVAL, "Driver %d not found", DriverID);
|
||||||
@ -786,8 +561,7 @@ namespace Driver
|
|||||||
|
|
||||||
int Manager::UnregisterDevice(dev_t DriverID, dev_t Device)
|
int Manager::UnregisterDevice(dev_t DriverID, dev_t Device)
|
||||||
{
|
{
|
||||||
std::unordered_map<dev_t, Driver::DriverObject> &drivers =
|
std::unordered_map<dev_t, Driver::DriverObject> &drivers = DriverManager->GetDrivers();
|
||||||
DriverManager->GetDrivers();
|
|
||||||
const auto it = drivers.find(DriverID);
|
const auto it = drivers.find(DriverID);
|
||||||
if (it == drivers.end())
|
if (it == drivers.end())
|
||||||
ReturnLogError(-EINVAL, "Driver %d not found", DriverID);
|
ReturnLogError(-EINVAL, "Driver %d not found", DriverID);
|
||||||
@ -857,8 +631,6 @@ namespace Driver
|
|||||||
|
|
||||||
void Manager::InitializeDaemonFS()
|
void Manager::InitializeDaemonFS()
|
||||||
{
|
{
|
||||||
ptmx = new TTY::PTMXDevice;
|
|
||||||
|
|
||||||
dev_t MinorID = 0;
|
dev_t MinorID = 0;
|
||||||
DeviceInode *_dev = new DeviceInode;
|
DeviceInode *_dev = new DeviceInode;
|
||||||
_dev->Name = "dev";
|
_dev->Name = "dev";
|
||||||
@ -924,56 +696,6 @@ namespace Driver
|
|||||||
p1->Children.push_back(device);
|
p1->Children.push_back(device);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* c rw- rw- rw- */
|
|
||||||
mode = S_IRUSR | S_IWUSR |
|
|
||||||
S_IRGRP | S_IWGRP |
|
|
||||||
S_IROTH | S_IWOTH |
|
|
||||||
S_IFCHR;
|
|
||||||
createDevice(_dev, devNode, "null", 0, MinorID++, mode);
|
|
||||||
|
|
||||||
/* c rw- rw- rw- */
|
|
||||||
mode = S_IRUSR | S_IWUSR |
|
|
||||||
S_IRGRP | S_IWGRP |
|
|
||||||
S_IROTH | S_IWOTH |
|
|
||||||
S_IFCHR;
|
|
||||||
createDevice(_dev, devNode, "zero", 0, MinorID++, mode);
|
|
||||||
|
|
||||||
/* c rw- rw- rw- */
|
|
||||||
mode = S_IRUSR | S_IWUSR |
|
|
||||||
S_IRGRP | S_IWGRP |
|
|
||||||
S_IROTH | S_IWOTH |
|
|
||||||
S_IFCHR;
|
|
||||||
createDevice(_dev, devNode, "random", 0, MinorID++, mode);
|
|
||||||
|
|
||||||
/* c rw- r-- --- */
|
|
||||||
mode = S_IRUSR | S_IWUSR |
|
|
||||||
S_IRGRP |
|
|
||||||
|
|
||||||
S_IFCHR;
|
|
||||||
createDevice(_dev, devNode, "mem", 0, MinorID++, mode);
|
|
||||||
|
|
||||||
/* c rw- r-- --- */
|
|
||||||
mode = S_IRUSR | S_IWUSR |
|
|
||||||
S_IRGRP |
|
|
||||||
|
|
||||||
S_IFCHR;
|
|
||||||
createDevice(_dev, devNode, "kcon", 0, MinorID++, mode);
|
|
||||||
|
|
||||||
/* c rw- rw- rw- */
|
|
||||||
mode = S_IRUSR | S_IWUSR |
|
|
||||||
S_IRGRP | S_IWGRP |
|
|
||||||
S_IRUSR | S_IWUSR |
|
|
||||||
S_IFCHR;
|
|
||||||
createDevice(_dev, devNode, "tty", 0, MinorID++, mode);
|
|
||||||
|
|
||||||
/* c rw- rw- rw- */
|
|
||||||
mode = S_IRUSR | S_IWUSR |
|
|
||||||
S_IRGRP | S_IWGRP |
|
|
||||||
S_IRUSR | S_IWUSR |
|
|
||||||
S_IFCHR;
|
|
||||||
createDevice(_dev, devNode, "ptmx", 0, MinorID++, mode);
|
|
||||||
|
|
||||||
/* ------------------------------------------------------ */
|
|
||||||
MinorID = 0;
|
MinorID = 0;
|
||||||
|
|
||||||
/* c rw- r-- --- */
|
/* c rw- r-- --- */
|
||||||
@ -989,14 +711,5 @@ namespace Driver
|
|||||||
|
|
||||||
S_IFCHR;
|
S_IFCHR;
|
||||||
createDevice(input, devInputNode, "mouse", 1, MinorID++, mode);
|
createDevice(input, devInputNode, "mouse", 1, MinorID++, mode);
|
||||||
|
|
||||||
/* ------------------------------------------------------ */
|
|
||||||
MinorID = 0;
|
|
||||||
|
|
||||||
/* c rw- r-- --- */
|
|
||||||
mode = S_IRUSR | S_IWUSR |
|
|
||||||
S_IRGRP |
|
|
||||||
S_IFCHR;
|
|
||||||
createDevice(_dev, devNode, "fb0", 2, MinorID++, mode);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user