diff options
| -rw-r--r-- | arch/x86_64/arch/bus/cpu.hpp | 8 | ||||
| -rw-r--r-- | arch/x86_64/arch/bus/isa.hpp | 5 | ||||
| -rw-r--r-- | arch/x86_64/arch/devices/pit.hpp | 1 | ||||
| -rw-r--r-- | arch/x86_64/arch/drivers/pit.hpp | 1 | ||||
| -rw-r--r-- | kapi/kapi/boot_modules/device.hpp | 6 | ||||
| -rw-r--r-- | kapi/kapi/devices/bus.hpp | 2 | ||||
| -rw-r--r-- | kapi/kapi/devices/bus_protocol.hpp | 2 | ||||
| -rw-r--r-- | kapi/kapi/filesystem.hpp | 1 | ||||
| -rw-r--r-- | kapi/kapi/filesystem/block_special_file.hpp | 2 | ||||
| -rw-r--r-- | kapi/kapi/filesystem/character_special_file.hpp | 2 | ||||
| -rw-r--r-- | kernel/kapi/boot_modules/device.cpp | 2 | ||||
| -rw-r--r-- | kernel/kapi/devices/driver.tests.cpp | 61 | ||||
| -rw-r--r-- | kernel/kapi/devices/driver_registry.tests.cpp | 5 | ||||
| -rw-r--r-- | kernel/kapi/devices/facet_registry.tests.cpp | 7 | ||||
| -rw-r--r-- | kernel/kernel/bus/pseudo.hpp | 4 |
15 files changed, 58 insertions, 51 deletions
diff --git a/arch/x86_64/arch/bus/cpu.hpp b/arch/x86_64/arch/bus/cpu.hpp index 40181b06..b027b5f5 100644 --- a/arch/x86_64/arch/bus/cpu.hpp +++ b/arch/x86_64/arch/bus/cpu.hpp @@ -16,7 +16,7 @@ namespace arch::bus struct core_signature { //! The ID of this facet. - constexpr auto static id = kapi::capabilities::facet_id{"core_signature"}; + constexpr auto static id = kapi::capabilities::facet_id{"sig.dev.ccore"}; //! Allow for correct destruction through base pointers. virtual ~core_signature() = default; @@ -32,7 +32,7 @@ namespace arch::bus struct core_claim { //! The ID of this facet - constexpr auto static id = kapi::capabilities::facet_id{"core_claim"}; + constexpr auto static id = kapi::capabilities::facet_id{"clm.drv.ccore"}; //! Allow for correct destruction through base pointers. virtual ~core_claim() = default; @@ -42,7 +42,7 @@ namespace arch::bus struct lapic_signature { //! The ID of this facet. - constexpr auto static id = kapi::capabilities::facet_id{"lapic_signature"}; + constexpr auto static id = kapi::capabilities::facet_id{"sig.dev.lapic"}; //! Allow for correct destruction through base pointers. virtual ~lapic_signature() = default; @@ -58,7 +58,7 @@ namespace arch::bus struct lapic_claim { //! The ID of this facet. - constexpr auto static id = kapi::capabilities::facet_id{"lapic_claim"}; + constexpr auto static id = kapi::capabilities::facet_id{"clm.drv.lapic"}; //! Allow for correct destruction through base pointers. virtual ~lapic_claim() = default; diff --git a/arch/x86_64/arch/bus/isa.hpp b/arch/x86_64/arch/bus/isa.hpp index fe2e83a6..44a68059 100644 --- a/arch/x86_64/arch/bus/isa.hpp +++ b/arch/x86_64/arch/bus/isa.hpp @@ -1,6 +1,7 @@ #ifndef TEACHOS_X86_64_BUS_ISA_HPP #define TEACHOS_X86_64_BUS_ISA_HPP +#include <kapi/capabilities/facet_id.hpp> #include <kapi/devices.hpp> #include <kstd/result.hpp> @@ -15,7 +16,7 @@ namespace arch::bus struct isa_signature { //! The ID of this facet. - constexpr auto static id = kapi::capabilities::facet_id{"isa_signature"}; + constexpr auto static id = kapi::capabilities::facet_id{"sig.dev.isa"}; //! Allow for correct destruction through base pointers. virtual ~isa_signature() = default; @@ -28,7 +29,7 @@ namespace arch::bus struct isa_claim { //! The ID of this facet - constexpr auto static id = kapi::capabilities::facet_id{"isa_claim"}; + constexpr auto static id = kapi::capabilities::facet_id{"clm.drv.isa"}; //! Allow for correct destruction through base pointers. virtual ~isa_claim() = default; diff --git a/arch/x86_64/arch/devices/pit.hpp b/arch/x86_64/arch/devices/pit.hpp index e2546d27..08bf423a 100644 --- a/arch/x86_64/arch/devices/pit.hpp +++ b/arch/x86_64/arch/devices/pit.hpp @@ -3,6 +3,7 @@ #include <arch/bus/isa.hpp> +#include <kapi/capabilities/facet_id.hpp> #include <kapi/devices.hpp> #include <string_view> diff --git a/arch/x86_64/arch/drivers/pit.hpp b/arch/x86_64/arch/drivers/pit.hpp index 32ad7573..ad8add4b 100644 --- a/arch/x86_64/arch/drivers/pit.hpp +++ b/arch/x86_64/arch/drivers/pit.hpp @@ -3,6 +3,7 @@ #include <arch/bus/isa.hpp> +#include <kapi/capabilities/facet_id.hpp> #include <kapi/devices.hpp> #include <kapi/interrupts.hpp> diff --git a/kapi/kapi/boot_modules/device.hpp b/kapi/kapi/boot_modules/device.hpp index 74152306..4bdd34e4 100644 --- a/kapi/kapi/boot_modules/device.hpp +++ b/kapi/kapi/boot_modules/device.hpp @@ -2,11 +2,13 @@ #define TEACHOS_KAPI_BOOT_MODULES_DEVICE_HPP #include <kapi/boot_modules/module.hpp> +#include <kapi/capabilities/facet_id.hpp> #include <kapi/devices.hpp> #include <kapi/memory.hpp> #include <cstddef> #include <string_view> +#include <utility> namespace kapi::boot_modules { @@ -20,7 +22,7 @@ namespace kapi::boot_modules //! to materialize as "real" devices, e.g. a ram disk, and have a driver bound to them. struct boot_module_signature { - constexpr auto static id = kapi::capabilities::facet_id{"boot_module_signature"}; + constexpr auto static id = kapi::capabilities::facet_id{"sig.dev.bmod"}; virtual ~boot_module_signature() = default; @@ -34,7 +36,7 @@ namespace kapi::boot_modules //! The claim facet of a boot module driver. struct boot_module_claim { - constexpr auto static id = kapi::capabilities::facet_id{"boot_module_claim"}; + constexpr auto static id = kapi::capabilities::facet_id{"clm.drv.bmod"}; virtual ~boot_module_claim() = default; diff --git a/kapi/kapi/devices/bus.hpp b/kapi/kapi/devices/bus.hpp index 365d5c6c..dc46dc3a 100644 --- a/kapi/kapi/devices/bus.hpp +++ b/kapi/kapi/devices/bus.hpp @@ -23,7 +23,7 @@ namespace kapi::devices struct bus : device { //! The id of the bus facet. - constexpr auto static id = kapi::capabilities::facet_id{"bus"}; + constexpr auto static id = kapi::capabilities::facet_id{"type.dev.bus"}; //! Construct a bus with the given name. //! diff --git a/kapi/kapi/devices/bus_protocol.hpp b/kapi/kapi/devices/bus_protocol.hpp index 5a47ecef..0338f6ad 100644 --- a/kapi/kapi/devices/bus_protocol.hpp +++ b/kapi/kapi/devices/bus_protocol.hpp @@ -26,7 +26,7 @@ namespace kapi::devices struct bus_protocol { //! The id of the bus protocol facet. - constexpr auto static id = kapi::capabilities::facet_id{"bus_protocol"}; + constexpr auto static id = kapi::capabilities::facet_id{"prot.bus.base"}; //! Allow safe destruction through base pointers. virtual ~bus_protocol() = default; diff --git a/kapi/kapi/filesystem.hpp b/kapi/kapi/filesystem.hpp index 076edbb3..04630006 100644 --- a/kapi/kapi/filesystem.hpp +++ b/kapi/kapi/filesystem.hpp @@ -18,7 +18,6 @@ #include <cstddef> #include <span> #include <string_view> -#include <utility> //! The interface for filesystem operations in the kernel. //! diff --git a/kapi/kapi/filesystem/block_special_file.hpp b/kapi/kapi/filesystem/block_special_file.hpp index 79a52817..384dd39c 100644 --- a/kapi/kapi/filesystem/block_special_file.hpp +++ b/kapi/kapi/filesystem/block_special_file.hpp @@ -19,7 +19,7 @@ namespace kapi::filesystem struct block_special_file { - constexpr auto static id = kapi::capabilities::facet_id{"block"}; + constexpr auto static id = kapi::capabilities::facet_id{"fs.spec.block"}; //! Virtual destructor to enable clean deletes through base pointers. virtual ~block_special_file() = default; diff --git a/kapi/kapi/filesystem/character_special_file.hpp b/kapi/kapi/filesystem/character_special_file.hpp index 5524f97f..b7a0dd9e 100644 --- a/kapi/kapi/filesystem/character_special_file.hpp +++ b/kapi/kapi/filesystem/character_special_file.hpp @@ -19,7 +19,7 @@ namespace kapi::filesystem struct character_special_file { - constexpr auto static id = kapi::capabilities::facet_id{"char"}; + constexpr auto static id = kapi::capabilities::facet_id{"fs.spec.char"}; //! Virtual destructor to enable clean deletes through base pointers. virtual ~character_special_file() = default; diff --git a/kernel/kapi/boot_modules/device.cpp b/kernel/kapi/boot_modules/device.cpp index d60cc406..dac24906 100644 --- a/kernel/kapi/boot_modules/device.cpp +++ b/kernel/kapi/boot_modules/device.cpp @@ -13,7 +13,7 @@ namespace kapi::boot_modules { device::device(std::size_t index, kapi::boot_modules::module const & module) - : kapi::devices::device{kstd::format("device{}", index)} + : kapi::devices::device{kstd::format("boot_module{}", index)} , m_module(module) {} diff --git a/kernel/kapi/devices/driver.tests.cpp b/kernel/kapi/devices/driver.tests.cpp index 623f9d4c..ee3fe577 100644 --- a/kernel/kapi/devices/driver.tests.cpp +++ b/kernel/kapi/devices/driver.tests.cpp @@ -1,3 +1,4 @@ +#include <kapi/capabilities/facet_id.hpp> #include <kapi/devices.hpp> #include <kstd/memory.hpp> @@ -14,17 +15,17 @@ namespace { - struct controller_identification + struct controller_signature { - constexpr auto static id = kapi::capabilities::facet_id{"stacking_test_controller_identification"}; - virtual ~controller_identification() = default; + constexpr auto static id = kapi::capabilities::facet_id{"sig.dev.stack_test"}; + virtual ~controller_signature() = default; [[nodiscard]] virtual auto controller_name() const -> std::string_view = 0; }; - struct controller_driver_identification + struct controller_claim { - constexpr auto static id = kapi::capabilities::facet_id{"stacking_test_controller_driver_identification"}; - virtual ~controller_driver_identification() = default; + constexpr auto static id = kapi::capabilities::facet_id{"clm.drv.stack_test"}; + virtual ~controller_claim() = default; [[nodiscard]] virtual auto supported_names() const -> std::span<std::string_view const> = 0; }; @@ -35,9 +36,9 @@ namespace [[nodiscard]] auto match(kapi::devices::device const & dev, kapi::devices::driver const & drv) const -> kstd::result<std::uint32_t> override { - auto const * ident = dev.facet<controller_identification>(); - auto const * claims = drv.facet<controller_driver_identification>(); - if (!ident || !claims || !std::ranges::contains(claims->supported_names(), ident->controller_name())) + auto const * signature = dev.facet<controller_signature>(); + auto const * claim = drv.facet<controller_claim>(); + if (!signature || !claim || !std::ranges::contains(claim->supported_names(), signature->controller_name())) { return kstd::failure(kapi::devices::driver_match_errc::no_match); } @@ -52,7 +53,7 @@ namespace {} }; - struct controller_device final : kapi::devices::bus, controller_identification + struct controller_device final : kapi::devices::bus, controller_signature { controller_device() : kapi::devices::bus{"stacking_test_controller"} @@ -66,29 +67,29 @@ namespace protected: auto query_facet(kapi::capabilities::facet_id facet) -> void * override { - if (facet == controller_identification::id) + if (facet == controller_signature::id) { - return static_cast<controller_identification *>(this); + return static_cast<controller_signature *>(this); } return kapi::devices::bus::query_facet(facet); } }; - struct leaf_identification + struct leaf_signature { - constexpr auto static id = kapi::capabilities::facet_id{"stacking_test_leaf_identification"}; - virtual ~leaf_identification() = default; + constexpr auto static id = kapi::capabilities::facet_id{"sig.dev.test_leaf"}; + virtual ~leaf_signature() = default; [[nodiscard]] virtual auto leaf_name() const -> std::string_view = 0; }; - struct leaf_driver_identification + struct leaf_claim { - constexpr auto static id = kapi::capabilities::facet_id{"stacking_test_leaf_driver_identification"}; - virtual ~leaf_driver_identification() = default; + constexpr auto static id = kapi::capabilities::facet_id{"clm.drv.test_leaf"}; + virtual ~leaf_claim() = default; [[nodiscard]] virtual auto supported_names() const -> std::span<std::string_view const> = 0; }; - struct leaf_device final : kapi::devices::device, leaf_identification + struct leaf_device final : kapi::devices::device, leaf_signature { leaf_device() : kapi::devices::device{"stacking_test_leaf"} @@ -102,9 +103,9 @@ namespace protected: auto query_facet(kapi::capabilities::facet_id facet) -> void * override { - if (facet == leaf_identification::id) + if (facet == leaf_signature::id) { - return static_cast<leaf_identification *>(this); + return static_cast<leaf_signature *>(this); } return kapi::devices::device::query_facet(facet); } @@ -112,7 +113,7 @@ namespace struct leaf_protocol final : kapi::devices::bus_protocol { - constexpr auto static id = kapi::capabilities::facet_id{"stacking_test_leaf_protocol"}; + [[maybe_unused]] constexpr auto static id = kapi::capabilities::facet_id{"prot.bus.test_leaf"}; auto enumerate(kapi::devices::bus & self) -> void override { @@ -122,8 +123,8 @@ namespace [[nodiscard]] auto match(kapi::devices::device const & dev, kapi::devices::driver const & drv) const -> kstd::result<std::uint32_t> override { - auto const * ident = dev.facet<leaf_identification>(); - auto const * claims = drv.facet<leaf_driver_identification>(); + auto const * ident = dev.facet<leaf_signature>(); + auto const * claims = drv.facet<leaf_claim>(); if (!ident || !claims || !std::ranges::contains(claims->supported_names(), ident->leaf_name())) { return kstd::failure(kapi::devices::driver_match_errc::no_match); @@ -139,7 +140,7 @@ namespace {} }; - struct controller_driver final : kapi::devices::driver, controller_driver_identification + struct controller_driver final : kapi::devices::driver, controller_claim { [[nodiscard]] auto probe(kapi::devices::device & dev) -> kstd::result<void> override { @@ -167,16 +168,16 @@ namespace protected: auto query_facet(kapi::capabilities::facet_id facet) -> void * override { - if (facet == controller_driver_identification::id) + if (facet == controller_claim::id) { - return static_cast<controller_driver_identification *>(this); + return static_cast<controller_claim *>(this); } return kapi::devices::driver::query_facet(facet); } }; - struct leaf_driver final : kapi::devices::driver, leaf_driver_identification + struct leaf_driver final : kapi::devices::driver, leaf_claim { [[nodiscard]] auto probe(kapi::devices::device &) -> kstd::result<void> override { @@ -199,9 +200,9 @@ namespace protected: auto query_facet(kapi::capabilities::facet_id facet) -> void * override { - if (facet == leaf_driver_identification::id) + if (facet == leaf_claim::id) { - return static_cast<leaf_driver_identification *>(this); + return static_cast<leaf_claim *>(this); } return kapi::devices::driver::query_facet(facet); diff --git a/kernel/kapi/devices/driver_registry.tests.cpp b/kernel/kapi/devices/driver_registry.tests.cpp index c3889d42..02f5065f 100644 --- a/kernel/kapi/devices/driver_registry.tests.cpp +++ b/kernel/kapi/devices/driver_registry.tests.cpp @@ -1,5 +1,6 @@ #include <kapi/devices/driver_registry.hpp> +#include <kapi/capabilities/facet_id.hpp> #include <kapi/devices.hpp> #include <kstd/memory.hpp> @@ -16,7 +17,7 @@ namespace struct test_claim { - constexpr auto static id = kapi::capabilities::facet_id{"test_identification"}; + constexpr auto static id = kapi::capabilities::facet_id{"clm.dev.test"}; virtual ~test_claim() = default; @@ -26,7 +27,7 @@ namespace struct test_protocol final : kapi::devices::bus_protocol { - constexpr auto static id = kapi::capabilities::facet_id{"test_protocol"}; + [[maybe_unused]] constexpr auto static id = kapi::capabilities::facet_id{"prot.bus.test"}; explicit test_protocol(unsigned * match_calls) : match_calls{match_calls} diff --git a/kernel/kapi/devices/facet_registry.tests.cpp b/kernel/kapi/devices/facet_registry.tests.cpp index 4ad3f763..9396fc6c 100644 --- a/kernel/kapi/devices/facet_registry.tests.cpp +++ b/kernel/kapi/devices/facet_registry.tests.cpp @@ -1,3 +1,4 @@ +#include <kapi/capabilities/facet_id.hpp> #include <kapi/devices.hpp> #include <kstd/memory.hpp> @@ -10,7 +11,7 @@ namespace { struct probe_device { - constexpr auto static id = kapi::capabilities::facet_id{"probe"}; + constexpr auto static id = kapi::capabilities::facet_id{"dev.test_probe"}; virtual ~probe_device() = default; @@ -19,7 +20,7 @@ namespace struct const_device { - constexpr auto static id = kapi::capabilities::facet_id{"flip"}; + constexpr auto static id = kapi::capabilities::facet_id{"dev.test_const"}; virtual ~const_device() = default; @@ -31,7 +32,7 @@ namespace struct unimplemented_device { - constexpr auto static id = kapi::capabilities::facet_id{"unimplemented"}; + [[maybe_unused]] constexpr auto static id = kapi::capabilities::facet_id{"dev.test_unimplemented"}; virtual ~unimplemented_device() = default; }; diff --git a/kernel/kernel/bus/pseudo.hpp b/kernel/kernel/bus/pseudo.hpp index dace517b..8bed27d5 100644 --- a/kernel/kernel/bus/pseudo.hpp +++ b/kernel/kernel/bus/pseudo.hpp @@ -11,7 +11,7 @@ namespace kernel::bus struct pseudo_signature { - constexpr auto static id = kapi::capabilities::facet_id{"pseudo_signature"}; + constexpr auto static id = kapi::capabilities::facet_id{"sig.dev.pseudo"}; virtual ~pseudo_signature() = default; @@ -20,7 +20,7 @@ namespace kernel::bus struct pseudo_claim { - constexpr auto static id = kapi::capabilities::facet_id{"pseudo_claim"}; + constexpr auto static id = kapi::capabilities::facet_id{"clm.drv.pseudo"}; virtual ~pseudo_claim() = default; |
