Serenity Operating System
at master 48 lines 1.6 kB view raw
1/* 2 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include <Kernel/Devices/CharacterDevice.h> 8#include <Kernel/FileSystem/SysFS/Subsystems/DeviceIdentifiers/CharacterDevicesDirectory.h> 9 10namespace Kernel { 11 12CharacterDevice::~CharacterDevice() = default; 13 14void CharacterDevice::after_inserting_add_symlink_to_device_identifier_directory() 15{ 16 VERIFY(m_symlink_sysfs_component); 17 SysFSCharacterDevicesDirectory::the().devices_list({}).with([&](auto& list) -> void { 18 list.append(*m_symlink_sysfs_component); 19 }); 20} 21 22void CharacterDevice::before_will_be_destroyed_remove_symlink_from_device_identifier_directory() 23{ 24 VERIFY(m_symlink_sysfs_component); 25 SysFSCharacterDevicesDirectory::the().devices_list({}).with([&](auto& list) -> void { 26 list.remove(*m_symlink_sysfs_component); 27 }); 28} 29 30// FIXME: This method will be eventually removed after all nodes in /sys/dev/char/ are symlinks 31void CharacterDevice::after_inserting_add_to_device_identifier_directory() 32{ 33 VERIFY(m_sysfs_component); 34 SysFSCharacterDevicesDirectory::the().devices_list({}).with([&](auto& list) -> void { 35 list.append(*m_sysfs_component); 36 }); 37} 38 39// FIXME: This method will be eventually removed after all nodes in /sys/dev/char/ are symlinks 40void CharacterDevice::before_will_be_destroyed_remove_from_device_identifier_directory() 41{ 42 VERIFY(m_sysfs_component); 43 SysFSCharacterDevicesDirectory::the().devices_list({}).with([&](auto& list) -> void { 44 list.remove(*m_sysfs_component); 45 }); 46} 47 48}