aboutsummaryrefslogtreecommitdiff
path: root/kapi/include/kapi/devices.hpp
blob: b597aa8c190a345e025f3c1fb3ef1a2643a347bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef TEACHOS_KAPI_DEVICES_HPP
#define TEACHOS_KAPI_DEVICES_HPP

#include <kapi/devices/bus.hpp>      // IWYU pragma: export
#include <kapi/devices/cpu.hpp>      // IWYU pragma: export
#include <kapi/devices/device.hpp>   // IWYU pragma: export
#include <kapi/devices/manager.hpp>  // IWYU pragma: export

namespace kapi::devices
{

  //! @addtogroup kapi-devices-kernel-defined
  //! @{

  //! Initialize the kernel's device management subsystem.
  auto init() -> void;

  //! Get the virtual system root bus.
  //!
  //! @warning This function will panic if the root bus has not been initialized.
  //!
  //! @return a reference to the root bus.
  auto get_root_bus() -> bus &;

  //! @}

  //! @addtogroup kapi-devices-platform-defined
  //! @{

  //! Initialize the platform's device tree.
  auto init_platform_devices() -> void;

  //! @}

}  // namespace kapi::devices

#endif