CapsLockRemap.cpp 944 B

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * Copyright (c) 2022, Liav A. <liavalb@hotmail.co.il>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <Kernel/Devices/HID/Management.h>
  7. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/Variables/CapsLockRemap.h>
  8. #include <Kernel/Sections.h>
  9. namespace Kernel {
  10. UNMAP_AFTER_INIT SysFSCapsLockRemap::SysFSCapsLockRemap(SysFSDirectory const& parent_directory)
  11. : SysFSSystemBooleanVariable(parent_directory)
  12. {
  13. }
  14. UNMAP_AFTER_INIT NonnullLockRefPtr<SysFSCapsLockRemap> SysFSCapsLockRemap::must_create(SysFSDirectory const& parent_directory)
  15. {
  16. return adopt_lock_ref_if_nonnull(new (nothrow) SysFSCapsLockRemap(parent_directory)).release_nonnull();
  17. }
  18. bool SysFSCapsLockRemap::value() const
  19. {
  20. SpinlockLocker locker(m_lock);
  21. return g_caps_lock_remapped_to_ctrl.load();
  22. }
  23. void SysFSCapsLockRemap::set_value(bool new_value)
  24. {
  25. SpinlockLocker locker(m_lock);
  26. g_caps_lock_remapped_to_ctrl.exchange(new_value);
  27. }
  28. }