2018-10-23 11:57:38 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <AK/Types.h>
|
|
|
|
|
#include <VirtualFileSystem/SyntheticFileSystem.h>
|
|
|
|
|
|
2018-11-01 13:15:46 +01:00
|
|
|
class Process;
|
2018-10-26 17:42:12 +02:00
|
|
|
|
2018-11-15 17:13:10 +01:00
|
|
|
class ProcFS final : public SynthFS {
|
2018-10-23 11:57:38 +02:00
|
|
|
public:
|
2018-11-15 17:13:10 +01:00
|
|
|
static ProcFS& the() PURE;
|
2018-10-26 17:42:12 +02:00
|
|
|
|
2018-11-15 17:13:10 +01:00
|
|
|
virtual ~ProcFS() override;
|
|
|
|
|
static RetainPtr<ProcFS> create();
|
2018-10-23 11:57:38 +02:00
|
|
|
|
|
|
|
|
virtual bool initialize() override;
|
2018-11-15 15:36:35 +01:00
|
|
|
virtual const char* class_name() const override;
|
2018-10-23 11:57:38 +02:00
|
|
|
|
2018-12-03 00:39:25 +01:00
|
|
|
void add_process(Process&);
|
|
|
|
|
void remove_process(Process&);
|
2018-10-26 17:42:12 +02:00
|
|
|
|
2018-10-23 11:57:38 +02:00
|
|
|
private:
|
2018-11-15 17:13:10 +01:00
|
|
|
ProcFS();
|
2018-10-26 17:42:12 +02:00
|
|
|
|
|
|
|
|
HashMap<pid_t, InodeIndex> m_pid2inode;
|
2018-10-23 11:57:38 +02:00
|
|
|
};
|
|
|
|
|
|