diff options
Diffstat (limited to 'kernel/kapi/devices/bus.cpp')
| -rw-r--r-- | kernel/kapi/devices/bus.cpp | 10 |
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); } |
