diff options
Diffstat (limited to 'kernel/include')
| -rw-r--r-- | kernel/include/kernel/devices/root_bus.hpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/kernel/include/kernel/devices/root_bus.hpp b/kernel/include/kernel/devices/root_bus.hpp new file mode 100644 index 0000000..f7bfbfb --- /dev/null +++ b/kernel/include/kernel/devices/root_bus.hpp @@ -0,0 +1,32 @@ +#ifndef TEACHOS_KERNEL_DEVICES_ROOT_BUS_HPP +#define TEACHOS_KERNEL_DEVICES_ROOT_BUS_HPP + +#include "kapi/devices/bus.hpp" +#include "kapi/devices/device.hpp" + +#include <kstd/memory> +#include <kstd/print> +#include <kstd/vector> + +namespace kernel::devices +{ + + struct root_bus final : kapi::devices::bus + { + root_bus(); + + auto add_child(kstd::unique_ptr<device> child) -> void override; + + [[nodiscard]] auto children() const -> kstd::vector<kstd::observer_ptr<device>> const & override; + + auto init() -> bool override; + + private: + kstd::vector<kstd::unique_ptr<device>> m_children{}; + kstd::vector<kstd::observer_ptr<device>> m_observers{}; + bool m_initialized{}; + }; + +} // namespace kernel::devices + +#endif
\ No newline at end of file |
