aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/x86_64/arch/bus/cpu.hpp8
-rw-r--r--arch/x86_64/arch/bus/isa.hpp5
-rw-r--r--arch/x86_64/arch/devices/pit.hpp1
-rw-r--r--arch/x86_64/arch/drivers/pit.hpp1
-rw-r--r--kapi/kapi/boot_modules/device.hpp6
-rw-r--r--kapi/kapi/devices/bus.hpp2
-rw-r--r--kapi/kapi/devices/bus_protocol.hpp2
-rw-r--r--kapi/kapi/filesystem.hpp1
-rw-r--r--kapi/kapi/filesystem/block_special_file.hpp2
-rw-r--r--kapi/kapi/filesystem/character_special_file.hpp2
-rw-r--r--kernel/kapi/boot_modules/device.cpp2
-rw-r--r--kernel/kapi/devices/driver.tests.cpp61
-rw-r--r--kernel/kapi/devices/driver_registry.tests.cpp5
-rw-r--r--kernel/kapi/devices/facet_registry.tests.cpp7
-rw-r--r--kernel/kernel/bus/pseudo.hpp4
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;