Skip to content

init

D = TypeVar('D') module-attribute

P = ParamSpec('P') module-attribute

T = TypeVar('T') module-attribute

Aarch64Ops

Bases: ArchOps

PAGE_OFFSET = -1 << self.VA_BITS + 2 ** 64 instance-attribute

PAGE_SHIFT = int(kconfig()['CONFIG_ARM64_PAGE_SHIFT']) instance-attribute

PHYS_OFFSET = pwndbg.gdblib.memory.u(pwndbg.gdblib.symbol.address('memstart_addr')) instance-attribute

STRUCT_PAGE_SHIFT = int(math.log2(self.STRUCT_PAGE_SIZE)) instance-attribute

STRUCT_PAGE_SIZE = gdb.lookup_type('struct page').sizeof instance-attribute

VA_BITS = int(kconfig()['ARM64_VA_BITS']) instance-attribute

VMEMMAP_SHIFT = self.PAGE_SHIFT - self.STRUCT_PAGE_SHIFT instance-attribute

VMEMMAP_START = -1 << self.VA_BITS - self.VMEMMAP_SHIFT % 1 << 64 instance-attribute

__init__()

page_size()

page_to_pfn(page)

paging_enabled() staticmethod

per_cpu(addr, cpu=None)

pfn_to_page(pfn)

pfn_to_phys(pfn)

phys_to_pfn(phys)

phys_to_virt(phys)

virt_to_phys(virt)

ArchOps

Bases: ABC

page_size() abstractmethod

page_to_pfn(page) abstractmethod

page_to_phys(page)

page_to_virt(page)

per_cpu(addr, cpu=None) abstractmethod

pfn_to_page(phys) abstractmethod

pfn_to_phys(pfn) abstractmethod

pfn_to_virt(pfn)

phys_to_page(phys)

phys_to_pfn(phys) abstractmethod

phys_to_virt(phys) abstractmethod

virt_to_page(virt)

virt_to_pfn(virt)

virt_to_phys(virt) abstractmethod

i386Ops

Bases: x86Ops

START_KERNEL_map = self._PAGE_OFFSET instance-attribute

page_offset: int property

page_shift: int property

ptr_size: int property

__init__()

page_to_pfn(page)

per_cpu(addr, cpu=None)

pfn_to_page(pfn)

virt_to_phys(virt)

x86Ops

Bases: ArchOps

page_offset: int abstractmethod property

page_shift: int abstractmethod property

ptr_size: int abstractmethod property

page_size()

paging_enabled() staticmethod

pfn_to_phys(pfn)

phys_to_pfn(phys)

phys_to_virt(phys)

x86_64Ops

Bases: x86Ops

START_KERNEL_map = 18446744071562067968 instance-attribute

STRUCT_PAGE_SHIFT = int(math.log2(self.STRUCT_PAGE_SIZE)) instance-attribute

STRUCT_PAGE_SIZE = gdb.lookup_type('struct page').sizeof instance-attribute

VMEMMAP_START = 18434359174734282752 instance-attribute

page_offset: int property

page_shift: int property

phys_base = 16777216 instance-attribute

ptr_size: int property

__init__()

cpu_feature_capability(feature) staticmethod

page_to_pfn(page)

per_cpu(addr, cpu=None)

pfn_to_page(pfn)

uses_5lvl_paging() staticmethod

virt_to_phys(virt)

BIT(shift)

arch_ops()

get_first_kernel_ro()

Returns the first kernel mapping which contains the linux_banner

get_idt_entries()

Retrieves the IDT entries from memory.

has_debug_syms()

is_kaslr_enabled()

kbase()

kcmdline()

kconfig()

krelease()

kversion()

load_kconfig()

nproc()

Returns the number of processing units available, similar to nproc(1)

num_numa_nodes()

Returns the number of NUMA nodes that are online on the system

page_size()

page_to_pfn(page)

page_to_phys(page)

page_to_virt(page)

paging_enabled()

per_cpu(addr, cpu=None)

pfn_to_page(pfn)

pfn_to_phys(pfn)

pfn_to_virt(pfn)

phys_to_page(phys)

phys_to_pfn(phys)

phys_to_virt(phys)

requires_debug_syms(default=None)

requires_kconfig(default=None)

virt_to_page(virt)

virt_to_pfn(virt)

virt_to_phys(virt)