浏览代码

Kernel: Give PTY's *actually* unique major ID's

Okay, one "dunce hat" point for me. The new PTY majors conflicted with
PATAChannel. Now they are 200 for master and 201 for slave, not used
by anything else.. I hope!
Andreas Kling 5 年之前
父节点
当前提交
e9dda8d592
共有 4 个文件被更改,包括 7 次插入3 次删除
  1. 4 0
      Kernel/Devices/Device.cpp
  2. 1 1
      Kernel/FileSystem/DevPtsFS.cpp
  3. 1 1
      Kernel/TTY/MasterPTY.cpp
  4. 1 1
      Kernel/TTY/SlavePTY.cpp

+ 4 - 0
Kernel/Devices/Device.cpp

@@ -30,6 +30,10 @@ Device::Device(unsigned major, unsigned minor)
     , m_minor(minor)
 {
     u32 device_id = encoded_device(major, minor);
+    auto it = all_devices().find(device_id);
+    if (it != all_devices().end()) {
+        dbg() << "Already registered " << major << "," << minor << ": " << it->value->class_name();
+    }
     ASSERT(!all_devices().contains(device_id));
     all_devices().set(device_id, this);
 }

+ 1 - 1
Kernel/FileSystem/DevPtsFS.cpp

@@ -69,7 +69,7 @@ RefPtr<Inode> DevPtsFS::get_inode(InodeIdentifier inode_id) const
         return m_root_inode;
 
     unsigned pty_index = inode_index_to_pty_index(inode_id.index());
-    auto* device = Device::get_device(11, pty_index);
+    auto* device = Device::get_device(201, pty_index);
     ASSERT(device);
 
     auto inode = adopt(*new DevPtsFSInode(const_cast<DevPtsFS&>(*this), inode_id.index()));

+ 1 - 1
Kernel/TTY/MasterPTY.cpp

@@ -9,7 +9,7 @@
 //#define MASTERPTY_DEBUG
 
 MasterPTY::MasterPTY(unsigned index)
-    : CharacterDevice(100, index)
+    : CharacterDevice(200, index)
     , m_slave(adopt(*new SlavePTY(*this, index)))
     , m_index(index)
 {

+ 1 - 1
Kernel/TTY/SlavePTY.cpp

@@ -6,7 +6,7 @@
 //#define SLAVEPTY_DEBUG
 
 SlavePTY::SlavePTY(MasterPTY& master, unsigned index)
-    : TTY(101, index)
+    : TTY(201, index)
     , m_master(master)
     , m_index(index)
 {