mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 23:07:34 +00:00
Kernel: Replace "Folder" => "Directory" everywhere
Folders are a GUI concept, file systems have directories. :^)
This commit is contained in:
parent
5ec3f5433e
commit
805319ed30
13 changed files with 165 additions and 165 deletions
|
@ -60,13 +60,13 @@ UNMAP_AFTER_INIT ExposedComponent::ExposedComponent(String name, PhysicalAddress
|
|||
{
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT void ExposedFolder::initialize()
|
||||
UNMAP_AFTER_INIT void ExposedDirectory::initialize()
|
||||
{
|
||||
auto acpi_folder = adopt_ref(*new (nothrow) ExposedFolder());
|
||||
auto acpi_folder = adopt_ref(*new (nothrow) ExposedDirectory());
|
||||
SysFSComponentRegistry::the().register_new_component(acpi_folder);
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT ExposedFolder::ExposedFolder()
|
||||
UNMAP_AFTER_INIT ExposedDirectory::ExposedDirectory()
|
||||
: SysFSDirectory("acpi", SysFSComponentRegistry::the().root_folder())
|
||||
{
|
||||
NonnullRefPtrVector<SysFSComponent> components;
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
namespace Kernel {
|
||||
namespace ACPI {
|
||||
|
||||
class ExposedFolder : public SysFSDirectory {
|
||||
class ExposedDirectory : public SysFSDirectory {
|
||||
public:
|
||||
static void initialize();
|
||||
|
||||
private:
|
||||
ExposedFolder();
|
||||
ExposedDirectory();
|
||||
};
|
||||
|
||||
class ExposedComponent : public SysFSComponent {
|
||||
|
|
|
@ -75,32 +75,32 @@ OwnPtr<KBuffer> SMBIOSExposedTable::try_to_generate_buffer() const
|
|||
return KBuffer::try_create_with_bytes(Span<u8> { dmi_blob.ptr(), m_smbios_structure_table_length });
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT void BIOSExposedFolder::set_dmi_64_bit_entry_initialization_values()
|
||||
UNMAP_AFTER_INIT void BIOSExposedDirectory::set_dmi_64_bit_entry_initialization_values()
|
||||
{
|
||||
dbgln("BIOSExposedFolder: SMBIOS 64bit Entry point @ {}", m_dmi_entry_point);
|
||||
dbgln("BIOSExposedDirectory: SMBIOS 64bit Entry point @ {}", m_dmi_entry_point);
|
||||
auto smbios_entry = map_typed<SMBIOS::EntryPoint64bit>(m_dmi_entry_point, SMBIOS_SEARCH_AREA_SIZE);
|
||||
m_smbios_structure_table = PhysicalAddress(smbios_entry.ptr()->table_ptr);
|
||||
m_dmi_entry_point_length = smbios_entry.ptr()->length;
|
||||
m_smbios_structure_table_length = smbios_entry.ptr()->table_maximum_size;
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT void BIOSExposedFolder::set_dmi_32_bit_entry_initialization_values()
|
||||
UNMAP_AFTER_INIT void BIOSExposedDirectory::set_dmi_32_bit_entry_initialization_values()
|
||||
{
|
||||
dbgln("BIOSExposedFolder: SMBIOS 32bit Entry point @ {}", m_dmi_entry_point);
|
||||
dbgln("BIOSExposedDirectory: SMBIOS 32bit Entry point @ {}", m_dmi_entry_point);
|
||||
auto smbios_entry = map_typed<SMBIOS::EntryPoint32bit>(m_dmi_entry_point, SMBIOS_SEARCH_AREA_SIZE);
|
||||
m_smbios_structure_table = PhysicalAddress(smbios_entry.ptr()->legacy_structure.smbios_table_ptr);
|
||||
m_dmi_entry_point_length = smbios_entry.ptr()->length;
|
||||
m_smbios_structure_table_length = smbios_entry.ptr()->legacy_structure.smboios_table_length;
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT void BIOSExposedFolder::initialize()
|
||||
UNMAP_AFTER_INIT void BIOSExposedDirectory::initialize()
|
||||
{
|
||||
auto bios_folder = adopt_ref(*new (nothrow) BIOSExposedFolder());
|
||||
auto bios_folder = adopt_ref(*new (nothrow) BIOSExposedDirectory());
|
||||
SysFSComponentRegistry::the().register_new_component(bios_folder);
|
||||
bios_folder->create_components();
|
||||
}
|
||||
|
||||
void BIOSExposedFolder::create_components()
|
||||
void BIOSExposedDirectory::create_components()
|
||||
{
|
||||
auto dmi_entry_point = DMIEntryPointExposedBlob::create(m_dmi_entry_point, m_dmi_entry_point_length);
|
||||
m_components.append(dmi_entry_point);
|
||||
|
@ -108,16 +108,16 @@ void BIOSExposedFolder::create_components()
|
|||
m_components.append(smbios_table);
|
||||
}
|
||||
|
||||
size_t BIOSExposedFolder::dmi_entry_point_length() const
|
||||
size_t BIOSExposedDirectory::dmi_entry_point_length() const
|
||||
{
|
||||
return m_dmi_entry_point_length;
|
||||
}
|
||||
size_t BIOSExposedFolder::smbios_structure_table_length() const
|
||||
size_t BIOSExposedDirectory::smbios_structure_table_length() const
|
||||
{
|
||||
return m_smbios_structure_table_length;
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT void BIOSExposedFolder::initialize_dmi_exposer()
|
||||
UNMAP_AFTER_INIT void BIOSExposedDirectory::initialize_dmi_exposer()
|
||||
{
|
||||
VERIFY(!(m_dmi_entry_point.is_null()));
|
||||
if (m_using_64bit_dmi_entry_point) {
|
||||
|
@ -125,16 +125,16 @@ UNMAP_AFTER_INIT void BIOSExposedFolder::initialize_dmi_exposer()
|
|||
} else {
|
||||
set_dmi_32_bit_entry_initialization_values();
|
||||
}
|
||||
dbgln("BIOSExposedFolder: Data table @ {}", m_smbios_structure_table);
|
||||
dbgln("BIOSExposedDirectory: Data table @ {}", m_smbios_structure_table);
|
||||
}
|
||||
|
||||
OwnPtr<KBuffer> BIOSExposedFolder::smbios_structure_table() const
|
||||
OwnPtr<KBuffer> BIOSExposedDirectory::smbios_structure_table() const
|
||||
{
|
||||
auto dmi_blob = map_typed<u8>(m_smbios_structure_table, m_smbios_structure_table_length);
|
||||
return KBuffer::try_create_with_bytes(Span<u8> { dmi_blob.ptr(), m_smbios_structure_table_length });
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT BIOSExposedFolder::BIOSExposedFolder()
|
||||
UNMAP_AFTER_INIT BIOSExposedDirectory::BIOSExposedDirectory()
|
||||
: SysFSDirectory("bios", SysFSComponentRegistry::the().root_folder())
|
||||
{
|
||||
auto entry_32bit = find_dmi_entry32bit_point();
|
||||
|
@ -150,12 +150,12 @@ UNMAP_AFTER_INIT BIOSExposedFolder::BIOSExposedFolder()
|
|||
initialize_dmi_exposer();
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT Optional<PhysicalAddress> BIOSExposedFolder::find_dmi_entry64bit_point()
|
||||
UNMAP_AFTER_INIT Optional<PhysicalAddress> BIOSExposedDirectory::find_dmi_entry64bit_point()
|
||||
{
|
||||
return map_bios().find_chunk_starting_with("_SM3_", 16);
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT Optional<PhysicalAddress> BIOSExposedFolder::find_dmi_entry32bit_point()
|
||||
UNMAP_AFTER_INIT Optional<PhysicalAddress> BIOSExposedDirectory::find_dmi_entry32bit_point()
|
||||
{
|
||||
return map_bios().find_chunk_starting_with("_SM_", 16);
|
||||
}
|
||||
|
|
|
@ -92,7 +92,7 @@ private:
|
|||
size_t m_smbios_structure_table_length;
|
||||
};
|
||||
|
||||
class BIOSExposedFolder : public SysFSDirectory {
|
||||
class BIOSExposedDirectory : public SysFSDirectory {
|
||||
public:
|
||||
static void initialize();
|
||||
|
||||
|
@ -104,7 +104,7 @@ private:
|
|||
size_t dmi_entry_point_length() const;
|
||||
size_t smbios_structure_table_length() const;
|
||||
|
||||
BIOSExposedFolder();
|
||||
BIOSExposedDirectory();
|
||||
|
||||
void set_dmi_64_bit_entry_initialization_values();
|
||||
void set_dmi_32_bit_entry_initialization_values();
|
||||
|
|
|
@ -69,11 +69,11 @@ static constexpr u16 UHCI_PORTSC_SUSPEND = 0x1000;
|
|||
static constexpr u8 UHCI_NUMBER_OF_ISOCHRONOUS_TDS = 128;
|
||||
static constexpr u16 UHCI_NUMBER_OF_FRAMES = 1024;
|
||||
|
||||
class ProcFSUSBBusFolder;
|
||||
static ProcFSUSBBusFolder* s_procfs_usb_bus_folder;
|
||||
class ProcFSUSBBusDirectory;
|
||||
static ProcFSUSBBusDirectory* s_procfs_usb_bus_folder;
|
||||
|
||||
class ProcFSUSBDeviceInformation : public ProcFSGlobalInformation {
|
||||
friend class ProcFSUSBBusFolder;
|
||||
friend class ProcFSUSBBusDirectory;
|
||||
|
||||
public:
|
||||
virtual ~ProcFSUSBDeviceInformation() override {};
|
||||
|
@ -115,7 +115,7 @@ protected:
|
|||
RefPtr<USB::Device> m_device;
|
||||
};
|
||||
|
||||
class ProcFSUSBBusFolder final : public ProcFSExposedFolder {
|
||||
class ProcFSUSBBusDirectory final : public ProcFSExposedDirectory {
|
||||
friend class ProcFSComponentsRegistrar;
|
||||
|
||||
public:
|
||||
|
@ -128,7 +128,7 @@ public:
|
|||
virtual RefPtr<ProcFSExposedComponent> lookup(StringView name) override;
|
||||
|
||||
private:
|
||||
ProcFSUSBBusFolder(const ProcFSBusDirectory&);
|
||||
ProcFSUSBBusDirectory(const ProcFSBusDirectory&);
|
||||
|
||||
RefPtr<ProcFSUSBDeviceInformation> device_node_for(USB::Device& device);
|
||||
|
||||
|
@ -136,12 +136,12 @@ private:
|
|||
mutable SpinLock<u8> m_lock;
|
||||
};
|
||||
|
||||
KResultOr<size_t> ProcFSUSBBusFolder::entries_count() const
|
||||
KResultOr<size_t> ProcFSUSBBusDirectory::entries_count() const
|
||||
{
|
||||
ScopedSpinLock lock(m_lock);
|
||||
return m_device_nodes.size_slow();
|
||||
}
|
||||
KResult ProcFSUSBBusFolder::traverse_as_directory(unsigned fsid, Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
KResult ProcFSUSBBusDirectory::traverse_as_directory(unsigned fsid, Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
ScopedSpinLock lock(m_lock);
|
||||
auto parent_folder = m_parent_folder.strong_ref();
|
||||
|
@ -156,7 +156,7 @@ KResult ProcFSUSBBusFolder::traverse_as_directory(unsigned fsid, Function<bool(F
|
|||
}
|
||||
return KSuccess;
|
||||
}
|
||||
RefPtr<ProcFSExposedComponent> ProcFSUSBBusFolder::lookup(StringView name)
|
||||
RefPtr<ProcFSExposedComponent> ProcFSUSBBusDirectory::lookup(StringView name)
|
||||
{
|
||||
ScopedSpinLock lock(m_lock);
|
||||
for (auto& device_node : m_device_nodes) {
|
||||
|
@ -167,7 +167,7 @@ RefPtr<ProcFSExposedComponent> ProcFSUSBBusFolder::lookup(StringView name)
|
|||
return {};
|
||||
}
|
||||
|
||||
RefPtr<ProcFSUSBDeviceInformation> ProcFSUSBBusFolder::device_node_for(USB::Device& device)
|
||||
RefPtr<ProcFSUSBDeviceInformation> ProcFSUSBBusDirectory::device_node_for(USB::Device& device)
|
||||
{
|
||||
RefPtr<USB::Device> checked_device = device;
|
||||
for (auto& device_node : m_device_nodes) {
|
||||
|
@ -177,14 +177,14 @@ RefPtr<ProcFSUSBDeviceInformation> ProcFSUSBBusFolder::device_node_for(USB::Devi
|
|||
return {};
|
||||
}
|
||||
|
||||
void ProcFSUSBBusFolder::plug(USB::Device& new_device)
|
||||
void ProcFSUSBBusDirectory::plug(USB::Device& new_device)
|
||||
{
|
||||
ScopedSpinLock lock(m_lock);
|
||||
auto device_node = device_node_for(new_device);
|
||||
VERIFY(!device_node);
|
||||
m_device_nodes.append(ProcFSUSBDeviceInformation::create(new_device));
|
||||
}
|
||||
void ProcFSUSBBusFolder::unplug(USB::Device& deleted_device)
|
||||
void ProcFSUSBBusDirectory::unplug(USB::Device& deleted_device)
|
||||
{
|
||||
ScopedSpinLock lock(m_lock);
|
||||
auto device_node = device_node_for(deleted_device);
|
||||
|
@ -192,14 +192,14 @@ void ProcFSUSBBusFolder::unplug(USB::Device& deleted_device)
|
|||
device_node->m_list_node.remove();
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT ProcFSUSBBusFolder::ProcFSUSBBusFolder(const ProcFSBusDirectory& buses_folder)
|
||||
: ProcFSExposedFolder("usb"sv, buses_folder)
|
||||
UNMAP_AFTER_INIT ProcFSUSBBusDirectory::ProcFSUSBBusDirectory(const ProcFSBusDirectory& buses_folder)
|
||||
: ProcFSExposedDirectory("usb"sv, buses_folder)
|
||||
{
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT void ProcFSUSBBusFolder::initialize()
|
||||
UNMAP_AFTER_INIT void ProcFSUSBBusDirectory::initialize()
|
||||
{
|
||||
auto folder = adopt_ref(*new ProcFSUSBBusFolder(ProcFSComponentsRegistrar::the().buses_folder()));
|
||||
auto folder = adopt_ref(*new ProcFSUSBBusDirectory(ProcFSComponentsRegistrar::the().buses_folder()));
|
||||
ProcFSComponentsRegistrar::the().register_new_bus_folder(folder);
|
||||
s_procfs_usb_bus_folder = folder;
|
||||
}
|
||||
|
@ -221,7 +221,7 @@ UNMAP_AFTER_INIT void UHCIController::detect()
|
|||
|
||||
// FIXME: We create the /proc/bus/usb representation here, but it should really be handled
|
||||
// in a more broad singleton than this once we refactor things in USB subsystem.
|
||||
ProcFSUSBBusFolder::initialize();
|
||||
ProcFSUSBBusDirectory::initialize();
|
||||
|
||||
PCI::enumerate([&](const PCI::Address& address, PCI::ID id) {
|
||||
if (address.is_null())
|
||||
|
|
|
@ -33,7 +33,7 @@ UNMAP_AFTER_INIT void ProcFSComponentsRegistrar::initialize()
|
|||
}
|
||||
|
||||
UNMAP_AFTER_INIT ProcFSComponentsRegistrar::ProcFSComponentsRegistrar()
|
||||
: m_root_folder(ProcFSRootFolder::must_create())
|
||||
: m_root_folder(ProcFSRootDirectory::must_create())
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ const ProcFSBusDirectory& ProcFSComponentsRegistrar::buses_folder() const
|
|||
return *m_root_folder->m_buses_folder;
|
||||
}
|
||||
|
||||
void ProcFSComponentsRegistrar::register_new_bus_folder(ProcFSExposedFolder& new_bus_folder)
|
||||
void ProcFSComponentsRegistrar::register_new_bus_folder(ProcFSExposedDirectory& new_bus_folder)
|
||||
{
|
||||
VERIFY(!m_root_folder->m_buses_folder.is_null());
|
||||
m_root_folder->m_buses_folder->m_components.append(new_bus_folder);
|
||||
|
@ -51,7 +51,7 @@ void ProcFSComponentsRegistrar::register_new_bus_folder(ProcFSExposedFolder& new
|
|||
void ProcFSComponentsRegistrar::register_new_process(Process& new_process)
|
||||
{
|
||||
Locker locker(m_lock);
|
||||
m_root_folder->m_process_folders.append(ProcFSProcessFolder::create(new_process));
|
||||
m_root_folder->m_process_folders.append(ProcFSProcessDirectory::create(new_process));
|
||||
}
|
||||
|
||||
void ProcFSComponentsRegistrar::unregister_process(Process& deleted_process)
|
||||
|
@ -59,8 +59,8 @@ void ProcFSComponentsRegistrar::unregister_process(Process& deleted_process)
|
|||
auto process_folder = m_root_folder->process_folder_for(deleted_process).release_nonnull();
|
||||
process_folder->prepare_for_deletion();
|
||||
process_folder->m_list_node.remove();
|
||||
dbgln_if(PROCFS_DEBUG, "ProcFSExposedFolder ref_count now: {}", process_folder->ref_count());
|
||||
// Note: Let's ensure we are the last holder of the ProcFSProcessFolder object before it can be deleted for good
|
||||
dbgln_if(PROCFS_DEBUG, "ProcFSExposedDirectory ref_count now: {}", process_folder->ref_count());
|
||||
// Note: Let's ensure we are the last holder of the ProcFSProcessDirectory object before it can be deleted for good
|
||||
VERIFY(process_folder->ref_count() == 1);
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ UNMAP_AFTER_INIT void SysFSComponentRegistry::initialize()
|
|||
}
|
||||
|
||||
UNMAP_AFTER_INIT SysFSComponentRegistry::SysFSComponentRegistry()
|
||||
: m_root_folder(SysFSRootFolder::create())
|
||||
: m_root_folder(SysFSRootDirectory::create())
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -35,12 +35,12 @@ UNMAP_AFTER_INIT void SysFSComponentRegistry::register_new_component(SysFSCompon
|
|||
m_root_folder->m_components.append(component);
|
||||
}
|
||||
|
||||
NonnullRefPtr<SysFSRootFolder> SysFSRootFolder::create()
|
||||
NonnullRefPtr<SysFSRootDirectory> SysFSRootDirectory::create()
|
||||
{
|
||||
return adopt_ref(*new (nothrow) SysFSRootFolder);
|
||||
return adopt_ref(*new (nothrow) SysFSRootDirectory);
|
||||
}
|
||||
|
||||
KResult SysFSRootFolder::traverse_as_directory(unsigned fsid, Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
KResult SysFSRootDirectory::traverse_as_directory(unsigned fsid, Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
Locker locker(SysFSComponentRegistry::the().get_lock());
|
||||
callback({ ".", { fsid, component_index() }, 0 });
|
||||
|
@ -53,7 +53,7 @@ KResult SysFSRootFolder::traverse_as_directory(unsigned fsid, Function<bool(File
|
|||
return KSuccess;
|
||||
}
|
||||
|
||||
SysFSRootFolder::SysFSRootFolder()
|
||||
SysFSRootDirectory::SysFSRootDirectory()
|
||||
: SysFSDirectory(".")
|
||||
{
|
||||
}
|
||||
|
|
|
@ -12,15 +12,15 @@
|
|||
|
||||
namespace Kernel {
|
||||
|
||||
class SysFSRootFolder final : public SysFSDirectory {
|
||||
class SysFSRootDirectory final : public SysFSDirectory {
|
||||
friend class SysFSComponentRegistry;
|
||||
|
||||
public:
|
||||
static NonnullRefPtr<SysFSRootFolder> create();
|
||||
static NonnullRefPtr<SysFSRootDirectory> create();
|
||||
virtual KResult traverse_as_directory(unsigned, Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
|
||||
private:
|
||||
SysFSRootFolder();
|
||||
SysFSRootDirectory();
|
||||
};
|
||||
|
||||
class SysFSComponentRegistry {
|
||||
|
@ -37,7 +37,7 @@ public:
|
|||
|
||||
private:
|
||||
Lock m_lock;
|
||||
NonnullRefPtr<SysFSRootFolder> m_root_folder;
|
||||
NonnullRefPtr<SysFSRootDirectory> m_root_folder;
|
||||
};
|
||||
|
||||
class SysFS final : public FileSystem {
|
||||
|
|
|
@ -158,20 +158,20 @@ private:
|
|||
}
|
||||
};
|
||||
|
||||
class ProcFSNetworkDirectory : public ProcFSExposedFolder {
|
||||
class ProcFSNetworkDirectory : public ProcFSExposedDirectory {
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSNetworkDirectory> must_create(const ProcFSRootFolder& parent_folder);
|
||||
static NonnullRefPtr<ProcFSNetworkDirectory> must_create(const ProcFSRootDirectory& parent_folder);
|
||||
|
||||
private:
|
||||
ProcFSNetworkDirectory(const ProcFSRootFolder& parent_folder);
|
||||
ProcFSNetworkDirectory(const ProcFSRootDirectory& parent_folder);
|
||||
};
|
||||
|
||||
class ProcFSSystemDirectory : public ProcFSExposedFolder {
|
||||
class ProcFSSystemDirectory : public ProcFSExposedDirectory {
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSSystemDirectory> must_create(const ProcFSRootFolder& parent_folder);
|
||||
static NonnullRefPtr<ProcFSSystemDirectory> must_create(const ProcFSRootDirectory& parent_folder);
|
||||
|
||||
private:
|
||||
ProcFSSystemDirectory(const ProcFSRootFolder& parent_folder);
|
||||
ProcFSSystemDirectory(const ProcFSRootDirectory& parent_folder);
|
||||
};
|
||||
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<ProcFSAdapters> ProcFSAdapters::must_create()
|
||||
|
@ -195,7 +195,7 @@ UNMAP_AFTER_INIT NonnullRefPtr<ProcFSUDP> ProcFSUDP::must_create()
|
|||
return adopt_ref_if_nonnull(new (nothrow) ProcFSUDP).release_nonnull();
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<ProcFSNetworkDirectory> ProcFSNetworkDirectory::must_create(const ProcFSRootFolder& parent_folder)
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<ProcFSNetworkDirectory> ProcFSNetworkDirectory::must_create(const ProcFSRootDirectory& parent_folder)
|
||||
{
|
||||
auto folder = adopt_ref(*new (nothrow) ProcFSNetworkDirectory(parent_folder));
|
||||
folder->m_components.append(ProcFSAdapters::must_create());
|
||||
|
@ -226,8 +226,8 @@ UNMAP_AFTER_INIT ProcFSUDP::ProcFSUDP()
|
|||
: ProcFSGlobalInformation("udp"sv)
|
||||
{
|
||||
}
|
||||
UNMAP_AFTER_INIT ProcFSNetworkDirectory::ProcFSNetworkDirectory(const ProcFSRootFolder& parent_folder)
|
||||
: ProcFSExposedFolder("net"sv, parent_folder)
|
||||
UNMAP_AFTER_INIT ProcFSNetworkDirectory::ProcFSNetworkDirectory(const ProcFSRootDirectory& parent_folder)
|
||||
: ProcFSExposedDirectory("net"sv, parent_folder)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -318,12 +318,12 @@ UNMAP_AFTER_INIT ProcFSCapsLockRemap::ProcFSCapsLockRemap()
|
|||
{
|
||||
}
|
||||
|
||||
class ProcFSSelfProcessFolder final : public ProcFSExposedLink {
|
||||
class ProcFSSelfProcessDirectory final : public ProcFSExposedLink {
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSSelfProcessFolder> must_create();
|
||||
static NonnullRefPtr<ProcFSSelfProcessDirectory> must_create();
|
||||
|
||||
private:
|
||||
ProcFSSelfProcessFolder();
|
||||
ProcFSSelfProcessDirectory();
|
||||
virtual bool acquire_link(KBufferBuilder& builder) override
|
||||
{
|
||||
builder.appendff("{}", Process::current()->pid().value());
|
||||
|
@ -701,9 +701,9 @@ private:
|
|||
}
|
||||
};
|
||||
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<ProcFSSelfProcessFolder> ProcFSSelfProcessFolder::must_create()
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<ProcFSSelfProcessDirectory> ProcFSSelfProcessDirectory::must_create()
|
||||
{
|
||||
return adopt_ref_if_nonnull(new (nothrow) ProcFSSelfProcessFolder()).release_nonnull();
|
||||
return adopt_ref_if_nonnull(new (nothrow) ProcFSSelfProcessDirectory()).release_nonnull();
|
||||
}
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<ProcFSDiskUsage> ProcFSDiskUsage::must_create()
|
||||
{
|
||||
|
@ -758,7 +758,7 @@ UNMAP_AFTER_INIT NonnullRefPtr<ProcFSProfile> ProcFSProfile::must_create()
|
|||
return adopt_ref_if_nonnull(new (nothrow) ProcFSProfile).release_nonnull();
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT ProcFSSelfProcessFolder::ProcFSSelfProcessFolder()
|
||||
UNMAP_AFTER_INIT ProcFSSelfProcessDirectory::ProcFSSelfProcessDirectory()
|
||||
: ProcFSExposedLink("self"sv)
|
||||
{
|
||||
}
|
||||
|
@ -815,13 +815,13 @@ UNMAP_AFTER_INIT ProcFSProfile::ProcFSProfile()
|
|||
{
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<ProcFSBusDirectory> ProcFSBusDirectory::must_create(const ProcFSRootFolder& parent_folder)
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<ProcFSBusDirectory> ProcFSBusDirectory::must_create(const ProcFSRootDirectory& parent_folder)
|
||||
{
|
||||
auto folder = adopt_ref(*new (nothrow) ProcFSBusDirectory(parent_folder));
|
||||
return folder;
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<ProcFSSystemDirectory> ProcFSSystemDirectory::must_create(const ProcFSRootFolder& parent_folder)
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<ProcFSSystemDirectory> ProcFSSystemDirectory::must_create(const ProcFSRootDirectory& parent_folder)
|
||||
{
|
||||
auto folder = adopt_ref(*new (nothrow) ProcFSSystemDirectory(parent_folder));
|
||||
folder->m_components.append(ProcFSDumpKmallocStacks::must_create(folder));
|
||||
|
@ -830,19 +830,19 @@ UNMAP_AFTER_INIT NonnullRefPtr<ProcFSSystemDirectory> ProcFSSystemDirectory::mus
|
|||
return folder;
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT ProcFSBusDirectory::ProcFSBusDirectory(const ProcFSRootFolder& parent_folder)
|
||||
: ProcFSExposedFolder("bus"sv, parent_folder)
|
||||
UNMAP_AFTER_INIT ProcFSBusDirectory::ProcFSBusDirectory(const ProcFSRootDirectory& parent_folder)
|
||||
: ProcFSExposedDirectory("bus"sv, parent_folder)
|
||||
{
|
||||
}
|
||||
UNMAP_AFTER_INIT ProcFSSystemDirectory::ProcFSSystemDirectory(const ProcFSRootFolder& parent_folder)
|
||||
: ProcFSExposedFolder("sys"sv, parent_folder)
|
||||
UNMAP_AFTER_INIT ProcFSSystemDirectory::ProcFSSystemDirectory(const ProcFSRootDirectory& parent_folder)
|
||||
: ProcFSExposedDirectory("sys"sv, parent_folder)
|
||||
{
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<ProcFSRootFolder> ProcFSRootFolder::must_create()
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<ProcFSRootDirectory> ProcFSRootDirectory::must_create()
|
||||
{
|
||||
auto folder = adopt_ref(*new (nothrow) ProcFSRootFolder);
|
||||
folder->m_components.append(ProcFSSelfProcessFolder::must_create());
|
||||
auto folder = adopt_ref(*new (nothrow) ProcFSRootDirectory);
|
||||
folder->m_components.append(ProcFSSelfProcessDirectory::must_create());
|
||||
folder->m_components.append(ProcFSDiskUsage::must_create());
|
||||
folder->m_components.append(ProcFSMemoryStatus::must_create());
|
||||
folder->m_components.append(ProcFSOverallProcesses::must_create());
|
||||
|
@ -865,7 +865,7 @@ UNMAP_AFTER_INIT NonnullRefPtr<ProcFSRootFolder> ProcFSRootFolder::must_create()
|
|||
return folder;
|
||||
}
|
||||
|
||||
KResult ProcFSRootFolder::traverse_as_directory(unsigned fsid, Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
KResult ProcFSRootDirectory::traverse_as_directory(unsigned fsid, Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
Locker locker(ProcFSComponentsRegistrar::the().m_lock);
|
||||
callback({ ".", { fsid, component_index() }, 0 });
|
||||
|
@ -882,9 +882,9 @@ KResult ProcFSRootFolder::traverse_as_directory(unsigned fsid, Function<bool(Fil
|
|||
return KSuccess;
|
||||
}
|
||||
|
||||
RefPtr<ProcFSExposedComponent> ProcFSRootFolder::lookup(StringView name)
|
||||
RefPtr<ProcFSExposedComponent> ProcFSRootDirectory::lookup(StringView name)
|
||||
{
|
||||
if (auto candidate = ProcFSExposedFolder::lookup(name); !candidate.is_null())
|
||||
if (auto candidate = ProcFSExposedDirectory::lookup(name); !candidate.is_null())
|
||||
return candidate;
|
||||
|
||||
for (auto& component : m_process_folders) {
|
||||
|
@ -895,16 +895,16 @@ RefPtr<ProcFSExposedComponent> ProcFSRootFolder::lookup(StringView name)
|
|||
return {};
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT ProcFSRootFolder::ProcFSRootFolder()
|
||||
: ProcFSExposedFolder("."sv)
|
||||
UNMAP_AFTER_INIT ProcFSRootDirectory::ProcFSRootDirectory()
|
||||
: ProcFSExposedDirectory("."sv)
|
||||
{
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT ProcFSRootFolder::~ProcFSRootFolder()
|
||||
UNMAP_AFTER_INIT ProcFSRootDirectory::~ProcFSRootDirectory()
|
||||
{
|
||||
}
|
||||
|
||||
RefPtr<ProcFSProcessFolder> ProcFSRootFolder::process_folder_for(Process& process)
|
||||
RefPtr<ProcFSProcessDirectory> ProcFSRootDirectory::process_folder_for(Process& process)
|
||||
{
|
||||
RefPtr<Process> checked_process = process;
|
||||
for (auto& folder : m_process_folders) {
|
||||
|
|
|
@ -47,12 +47,12 @@ ProcFSExposedComponent::ProcFSExposedComponent(StringView name, InodeIndex preal
|
|||
m_name = KString::try_create(name);
|
||||
}
|
||||
|
||||
ProcFSExposedFolder::ProcFSExposedFolder(StringView name)
|
||||
ProcFSExposedDirectory::ProcFSExposedDirectory(StringView name)
|
||||
: ProcFSExposedComponent(name)
|
||||
{
|
||||
}
|
||||
|
||||
ProcFSExposedFolder::ProcFSExposedFolder(StringView name, const ProcFSExposedFolder& parent_folder)
|
||||
ProcFSExposedDirectory::ProcFSExposedDirectory(StringView name, const ProcFSExposedDirectory& parent_folder)
|
||||
: ProcFSExposedComponent(name)
|
||||
, m_parent_folder(parent_folder)
|
||||
{
|
||||
|
@ -220,17 +220,17 @@ NonnullRefPtr<Inode> ProcFSExposedComponent::to_inode(const ProcFS& procfs_insta
|
|||
return ProcFSInode::create(procfs_instance, *this);
|
||||
}
|
||||
|
||||
NonnullRefPtr<Inode> ProcFSExposedFolder::to_inode(const ProcFS& procfs_instance) const
|
||||
NonnullRefPtr<Inode> ProcFSExposedDirectory::to_inode(const ProcFS& procfs_instance) const
|
||||
{
|
||||
return ProcFSDirectoryInode::create(procfs_instance, *this);
|
||||
}
|
||||
|
||||
void ProcFSExposedFolder::add_component(const ProcFSExposedComponent&)
|
||||
void ProcFSExposedDirectory::add_component(const ProcFSExposedComponent&)
|
||||
{
|
||||
TODO();
|
||||
}
|
||||
|
||||
RefPtr<ProcFSExposedComponent> ProcFSExposedFolder::lookup(StringView name)
|
||||
RefPtr<ProcFSExposedComponent> ProcFSExposedDirectory::lookup(StringView name)
|
||||
{
|
||||
for (auto& component : m_components) {
|
||||
if (component.name() == name) {
|
||||
|
@ -240,7 +240,7 @@ RefPtr<ProcFSExposedComponent> ProcFSExposedFolder::lookup(StringView name)
|
|||
return {};
|
||||
}
|
||||
|
||||
KResult ProcFSExposedFolder::traverse_as_directory(unsigned fsid, Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
KResult ProcFSExposedDirectory::traverse_as_directory(unsigned fsid, Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
Locker locker(ProcFSComponentsRegistrar::the().m_lock);
|
||||
auto parent_folder = m_parent_folder.strong_ref();
|
||||
|
|
|
@ -23,16 +23,16 @@ namespace Kernel {
|
|||
|
||||
class ProcFS;
|
||||
class ProcFSExposedComponent;
|
||||
class ProcFSExposedFolder;
|
||||
class ProcFSRootFolder;
|
||||
class ProcFSExposedDirectory;
|
||||
class ProcFSRootDirectory;
|
||||
class ProcFSBusDirectory;
|
||||
class ProcFSSystemBoolean;
|
||||
|
||||
class ProcFSComponentsRegistrar {
|
||||
friend class ProcFS;
|
||||
friend class ProcFSExposedComponent;
|
||||
friend class ProcFSExposedFolder;
|
||||
friend class ProcFSRootFolder;
|
||||
friend class ProcFSExposedDirectory;
|
||||
friend class ProcFSRootDirectory;
|
||||
|
||||
public:
|
||||
static ProcFSComponentsRegistrar& the();
|
||||
|
@ -42,18 +42,18 @@ public:
|
|||
InodeIndex allocate_inode_index() const;
|
||||
|
||||
ProcFSComponentsRegistrar();
|
||||
void register_new_bus_folder(ProcFSExposedFolder&);
|
||||
void register_new_bus_folder(ProcFSExposedDirectory&);
|
||||
|
||||
const ProcFSBusDirectory& buses_folder() const;
|
||||
|
||||
void register_new_process(Process&);
|
||||
void unregister_process(Process&);
|
||||
|
||||
ProcFSRootFolder& root_folder() { return *m_root_folder; }
|
||||
ProcFSRootDirectory& root_folder() { return *m_root_folder; }
|
||||
|
||||
private:
|
||||
Lock m_lock;
|
||||
NonnullRefPtr<ProcFSRootFolder> m_root_folder;
|
||||
NonnullRefPtr<ProcFSRootDirectory> m_root_folder;
|
||||
};
|
||||
|
||||
class ProcFSExposedComponent : public RefCounted<ProcFSExposedComponent> {
|
||||
|
@ -92,10 +92,10 @@ private:
|
|||
InodeIndex m_component_index {};
|
||||
};
|
||||
|
||||
class ProcFSExposedFolder
|
||||
class ProcFSExposedDirectory
|
||||
: public ProcFSExposedComponent
|
||||
, public Weakable<ProcFSExposedFolder> {
|
||||
friend class ProcFSProcessFolder;
|
||||
, public Weakable<ProcFSExposedDirectory> {
|
||||
friend class ProcFSProcessDirectory;
|
||||
friend class ProcFSComponentsRegistrar;
|
||||
|
||||
public:
|
||||
|
@ -115,10 +115,10 @@ public:
|
|||
virtual NonnullRefPtr<Inode> to_inode(const ProcFS& procfs_instance) const override final;
|
||||
|
||||
protected:
|
||||
explicit ProcFSExposedFolder(StringView name);
|
||||
ProcFSExposedFolder(StringView name, const ProcFSExposedFolder& parent_folder);
|
||||
explicit ProcFSExposedDirectory(StringView name);
|
||||
ProcFSExposedDirectory(StringView name, const ProcFSExposedDirectory& parent_folder);
|
||||
NonnullRefPtrVector<ProcFSExposedComponent> m_components;
|
||||
WeakPtr<ProcFSExposedFolder> m_parent_folder;
|
||||
WeakPtr<ProcFSExposedDirectory> m_parent_folder;
|
||||
};
|
||||
|
||||
class ProcFSExposedLink : public ProcFSExposedComponent {
|
||||
|
@ -134,13 +134,13 @@ protected:
|
|||
mutable Lock m_lock { "ProcFSLink" };
|
||||
};
|
||||
|
||||
class ProcFSRootFolder;
|
||||
class ProcFSRootDirectory;
|
||||
class ProcFSProcessInformation;
|
||||
|
||||
class ProcFSProcessFolder final
|
||||
: public ProcFSExposedFolder {
|
||||
class ProcFSProcessDirectory final
|
||||
: public ProcFSExposedDirectory {
|
||||
friend class ProcFSComponentsRegistrar;
|
||||
friend class ProcFSRootFolder;
|
||||
friend class ProcFSRootDirectory;
|
||||
friend class ProcFSProcessInformation;
|
||||
friend class ProcFSProcessPledge;
|
||||
friend class ProcFSProcessUnveil;
|
||||
|
@ -155,7 +155,7 @@ class ProcFSProcessFolder final
|
|||
friend class ProcFSProcessStacks;
|
||||
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSProcessFolder> create(const Process&);
|
||||
static NonnullRefPtr<ProcFSProcessDirectory> create(const Process&);
|
||||
NonnullRefPtr<Process> associated_process() { return m_associated_process; }
|
||||
|
||||
virtual uid_t owner_user() const override { return m_associated_process->uid(); }
|
||||
|
@ -165,40 +165,40 @@ public:
|
|||
|
||||
private:
|
||||
void on_attach();
|
||||
IntrusiveListNode<ProcFSProcessFolder, RefPtr<ProcFSProcessFolder>> m_list_node;
|
||||
IntrusiveListNode<ProcFSProcessDirectory, RefPtr<ProcFSProcessDirectory>> m_list_node;
|
||||
|
||||
explicit ProcFSProcessFolder(const Process&);
|
||||
explicit ProcFSProcessDirectory(const Process&);
|
||||
NonnullRefPtr<Process> m_associated_process;
|
||||
};
|
||||
|
||||
class ProcFSRootFolder;
|
||||
class ProcFSRootDirectory;
|
||||
|
||||
class ProcFSBusDirectory : public ProcFSExposedFolder {
|
||||
class ProcFSBusDirectory : public ProcFSExposedDirectory {
|
||||
friend class ProcFSComponentsRegistrar;
|
||||
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSBusDirectory> must_create(const ProcFSRootFolder& parent_folder);
|
||||
static NonnullRefPtr<ProcFSBusDirectory> must_create(const ProcFSRootDirectory& parent_folder);
|
||||
|
||||
private:
|
||||
ProcFSBusDirectory(const ProcFSRootFolder& parent_folder);
|
||||
ProcFSBusDirectory(const ProcFSRootDirectory& parent_folder);
|
||||
};
|
||||
|
||||
class ProcFSRootFolder final : public ProcFSExposedFolder {
|
||||
class ProcFSRootDirectory final : public ProcFSExposedDirectory {
|
||||
friend class ProcFSComponentsRegistrar;
|
||||
|
||||
public:
|
||||
virtual RefPtr<ProcFSExposedComponent> lookup(StringView name) override;
|
||||
|
||||
RefPtr<ProcFSProcessFolder> process_folder_for(Process&);
|
||||
static NonnullRefPtr<ProcFSRootFolder> must_create();
|
||||
virtual ~ProcFSRootFolder();
|
||||
RefPtr<ProcFSProcessDirectory> process_folder_for(Process&);
|
||||
static NonnullRefPtr<ProcFSRootDirectory> must_create();
|
||||
virtual ~ProcFSRootDirectory();
|
||||
|
||||
private:
|
||||
virtual KResult traverse_as_directory(unsigned, Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
ProcFSRootFolder();
|
||||
ProcFSRootDirectory();
|
||||
|
||||
RefPtr<ProcFSBusDirectory> m_buses_folder;
|
||||
IntrusiveList<ProcFSProcessFolder, RefPtr<ProcFSProcessFolder>, &ProcFSProcessFolder::m_list_node> m_process_folders;
|
||||
IntrusiveList<ProcFSProcessDirectory, RefPtr<ProcFSProcessDirectory>, &ProcFSProcessDirectory::m_list_node> m_process_folders;
|
||||
};
|
||||
|
||||
class ProcFSGlobalInformation : public ProcFSExposedComponent {
|
||||
|
@ -247,7 +247,7 @@ public:
|
|||
virtual gid_t owner_group() const override { return m_parent_folder.strong_ref()->m_associated_process->gid(); }
|
||||
|
||||
protected:
|
||||
ProcFSProcessInformation(StringView name, const ProcFSProcessFolder& process_folder)
|
||||
ProcFSProcessInformation(StringView name, const ProcFSProcessDirectory& process_folder)
|
||||
: ProcFSExposedComponent(name)
|
||||
, m_parent_folder(process_folder)
|
||||
{
|
||||
|
@ -256,7 +256,7 @@ protected:
|
|||
virtual KResult refresh_data(FileDescription&) const override;
|
||||
virtual bool output(KBufferBuilder& builder) = 0;
|
||||
|
||||
WeakPtr<ProcFSProcessFolder> m_parent_folder;
|
||||
WeakPtr<ProcFSProcessDirectory> m_parent_folder;
|
||||
mutable SpinLock<u8> m_refresh_lock;
|
||||
};
|
||||
|
||||
|
|
|
@ -20,13 +20,13 @@ class ProcFSProcessStacks;
|
|||
class ProcFSThreadStack final : public ProcFSProcessInformation {
|
||||
public:
|
||||
// Note: We pass const ProcFSProcessStacks& to enforce creation with this type of folder
|
||||
static NonnullRefPtr<ProcFSThreadStack> create(const ProcFSProcessFolder& process_folder, const ProcFSProcessStacks&, const Thread& thread)
|
||||
static NonnullRefPtr<ProcFSThreadStack> create(const ProcFSProcessDirectory& process_folder, const ProcFSProcessStacks&, const Thread& thread)
|
||||
{
|
||||
return adopt_ref(*new (nothrow) ProcFSThreadStack(process_folder, thread));
|
||||
}
|
||||
|
||||
private:
|
||||
explicit ProcFSThreadStack(const ProcFSProcessFolder& process_folder, const Thread& thread)
|
||||
explicit ProcFSThreadStack(const ProcFSProcessDirectory& process_folder, const Thread& thread)
|
||||
: ProcFSProcessInformation(String::formatted("{}", thread.tid()), process_folder)
|
||||
, m_associated_thread(thread)
|
||||
{
|
||||
|
@ -53,7 +53,7 @@ private:
|
|||
NonnullRefPtr<Thread> m_associated_thread;
|
||||
};
|
||||
|
||||
class ProcFSProcessStacks final : public ProcFSExposedFolder {
|
||||
class ProcFSProcessStacks final : public ProcFSExposedDirectory {
|
||||
// Note: This folder is special, because everything that is created here is dynamic!
|
||||
// This means we don't register anything in the m_components Vector, and every inode
|
||||
// is created in runtime when called to get it
|
||||
|
@ -65,7 +65,7 @@ public:
|
|||
virtual KResult traverse_as_directory(unsigned, Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<ProcFSExposedComponent> lookup(StringView name) override;
|
||||
|
||||
static NonnullRefPtr<ProcFSProcessStacks> create(const ProcFSProcessFolder& parent_folder)
|
||||
static NonnullRefPtr<ProcFSProcessStacks> create(const ProcFSProcessDirectory& parent_folder)
|
||||
{
|
||||
auto folder = adopt_ref(*new (nothrow) ProcFSProcessStacks(parent_folder));
|
||||
return folder;
|
||||
|
@ -73,17 +73,17 @@ public:
|
|||
|
||||
virtual void prepare_for_deletion() override
|
||||
{
|
||||
ProcFSExposedFolder::prepare_for_deletion();
|
||||
ProcFSExposedDirectory::prepare_for_deletion();
|
||||
m_process_folder.clear();
|
||||
}
|
||||
|
||||
private:
|
||||
ProcFSProcessStacks(const ProcFSProcessFolder& parent_folder)
|
||||
: ProcFSExposedFolder("stacks"sv, parent_folder)
|
||||
ProcFSProcessStacks(const ProcFSProcessDirectory& parent_folder)
|
||||
: ProcFSExposedDirectory("stacks"sv, parent_folder)
|
||||
, m_process_folder(parent_folder)
|
||||
{
|
||||
}
|
||||
WeakPtr<ProcFSProcessFolder> m_process_folder;
|
||||
WeakPtr<ProcFSProcessDirectory> m_process_folder;
|
||||
mutable Lock m_lock;
|
||||
};
|
||||
|
||||
|
@ -156,7 +156,7 @@ private:
|
|||
NonnullRefPtr<FileDescription> m_associated_file_description;
|
||||
};
|
||||
|
||||
class ProcFSProcessFileDescriptions final : public ProcFSExposedFolder {
|
||||
class ProcFSProcessFileDescriptions final : public ProcFSExposedDirectory {
|
||||
// Note: This folder is special, because everything that is created here is dynamic!
|
||||
// This means we don't register anything in the m_components Vector, and every inode
|
||||
// is created in runtime when called to get it
|
||||
|
@ -168,24 +168,24 @@ public:
|
|||
virtual KResult traverse_as_directory(unsigned, Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<ProcFSExposedComponent> lookup(StringView name) override;
|
||||
|
||||
static NonnullRefPtr<ProcFSProcessFileDescriptions> create(const ProcFSProcessFolder& parent_folder)
|
||||
static NonnullRefPtr<ProcFSProcessFileDescriptions> create(const ProcFSProcessDirectory& parent_folder)
|
||||
{
|
||||
return adopt_ref(*new (nothrow) ProcFSProcessFileDescriptions(parent_folder));
|
||||
}
|
||||
|
||||
virtual void prepare_for_deletion() override
|
||||
{
|
||||
ProcFSExposedFolder::prepare_for_deletion();
|
||||
ProcFSExposedDirectory::prepare_for_deletion();
|
||||
m_process_folder.clear();
|
||||
}
|
||||
|
||||
private:
|
||||
explicit ProcFSProcessFileDescriptions(const ProcFSProcessFolder& parent_folder)
|
||||
: ProcFSExposedFolder("fd"sv, parent_folder)
|
||||
explicit ProcFSProcessFileDescriptions(const ProcFSProcessDirectory& parent_folder)
|
||||
: ProcFSExposedDirectory("fd"sv, parent_folder)
|
||||
, m_process_folder(parent_folder)
|
||||
{
|
||||
}
|
||||
WeakPtr<ProcFSProcessFolder> m_process_folder;
|
||||
WeakPtr<ProcFSProcessDirectory> m_process_folder;
|
||||
mutable Lock m_lock;
|
||||
};
|
||||
|
||||
|
@ -244,13 +244,13 @@ RefPtr<ProcFSExposedComponent> ProcFSProcessFileDescriptions::lookup(StringView
|
|||
|
||||
class ProcFSProcessPledge final : public ProcFSProcessInformation {
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSProcessPledge> create(const ProcFSProcessFolder& parent_folder)
|
||||
static NonnullRefPtr<ProcFSProcessPledge> create(const ProcFSProcessDirectory& parent_folder)
|
||||
{
|
||||
return adopt_ref(*new (nothrow) ProcFSProcessPledge(parent_folder));
|
||||
}
|
||||
|
||||
private:
|
||||
explicit ProcFSProcessPledge(const ProcFSProcessFolder& parent_folder)
|
||||
explicit ProcFSProcessPledge(const ProcFSProcessDirectory& parent_folder)
|
||||
: ProcFSProcessInformation("pledge"sv, parent_folder)
|
||||
{
|
||||
}
|
||||
|
@ -280,13 +280,13 @@ private:
|
|||
|
||||
class ProcFSProcessUnveil final : public ProcFSProcessInformation {
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSProcessUnveil> create(const ProcFSProcessFolder& parent_folder)
|
||||
static NonnullRefPtr<ProcFSProcessUnveil> create(const ProcFSProcessDirectory& parent_folder)
|
||||
{
|
||||
return adopt_ref(*new (nothrow) ProcFSProcessUnveil(parent_folder));
|
||||
}
|
||||
|
||||
private:
|
||||
explicit ProcFSProcessUnveil(const ProcFSProcessFolder& parent_folder)
|
||||
explicit ProcFSProcessUnveil(const ProcFSProcessDirectory& parent_folder)
|
||||
: ProcFSProcessInformation("unveil"sv, parent_folder)
|
||||
{
|
||||
}
|
||||
|
@ -321,13 +321,13 @@ private:
|
|||
|
||||
class ProcFSProcessPerformanceEvents final : public ProcFSProcessInformation {
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSProcessPerformanceEvents> create(const ProcFSProcessFolder& parent_folder)
|
||||
static NonnullRefPtr<ProcFSProcessPerformanceEvents> create(const ProcFSProcessDirectory& parent_folder)
|
||||
{
|
||||
return adopt_ref(*new (nothrow) ProcFSProcessPerformanceEvents(parent_folder));
|
||||
}
|
||||
|
||||
private:
|
||||
explicit ProcFSProcessPerformanceEvents(const ProcFSProcessFolder& parent_folder)
|
||||
explicit ProcFSProcessPerformanceEvents(const ProcFSProcessDirectory& parent_folder)
|
||||
: ProcFSProcessInformation("perf_events"sv, parent_folder)
|
||||
{
|
||||
}
|
||||
|
@ -348,13 +348,13 @@ private:
|
|||
|
||||
class ProcFSProcessOverallFileDescriptions final : public ProcFSProcessInformation {
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSProcessOverallFileDescriptions> create(const ProcFSProcessFolder& parent_folder)
|
||||
static NonnullRefPtr<ProcFSProcessOverallFileDescriptions> create(const ProcFSProcessDirectory& parent_folder)
|
||||
{
|
||||
return adopt_ref(*new (nothrow) ProcFSProcessOverallFileDescriptions(parent_folder));
|
||||
}
|
||||
|
||||
private:
|
||||
explicit ProcFSProcessOverallFileDescriptions(const ProcFSProcessFolder& parent_folder)
|
||||
explicit ProcFSProcessOverallFileDescriptions(const ProcFSProcessDirectory& parent_folder)
|
||||
: ProcFSProcessInformation("fds"sv, parent_folder)
|
||||
{
|
||||
}
|
||||
|
@ -398,13 +398,13 @@ private:
|
|||
|
||||
class ProcFSProcessRoot final : public ProcFSExposedLink {
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSProcessRoot> create(const ProcFSProcessFolder& parent_folder)
|
||||
static NonnullRefPtr<ProcFSProcessRoot> create(const ProcFSProcessDirectory& parent_folder)
|
||||
{
|
||||
return adopt_ref(*new (nothrow) ProcFSProcessRoot(parent_folder));
|
||||
}
|
||||
|
||||
private:
|
||||
explicit ProcFSProcessRoot(const ProcFSProcessFolder& parent_folder)
|
||||
explicit ProcFSProcessRoot(const ProcFSProcessDirectory& parent_folder)
|
||||
: ProcFSExposedLink("root"sv)
|
||||
, m_parent_process_directory(parent_folder)
|
||||
{
|
||||
|
@ -417,18 +417,18 @@ private:
|
|||
builder.append_bytes(parent_folder->m_associated_process->root_directory_relative_to_global_root().absolute_path().to_byte_buffer());
|
||||
return true;
|
||||
}
|
||||
WeakPtr<ProcFSProcessFolder> m_parent_process_directory;
|
||||
WeakPtr<ProcFSProcessDirectory> m_parent_process_directory;
|
||||
};
|
||||
|
||||
class ProcFSProcessVirtualMemory final : public ProcFSProcessInformation {
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSProcessRoot> create(const ProcFSProcessFolder& parent_folder)
|
||||
static NonnullRefPtr<ProcFSProcessRoot> create(const ProcFSProcessDirectory& parent_folder)
|
||||
{
|
||||
return adopt_ref(*new (nothrow) ProcFSProcessVirtualMemory(parent_folder));
|
||||
}
|
||||
|
||||
private:
|
||||
explicit ProcFSProcessVirtualMemory(const ProcFSProcessFolder& parent_folder)
|
||||
explicit ProcFSProcessVirtualMemory(const ProcFSProcessDirectory& parent_folder)
|
||||
: ProcFSProcessInformation("vm"sv, parent_folder)
|
||||
{
|
||||
}
|
||||
|
@ -484,13 +484,13 @@ private:
|
|||
|
||||
class ProcFSProcessCurrentWorkDirectory final : public ProcFSExposedLink {
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSProcessCurrentWorkDirectory> create(const ProcFSProcessFolder& parent_folder)
|
||||
static NonnullRefPtr<ProcFSProcessCurrentWorkDirectory> create(const ProcFSProcessDirectory& parent_folder)
|
||||
{
|
||||
return adopt_ref(*new (nothrow) ProcFSProcessCurrentWorkDirectory(parent_folder));
|
||||
}
|
||||
|
||||
private:
|
||||
explicit ProcFSProcessCurrentWorkDirectory(const ProcFSProcessFolder& parent_folder)
|
||||
explicit ProcFSProcessCurrentWorkDirectory(const ProcFSProcessDirectory& parent_folder)
|
||||
: ProcFSExposedLink("cwd"sv)
|
||||
, m_parent_process_directory(parent_folder)
|
||||
{
|
||||
|
@ -504,12 +504,12 @@ private:
|
|||
return true;
|
||||
}
|
||||
|
||||
WeakPtr<ProcFSProcessFolder> m_parent_process_directory;
|
||||
WeakPtr<ProcFSProcessDirectory> m_parent_process_directory;
|
||||
};
|
||||
|
||||
class ProcFSProcessBinary final : public ProcFSExposedLink {
|
||||
public:
|
||||
static NonnullRefPtr<ProcFSProcessBinary> create(const ProcFSProcessFolder& parent_folder)
|
||||
static NonnullRefPtr<ProcFSProcessBinary> create(const ProcFSProcessDirectory& parent_folder)
|
||||
{
|
||||
return adopt_ref(*new (nothrow) ProcFSProcessBinary(parent_folder));
|
||||
}
|
||||
|
@ -525,7 +525,7 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
explicit ProcFSProcessBinary(const ProcFSProcessFolder& parent_folder)
|
||||
explicit ProcFSProcessBinary(const ProcFSProcessDirectory& parent_folder)
|
||||
: ProcFSExposedLink("exe"sv)
|
||||
, m_parent_process_directory(parent_folder)
|
||||
{
|
||||
|
@ -542,10 +542,10 @@ private:
|
|||
return true;
|
||||
}
|
||||
|
||||
WeakPtr<ProcFSProcessFolder> m_parent_process_directory;
|
||||
WeakPtr<ProcFSProcessDirectory> m_parent_process_directory;
|
||||
};
|
||||
|
||||
void ProcFSProcessFolder::on_attach()
|
||||
void ProcFSProcessDirectory::on_attach()
|
||||
{
|
||||
VERIFY(m_components.size() == 0);
|
||||
m_components.append(ProcFSProcessPledge::create(*this));
|
||||
|
@ -560,30 +560,30 @@ void ProcFSProcessFolder::on_attach()
|
|||
m_components.append(ProcFSProcessStacks::create(*this));
|
||||
}
|
||||
|
||||
RefPtr<ProcFSExposedComponent> ProcFSProcessFolder::lookup(StringView name)
|
||||
RefPtr<ProcFSExposedComponent> ProcFSProcessDirectory::lookup(StringView name)
|
||||
{
|
||||
// Note: we need to allocate all sub components when doing a lookup, because
|
||||
// for some reason, the caller may not call ProcFSInode::attach method before calling this.
|
||||
if (m_components.size() == 0)
|
||||
on_attach();
|
||||
return ProcFSExposedFolder::lookup(name);
|
||||
return ProcFSExposedDirectory::lookup(name);
|
||||
}
|
||||
|
||||
KResult ProcFSProcessFolder::refresh_data(FileDescription&) const
|
||||
KResult ProcFSProcessDirectory::refresh_data(FileDescription&) const
|
||||
{
|
||||
if (m_components.size() != 0)
|
||||
return KSuccess;
|
||||
const_cast<ProcFSProcessFolder&>(*this).on_attach();
|
||||
const_cast<ProcFSProcessDirectory&>(*this).on_attach();
|
||||
return KSuccess;
|
||||
}
|
||||
|
||||
NonnullRefPtr<ProcFSProcessFolder> ProcFSProcessFolder::create(const Process& process)
|
||||
NonnullRefPtr<ProcFSProcessDirectory> ProcFSProcessDirectory::create(const Process& process)
|
||||
{
|
||||
return adopt_ref_if_nonnull(new (nothrow) ProcFSProcessFolder(process)).release_nonnull();
|
||||
return adopt_ref_if_nonnull(new (nothrow) ProcFSProcessDirectory(process)).release_nonnull();
|
||||
}
|
||||
|
||||
ProcFSProcessFolder::ProcFSProcessFolder(const Process& process)
|
||||
: ProcFSExposedFolder(String::formatted("{:d}", process.pid().value()), ProcFSComponentsRegistrar::the().root_folder())
|
||||
ProcFSProcessDirectory::ProcFSProcessDirectory(const Process& process)
|
||||
: ProcFSExposedDirectory(String::formatted("{:d}", process.pid().value()), ProcFSComponentsRegistrar::the().root_folder())
|
||||
, m_associated_process(process)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -236,8 +236,8 @@ void init_stage2(void*)
|
|||
|
||||
USB::UHCIController::detect();
|
||||
|
||||
BIOSExposedFolder::initialize();
|
||||
ACPI::ExposedFolder::initialize();
|
||||
BIOSExposedDirectory::initialize();
|
||||
ACPI::ExposedDirectory::initialize();
|
||||
|
||||
VirtIO::detect();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue