mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-06 19:22:53 +00:00
To do this we also need to get rid of LockRefPtrs in the USB code as well. Most of the SysFS nodes are statically generated during boot and are not mutated afterwards. The same goes for general device code - once we generate the appropriate SysFS nodes, we almost never mutate the node pointers afterwards, making locking unnecessary.
33 lines
902 B
C++
33 lines
902 B
C++
/*
|
|
* Copyright (c) 2022, Liav A. <liavalb@hotmail.co.il>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/IntrusiveList.h>
|
|
#include <Kernel/FileSystem/SysFS/Component.h>
|
|
#include <Kernel/KString.h>
|
|
|
|
namespace Kernel {
|
|
|
|
class SysFSDeviceComponent final
|
|
: public SysFSComponent
|
|
, public LockWeakable<SysFSDeviceComponent> {
|
|
friend class SysFSBlockDevicesDirectory;
|
|
friend class SysFSCharacterDevicesDirectory;
|
|
|
|
public:
|
|
static NonnullRefPtr<SysFSDeviceComponent> must_create(Device const&);
|
|
virtual StringView name() const override { return m_major_minor_formatted_device_name->view(); }
|
|
bool is_block_device() const { return m_block_device; }
|
|
|
|
private:
|
|
SysFSDeviceComponent(NonnullOwnPtr<KString> major_minor_formatted_device_name, Device const&);
|
|
bool m_block_device;
|
|
|
|
NonnullOwnPtr<KString> m_major_minor_formatted_device_name;
|
|
};
|
|
|
|
}
|