mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:58:12 +00:00

Dirty private memory is all memory in non-inode-backed mappings that's process-private, meaning it's not shared with any other process. This patch exposes that number via SystemMonitor, giving us an idea of how much memory each process is responsible for all on its own.
33 lines
955 B
C++
33 lines
955 B
C++
#pragma once
|
|
|
|
#include <Kernel/UnixTypes.h>
|
|
#include <Kernel/VM/VMObject.h>
|
|
|
|
class InodeVMObject final : public VMObject {
|
|
public:
|
|
virtual ~InodeVMObject() override;
|
|
|
|
static NonnullRefPtr<InodeVMObject> create_with_inode(Inode&);
|
|
virtual NonnullRefPtr<VMObject> clone() override;
|
|
|
|
Inode& inode() { return *m_inode; }
|
|
const Inode& inode() const { return *m_inode; }
|
|
|
|
void inode_contents_changed(Badge<Inode>, off_t, ssize_t, const u8*);
|
|
void inode_size_changed(Badge<Inode>, size_t old_size, size_t new_size);
|
|
|
|
size_t amount_dirty() const;
|
|
|
|
private:
|
|
explicit InodeVMObject(Inode&);
|
|
explicit InodeVMObject(const InodeVMObject&);
|
|
|
|
InodeVMObject& operator=(const InodeVMObject&) = delete;
|
|
InodeVMObject& operator=(InodeVMObject&&) = delete;
|
|
InodeVMObject(InodeVMObject&&) = delete;
|
|
|
|
virtual bool is_inode() const override { return true; }
|
|
|
|
NonnullRefPtr<Inode> m_inode;
|
|
Bitmap m_dirty_pages;
|
|
};
|