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