From 93de74017095f86a6c62447938ec6169a5184c45 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 21 Jul 2026 17:33:13 +0200 Subject: kapi: remove major number allocator --- kapi/gdb/devices/device.py | 4 +--- kapi/kapi/devices/bus.hpp | 2 +- kapi/kapi/devices/device.hpp | 4 ++-- kapi/kapi/devices/manager.hpp | 6 ------ kernel/kapi/devices.cpp | 9 --------- kernel/kernel/devices/storage/management.cpp | 3 ++- 6 files changed, 6 insertions(+), 22 deletions(-) diff --git a/kapi/gdb/devices/device.py b/kapi/gdb/devices/device.py index 8e515ef8..58f6ea59 100644 --- a/kapi/gdb/devices/device.py +++ b/kapi/gdb/devices/device.py @@ -7,12 +7,10 @@ class KapiDevicesDevicePrinter(gdb.ValuePrinter): def to_string(self): return ( - f"{self.__val['m_name']} @ {self.__val['m_major']}:{self.__val['m_minor']}" + f"{self.__val['m_name']}" ) def children(self): - yield ("major", self.__val["m_major"]) - yield ("minor", self.__val["m_minor"]) yield ("name", self.__val["m_name"]) yield ("parent", self.__val["m_parent"]) diff --git a/kapi/kapi/devices/bus.hpp b/kapi/kapi/devices/bus.hpp index 913149fb..1f433efc 100644 --- a/kapi/kapi/devices/bus.hpp +++ b/kapi/kapi/devices/bus.hpp @@ -21,7 +21,7 @@ namespace kapi::devices //! A bus device that represents a logical/physical tree of devices and busses. struct bus : device { - //! Construct a bus with the given major number, minor number, and name. + //! Construct a bus with the given name. //! //! @param name The name of the bus. explicit bus(kstd::string const & name); diff --git a/kapi/kapi/devices/device.hpp b/kapi/kapi/devices/device.hpp index 34254002..d72a6bbd 100644 --- a/kapi/kapi/devices/device.hpp +++ b/kapi/kapi/devices/device.hpp @@ -15,12 +15,12 @@ namespace kapi::devices //! @{ /** - * @brief Base device identified by a major, minor number and name. + * @brief Base device identified by a name. */ struct device { /** - * @brief Create a device identifier from @p major, @p minor and @p name. + * @brief Create a device identified by @p name. * @param name Device name. */ explicit device(kstd::string const & name); diff --git a/kapi/kapi/devices/manager.hpp b/kapi/kapi/devices/manager.hpp index 499b79ab..25b22510 100644 --- a/kapi/kapi/devices/manager.hpp +++ b/kapi/kapi/devices/manager.hpp @@ -7,7 +7,6 @@ #include -#include #include namespace kapi::devices @@ -16,11 +15,6 @@ namespace kapi::devices //! @addtogroup kapi-devices-kernel-defined //! @{ - //! Ask the kernel to allocate a new major number. - //! - //! @return a new, unused major number. - auto allocate_major_number() -> std::size_t; - //! Register a new device with the kernel's device manager. //! //! @param device The device to register. diff --git a/kernel/kapi/devices.cpp b/kernel/kapi/devices.cpp index ae2d4d7a..6da503d9 100644 --- a/kernel/kapi/devices.cpp +++ b/kernel/kapi/devices.cpp @@ -10,8 +10,6 @@ #include #include -#include -#include #include #include #include @@ -20,7 +18,6 @@ namespace kapi::devices { namespace { - auto constinit next_major_number = std::atomic_size_t{1}; auto constinit root_bus = std::optional{}; auto constinit device_tree = kstd::flat_map>{}; } // namespace @@ -48,11 +45,6 @@ namespace kapi::devices return *root_bus; } - auto allocate_major_number() -> std::size_t - { - return next_major_number.fetch_add(1, std::memory_order::relaxed); - } - auto register_device(device & device) -> bool { kstd::println("[OS:DEV] Registering device {}", device.name()); @@ -86,6 +78,5 @@ namespace kapi::test_support::devices deinit_interface_registry(); kapi::devices::root_bus.reset(); - kapi::devices::next_major_number = 1; } } // namespace kapi::test_support::devices \ No newline at end of file diff --git a/kernel/kernel/devices/storage/management.cpp b/kernel/kernel/devices/storage/management.cpp index 227aa54e..2c42fbd3 100644 --- a/kernel/kernel/devices/storage/management.cpp +++ b/kernel/kernel/devices/storage/management.cpp @@ -50,7 +50,8 @@ namespace kernel::devices::storage auto management::add_controller(kstd::shared_ptr const & controller) -> void { - controller->set_ids(kapi::devices::allocate_major_number(), minors_per_device); + // TODO: remove the major argument + controller->set_ids(0, minors_per_device); m_controllers.push_back(controller); } -- cgit v1.2.3