diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-04-02 13:36:01 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-04-02 13:36:01 +0200 |
| commit | d0c532af74d8d486d734904fd330d5dae7f49754 (patch) | |
| tree | db85c8ae19b4aba06afcf903aa7edba414c16f6f /kernel/include | |
| parent | e7af7ceea2324dcf7d2222986c09d1c478ee4c7e (diff) | |
| download | teachos-d0c532af74d8d486d734904fd330d5dae7f49754.tar.xz teachos-d0c532af74d8d486d734904fd330d5dae7f49754.zip | |
kapi: add basic device subsystem
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 |
