aboutsummaryrefslogtreecommitdiff
path: root/kernel/kapi/devices/device.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kapi/devices/device.cpp')
-rw-r--r--kernel/kapi/devices/device.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/kernel/kapi/devices/device.cpp b/kernel/kapi/devices/device.cpp
index 2628e4f4..9c2d8d40 100644
--- a/kernel/kapi/devices/device.cpp
+++ b/kernel/kapi/devices/device.cpp
@@ -4,6 +4,7 @@
#include <kapi/devices/bus.hpp>
#include <kstd/memory.hpp>
+#include <kstd/mutex.hpp>
#include <kstd/string.hpp>
namespace kapi::devices
@@ -34,36 +35,43 @@ namespace kapi::devices
auto device::parent() const -> kstd::shared_ptr<bus>
{
+ auto guard = kstd::lock_guard{m_lock};
return m_parent.lock();
}
auto device::state() const noexcept -> enum state
{
+ auto guard = kstd::lock_guard{m_lock};
return m_state;
}
auto device::set_state(enum state state) -> void
{
+ auto guard = kstd::lock_guard{m_lock};
m_state = state;
}
auto device::bound_driver() const noexcept -> driver *
{
+ auto guard = kstd::lock_guard{m_lock};
return m_driver.lock().get();
}
auto device::bind_driver(kstd::weak_ptr<struct driver> driver) -> void
{
+ auto guard = kstd::lock_guard{m_lock};
m_driver = driver;
}
- auto device::driver_data() const -> kstd::shared_ptr<void> const &
+ auto device::driver_data() const -> kstd::shared_ptr<void>
{
+ auto guard = kstd::lock_guard{m_lock};
return m_driver_data;
}
auto device::set_driver_data(kstd::shared_ptr<void> data) -> void
{
+ auto guard = kstd::lock_guard{m_lock};
m_driver_data = data;
}
@@ -74,6 +82,7 @@ namespace kapi::devices
auto device::set_parent(kstd::weak_ptr<bus> parent) -> void
{
+ auto guard = kstd::lock_guard{m_lock};
m_parent = parent;
}