aboutsummaryrefslogtreecommitdiff
path: root/kernel/kapi/devices/bus.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-07-26 10:28:44 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-07-26 10:28:44 +0200
commitad43e9c9eac69b862789f2e132201cd5ceebaffa (patch)
treec73a942e507f646aa952f61da97cedccf7db09dd /kernel/kapi/devices/bus.cpp
parent390cac20bfb3040900a5569c4e9dfa1972f8d2bd (diff)
downloadkernel-ad43e9c9eac69b862789f2e132201cd5ceebaffa.tar.xz
kernel-ad43e9c9eac69b862789f2e132201cd5ceebaffa.zip
kapi: move protocol pointer to base bus
Diffstat (limited to 'kernel/kapi/devices/bus.cpp')
-rw-r--r--kernel/kapi/devices/bus.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/kernel/kapi/devices/bus.cpp b/kernel/kapi/devices/bus.cpp
index 9eecced0..dad90a15 100644
--- a/kernel/kapi/devices/bus.cpp
+++ b/kernel/kapi/devices/bus.cpp
@@ -1,6 +1,7 @@
#include <kapi/devices/bus.hpp>
#include <kapi/devices.hpp>
+#include <kapi/devices/bus_protocol.hpp>
#include <kapi/devices/driver_registry.hpp>
#include <kapi/system.hpp>
@@ -17,6 +18,11 @@ namespace kapi::devices
: device{name}
{}
+ bus::bus(kstd::string const & name, bus_protocol & protocol)
+ : device{name}
+ , m_protocol{&protocol}
+ {}
+
auto bus::add_child(kstd::shared_ptr<device> child) -> void
{
child->set_parent(kstd::static_pointer_cast<bus>(shared_from_this()));
@@ -43,6 +49,10 @@ namespace kapi::devices
{
return this;
}
+ else if (facet == bus_protocol::id)
+ {
+ return m_protocol;
+ }
return device::query_facet(facet);
}