Skip to content

kernel ¤

Modules:

Classes:

Functions:

Attributes:

  • P
  • D
  • T

P module-attribute ¤

P = ParamSpec('P')

D module-attribute ¤

D = TypeVar('D')

T module-attribute ¤

T = TypeVar('T')

ArchOps ¤

Bases: ABC

Methods:

page_size abstractmethod ¤

page_size() -> int

per_cpu abstractmethod ¤

per_cpu(addr: Value, cpu=None) -> Value

virt_to_phys abstractmethod ¤

virt_to_phys(virt: int) -> int

phys_to_virt abstractmethod ¤

phys_to_virt(phys: int) -> int

phys_to_pfn abstractmethod ¤

phys_to_pfn(phys: int) -> int

pfn_to_phys abstractmethod ¤

pfn_to_phys(pfn: int) -> int

pfn_to_page abstractmethod ¤

pfn_to_page(phys: int) -> int

page_to_pfn abstractmethod ¤

page_to_pfn(page: int) -> int

virt_to_pfn ¤

virt_to_pfn(virt: int) -> int

pfn_to_virt ¤

pfn_to_virt(pfn: int) -> int

phys_to_page ¤

phys_to_page(phys: int) -> int

page_to_phys ¤

page_to_phys(page: int) -> int

virt_to_page ¤

virt_to_page(virt: int) -> int

page_to_virt ¤

page_to_virt(page: int) -> int

x86Ops ¤

Bases: ArchOps

Methods:

Attributes:

ptr_size abstractmethod property ¤

ptr_size: int

page_shift abstractmethod property ¤

page_shift: int

page_offset abstractmethod property ¤

page_offset: int

page_size ¤

page_size() -> int

phys_to_virt ¤

phys_to_virt(phys: int) -> int

phys_to_pfn ¤

phys_to_pfn(phys: int) -> int

pfn_to_phys ¤

pfn_to_phys(pfn: int) -> int

paging_enabled staticmethod ¤

paging_enabled() -> bool

per_cpu abstractmethod ¤

per_cpu(addr: Value, cpu=None) -> Value

virt_to_phys abstractmethod ¤

virt_to_phys(virt: int) -> int

pfn_to_page abstractmethod ¤

pfn_to_page(phys: int) -> int

page_to_pfn abstractmethod ¤

page_to_pfn(page: int) -> int

virt_to_pfn ¤

virt_to_pfn(virt: int) -> int

pfn_to_virt ¤

pfn_to_virt(pfn: int) -> int

phys_to_page ¤

phys_to_page(phys: int) -> int

page_to_phys ¤

page_to_phys(page: int) -> int

virt_to_page ¤

virt_to_page(virt: int) -> int

page_to_virt ¤

page_to_virt(page: int) -> int

i386Ops ¤

i386Ops()

Bases: x86Ops

Methods:

Attributes:

START_KERNEL_map instance-attribute ¤

START_KERNEL_map = _PAGE_OFFSET

ptr_size property ¤

ptr_size: int

page_offset property ¤

page_offset: int

page_shift property ¤

page_shift: int

virt_to_phys ¤

virt_to_phys(virt: int) -> int

per_cpu ¤

per_cpu(addr: Value, cpu: int | None = None) -> Value

pfn_to_page ¤

pfn_to_page(pfn: int) -> int

page_to_pfn ¤

page_to_pfn(page: int) -> int

page_size ¤

page_size() -> int

phys_to_virt ¤

phys_to_virt(phys: int) -> int

phys_to_pfn ¤

phys_to_pfn(phys: int) -> int

pfn_to_phys ¤

pfn_to_phys(pfn: int) -> int

virt_to_pfn ¤

virt_to_pfn(virt: int) -> int

pfn_to_virt ¤

pfn_to_virt(pfn: int) -> int

phys_to_page ¤

phys_to_page(phys: int) -> int

page_to_phys ¤

page_to_phys(page: int) -> int

virt_to_page ¤

virt_to_page(virt: int) -> int

page_to_virt ¤

page_to_virt(page: int) -> int

paging_enabled staticmethod ¤

paging_enabled() -> bool

x86_64Ops ¤

x86_64Ops()

Bases: x86Ops

Methods:

Attributes:

VMEMMAP_START instance-attribute ¤

VMEMMAP_START = 18434359174734282752

STRUCT_PAGE_SIZE instance-attribute ¤

STRUCT_PAGE_SIZE = sizeof

STRUCT_PAGE_SHIFT instance-attribute ¤

STRUCT_PAGE_SHIFT = int(log2(STRUCT_PAGE_SIZE))

START_KERNEL_map instance-attribute ¤

START_KERNEL_map = 18446744071562067968

phys_base instance-attribute ¤

phys_base = 16777216

ptr_size property ¤

ptr_size: int

page_offset property ¤

page_offset: int

page_shift property ¤

page_shift: int

per_cpu ¤

per_cpu(addr: Value, cpu: int | None = None) -> Value

virt_to_phys ¤

virt_to_phys(virt: int) -> int

pfn_to_page ¤

pfn_to_page(pfn: int) -> int

page_to_pfn ¤

page_to_pfn(page: int) -> int

cpu_feature_capability staticmethod ¤

cpu_feature_capability(feature: int) -> bool

uses_5lvl_paging staticmethod ¤

uses_5lvl_paging() -> bool

page_size ¤

page_size() -> int

phys_to_virt ¤

phys_to_virt(phys: int) -> int

phys_to_pfn ¤

phys_to_pfn(phys: int) -> int

pfn_to_phys ¤

pfn_to_phys(pfn: int) -> int

virt_to_pfn ¤

virt_to_pfn(virt: int) -> int

pfn_to_virt ¤

pfn_to_virt(pfn: int) -> int

phys_to_page ¤

phys_to_page(phys: int) -> int

page_to_phys ¤

page_to_phys(page: int) -> int

virt_to_page ¤

virt_to_page(virt: int) -> int

page_to_virt ¤

page_to_virt(page: int) -> int

paging_enabled staticmethod ¤

paging_enabled() -> bool

Aarch64Ops ¤

Aarch64Ops()

Bases: ArchOps

Methods:

Attributes:

STRUCT_PAGE_SIZE instance-attribute ¤

STRUCT_PAGE_SIZE = sizeof

STRUCT_PAGE_SHIFT instance-attribute ¤

STRUCT_PAGE_SHIFT = int(log2(STRUCT_PAGE_SIZE))

VA_BITS instance-attribute ¤

VA_BITS = int(kconfig()['ARM64_VA_BITS'])

PAGE_SHIFT instance-attribute ¤

PAGE_SHIFT = int(kconfig()['CONFIG_ARM64_PAGE_SHIFT'])

PHYS_OFFSET instance-attribute ¤

PHYS_OFFSET = u(addr)

PAGE_OFFSET instance-attribute ¤

PAGE_OFFSET = -1 << VA_BITS + 2 ** 64

VMEMMAP_SHIFT instance-attribute ¤

VMEMMAP_SHIFT = PAGE_SHIFT - STRUCT_PAGE_SHIFT

VMEMMAP_START instance-attribute ¤

VMEMMAP_START = -1 << VA_BITS - VMEMMAP_SHIFT % 1 << 64

page_size ¤

page_size() -> int

per_cpu ¤

per_cpu(addr: Value, cpu: int | None = None) -> Value

virt_to_phys ¤

virt_to_phys(virt: int) -> int

phys_to_virt ¤

phys_to_virt(phys: int) -> int

phys_to_pfn ¤

phys_to_pfn(phys: int) -> int

pfn_to_phys ¤

pfn_to_phys(pfn: int) -> int

pfn_to_page ¤

pfn_to_page(pfn: int) -> int

page_to_pfn ¤

page_to_pfn(page: int) -> int

paging_enabled staticmethod ¤

paging_enabled() -> bool

virt_to_pfn ¤

virt_to_pfn(virt: int) -> int

pfn_to_virt ¤

pfn_to_virt(pfn: int) -> int

phys_to_page ¤

phys_to_page(phys: int) -> int

page_to_phys ¤

page_to_phys(page: int) -> int

virt_to_page ¤

virt_to_page(virt: int) -> int

page_to_virt ¤

page_to_virt(page: int) -> int

BIT ¤

BIT(shift: int)

has_debug_syms ¤

has_debug_syms() -> bool

requires_kconfig ¤

requires_kconfig(
    default: D = None,
) -> Callable[[Callable[P, T]], Callable[P, T | D]]

requires_debug_syms ¤

requires_debug_syms(
    default: D = None,
) -> Callable[[Callable[P, T]], Callable[P, T | D]]

nproc ¤

nproc() -> int

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

get_first_kernel_ro ¤

get_first_kernel_ro() -> Page | None

Returns the first kernel mapping which contains the linux_banner

load_kconfig ¤

load_kconfig() -> Kconfig | None

kconfig ¤

kconfig() -> Kconfig | None

kcmdline ¤

kcmdline() -> str

kversion ¤

kversion() -> str

krelease ¤

krelease() -> tuple[int, ...]

is_kaslr_enabled ¤

is_kaslr_enabled() -> bool

kbase ¤

kbase() -> int | None

get_idt_entries ¤

get_idt_entries() -> list[IDTEntry]

Retrieves the IDT entries from memory.

arch_ops ¤

arch_ops() -> ArchOps

page_size ¤

page_size() -> int

per_cpu ¤

per_cpu(addr: Value, cpu: int | None = None) -> Value

virt_to_phys ¤

virt_to_phys(virt: int) -> int

phys_to_virt ¤

phys_to_virt(phys: int) -> int

phys_to_pfn ¤

phys_to_pfn(phys: int) -> int

pfn_to_phys ¤

pfn_to_phys(pfn: int) -> int

pfn_to_page ¤

pfn_to_page(pfn: int) -> int

page_to_pfn ¤

page_to_pfn(page: int) -> int

phys_to_page ¤

phys_to_page(phys: int) -> int

page_to_phys ¤

page_to_phys(page: int) -> int

virt_to_page ¤

virt_to_page(virt: int) -> int

page_to_virt ¤

page_to_virt(page: int) -> int

pfn_to_virt ¤

pfn_to_virt(pfn: int) -> int

virt_to_pfn ¤

virt_to_pfn(virt: int) -> int

paging_enabled ¤

paging_enabled() -> bool

num_numa_nodes ¤

num_numa_nodes() -> int

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