SYMBOL INDEX (222 symbols across 25 files) FILE: src/systrack/__main__.py function sigint_handler (line 19) | def sigint_handler(_, __): function wrap_help (line 23) | def wrap_help(body: str) -> str: function parse_args (line 30) | def parse_args() -> argparse.Namespace: function instantiate_kernel (line 90) | def instantiate_kernel(*a, **kwa) -> Kernel: function main (line 121) | def main() -> int: FILE: src/systrack/arch/__init__.py function arch_from_name (line 127) | def arch_from_name(name: str, kernel_version: KernelVersion) -> Arch: function arch_from_vmlinux (line 133) | def arch_from_vmlinux(vmlinux: ELF) -> Optional[Tuple[Type[Arch],bool,Li... FILE: src/systrack/arch/arch_base.py class Arch (line 11) | class Arch(ABC): method __init__ (line 64) | def __init__(self, kernel_version: KernelVersion, abi: str, bits32: bo... method __repr__ (line 69) | def __repr__(s): method match (line 75) | def match(vmlinux: ELF) -> Optional[Tuple[bool,List[str]]]: method matches (line 84) | def matches(self, vmlinux: ELF) -> bool: method adjust_abi (line 92) | def adjust_abi(self, vmlinux: ELF): method _preferred_symbol (line 99) | def _preferred_symbol(self, a: Symbol, b: Symbol) -> Optional[Symbol]: method preferred_symbol (line 106) | def preferred_symbol(self, a: Symbol, b: Symbol) -> Symbol: method symbol_is_ni_syscall (line 139) | def symbol_is_ni_syscall(self, sym: Symbol) -> bool: method skip_syscall (line 167) | def skip_syscall(self, sc: Syscall) -> bool: method _translate_syscall_symbol_name (line 180) | def _translate_syscall_symbol_name(self, sym_name: str) -> str: method translate_syscall_symbol_name (line 186) | def translate_syscall_symbol_name(self, sym_name: str) -> str: method _normalize_syscall_name (line 200) | def _normalize_syscall_name(self, name: str) -> str: method normalize_syscall_name (line 210) | def normalize_syscall_name(self, name: str) -> str: method _dummy_syscall_code (line 259) | def _dummy_syscall_code(self, sc: Syscall, vmlinux: ELF) -> Optional[b... method is_dummy_syscall (line 268) | def is_dummy_syscall(self, sc: Syscall, vmlinux: ELF, method adjust_syscall_number (line 300) | def adjust_syscall_number(self, number: int) -> int: method have_syscall_table (line 307) | def have_syscall_table(self) -> bool: method extract_syscall_vaddrs (line 312) | def extract_syscall_vaddrs(self, vmlinux: ELF) -> Dict[int,int]: method extract_esoteric_syscalls (line 320) | def extract_esoteric_syscalls(self, vmlinux: ELF) -> List[EsotericSysc... method syscall_def_regexp (line 333) | def syscall_def_regexp(self, syscall_name: Optional[str]=None) -> Opti... FILE: src/systrack/arch/arm.py class ArchArm (line 11) | class ArchArm(Arch): method __init__ (line 25) | def __init__(self, kernel_version: KernelVersion, abi: str, bits32: bo... method match (line 59) | def match(vmlinux: ELF) -> Optional[Tuple[bool,List[str]]]: method matches (line 76) | def matches(self, vmlinux: ELF) -> bool: method adjust_abi (line 79) | def adjust_abi(self, vmlinux: ELF): method _translate_syscall_symbol_name (line 92) | def _translate_syscall_symbol_name(self, sym_name: str) -> str: method _normalize_syscall_name (line 99) | def _normalize_syscall_name(self, name: str) -> str: method _dummy_syscall_code (line 106) | def _dummy_syscall_code(self, sc: Syscall, vmlinux: ELF) -> Optional[b... method extract_esoteric_syscalls (line 123) | def extract_esoteric_syscalls(self, vmlinux: ELF) -> List[EsotericSysc... method syscall_def_regexp (line 146) | def syscall_def_regexp(self, syscall_name: Optional[str]=None) -> Opti... FILE: src/systrack/arch/arm64.py class ArchArm64 (line 11) | class ArchArm64(Arch): method __init__ (line 41) | def __init__(self, kernel_version: KernelVersion, abi: str, bits32: bo... method match (line 54) | def match(vmlinux: ELF) -> Optional[Tuple[bool,List[str]]]: method matches (line 67) | def matches(self, vmlinux: ELF) -> bool: method _preferred_symbol (line 70) | def _preferred_symbol(self, a: Symbol, b: Symbol) -> Optional[Symbol]: method _normalize_syscall_name (line 78) | def _normalize_syscall_name(self, name: str) -> str: method _dummy_syscall_code (line 83) | def _dummy_syscall_code(self, sc: Syscall, vmlinux: ELF) -> Optional[b... FILE: src/systrack/arch/mips.py class ArchMips (line 11) | class ArchMips(Arch): method __init__ (line 23) | def __init__(self, kernel_version: KernelVersion, abi: str, bits32: bo... method match (line 88) | def match(vmlinux: ELF) -> Optional[Tuple[bool,List[str]]]: method matches (line 104) | def matches(self, vmlinux: ELF) -> bool: method _normalize_syscall_name (line 110) | def _normalize_syscall_name(self, name: str) -> str: method _dummy_syscall_code (line 116) | def _dummy_syscall_code(self, sc: Syscall, vmlinux: ELF) -> Optional[b... method syscall_def_regexp (line 146) | def syscall_def_regexp(self, syscall_name: Optional[str]=None) -> Opti... FILE: src/systrack/arch/powerpc.py class ArchPowerPC (line 13) | class ArchPowerPC(Arch): method __init__ (line 57) | def __init__(self, kernel_version: KernelVersion, abi: str, bits32: bo... method match (line 140) | def match(vmlinux: ELF) -> Optional[Tuple[bool,List[str]]]: method matches (line 168) | def matches(self, vmlinux: ELF) -> bool: method _preferred_symbol (line 176) | def _preferred_symbol(self, a: Symbol, b: Symbol) -> Optional[Symbol]: method skip_syscall (line 191) | def skip_syscall(self, sc: Syscall) -> bool: method _translate_syscall_symbol_name (line 203) | def _translate_syscall_symbol_name(self, sym_name: str) -> str: method _normalize_syscall_name (line 206) | def _normalize_syscall_name(self, name: str) -> str: method _dummy_syscall_code (line 209) | def _dummy_syscall_code(self, sc: Syscall, vmlinux: ELF) -> Optional[b... method adjust_syscall_number (line 267) | def adjust_syscall_number(self, number: int) -> int: method extract_esoteric_syscalls (line 274) | def extract_esoteric_syscalls(self, vmlinux: ELF) -> List[EsotericSysc... method syscall_def_regexp (line 343) | def syscall_def_regexp(self, syscall_name: Optional[str]=None) -> Opti... FILE: src/systrack/arch/riscv.py class ArchRiscV (line 10) | class ArchRiscV(Arch): method __init__ (line 24) | def __init__(self, kernel_version: KernelVersion, abi: str, bits32: bo... method match (line 66) | def match(vmlinux: ELF) -> Optional[Tuple[bool,List[str]]]: method matches (line 80) | def matches(self, vmlinux: ELF) -> bool: method _preferred_symbol (line 86) | def _preferred_symbol(self, a: Symbol, b: Symbol) -> Optional[Symbol]: FILE: src/systrack/arch/s390.py class ArchS390 (line 12) | class ArchS390(Arch): method __init__ (line 36) | def __init__(self, kernel_version: KernelVersion, abi: str, bits32: bo... method match (line 47) | def match(vmlinux: ELF) -> Optional[Tuple[bool,List[str]]]: method matches (line 60) | def matches(self, vmlinux: ELF) -> bool: method _preferred_symbol (line 63) | def _preferred_symbol(self, a: Symbol, b: Symbol) -> Optional[Symbol]: method _translate_syscall_symbol_name (line 71) | def _translate_syscall_symbol_name(self, sym_name: str) -> str: method _normalize_syscall_name (line 79) | def _normalize_syscall_name(self, name: str) -> str: method have_syscall_table (line 97) | def have_syscall_table(self) -> bool: method extract_syscall_vaddrs (line 102) | def extract_syscall_vaddrs(self, vmlinux: ELF) -> Dict[int, int]: method syscall_def_regexp (line 127) | def syscall_def_regexp(self, syscall_name: Optional[str]=None) -> Opti... FILE: src/systrack/arch/x86.py class ArchX86 (line 18) | class ArchX86(Arch): method __init__ (line 58) | def __init__(self, kernel_version: KernelVersion, abi: str, bits32: bo... method match (line 145) | def match(vmlinux: ELF) -> Optional[Tuple[bool,List[str]]]: method matches (line 175) | def matches(self, vmlinux: ELF) -> bool: method adjust_abi (line 181) | def adjust_abi(self, vmlinux: ELF): method _preferred_symbol (line 195) | def _preferred_symbol(self, a: Symbol, b: Symbol) -> Optional[Symbol]: method skip_syscall (line 220) | def skip_syscall(self, sc: Syscall) -> bool: method _translate_syscall_symbol_name (line 282) | def _translate_syscall_symbol_name(self, sym_name: str) -> str: method _normalize_syscall_name (line 300) | def _normalize_syscall_name(self, name: str) -> str: method _dummy_syscall_code (line 304) | def _dummy_syscall_code(self, sc: Syscall, vmlinux: ELF) -> Optional[b... method __emulate_syscall_switch (line 341) | def __emulate_syscall_switch(self, func: Symbol, func_code: bytes) -> ... method extract_syscall_vaddrs (line 522) | def extract_syscall_vaddrs(self, vmlinux: ELF) -> Dict[int,int]: method syscall_def_regexp (line 601) | def syscall_def_regexp(self, syscall_name: Optional[str]=None) -> Opti... FILE: src/systrack/elf.py class E_MACHINE (line 14) | class E_MACHINE(IntEnum): class E_FLAGS (line 26) | class E_FLAGS(IntEnum): class Symbol (line 36) | class Symbol(_Symbol): method __repr__ (line 39) | def __repr__(s): class ELF (line 45) | class ELF: method __init__ (line 51) | def __init__(self, path: Union[str,Path]): method sections (line 86) | def sections(self) -> Dict[str,Section]: method symbols (line 103) | def symbols(self) -> Dict[str, Symbol]: method functions (line 109) | def functions(self) -> Dict[str, Symbol]: method has_debug_info (line 115) | def has_debug_info(self) -> bool: method __extract_symbols (line 118) | def __extract_symbols(self): method vaddr_to_file_offset (line 147) | def vaddr_to_file_offset(self, vaddr: int) -> int: method vaddr_read_string (line 153) | def vaddr_read_string(self, vaddr: int) -> str: method vaddr_read (line 162) | def vaddr_read(self, vaddr: int, size: int) -> bytes: method read_symbol (line 167) | def read_symbol(self, sym: Union[str,Symbol]) -> bytes: method next_symbol (line 174) | def next_symbol(self, sym: Symbol) -> Optional[Symbol]: FILE: src/systrack/kconfig.py function kconfig_debugging (line 19) | def kconfig_debugging(kernel_version: KernelVersion) -> List[str]: function kconfig_compatibility (line 22) | def kconfig_compatibility(kernel_version: KernelVersion) -> List[str]: function kconfig_more_syscalls (line 25) | def kconfig_more_syscalls(kernel_version: KernelVersion) -> Dict[str,Lis... function kconfig_syscall_deps (line 28) | def kconfig_syscall_deps(syscall_name: str, kernel_version: KernelVersio... function run_config_script (line 33) | def run_config_script(kdir: Path, config_file: Path, args: List[str]): class Kconfig (line 36) | class Kconfig: method __init__ (line 42) | def __init__(self, file: Path, kdir: Path): method get (line 63) | def get(self, name: str) -> Optional[str]: method check (line 78) | def check(self, name: str, wanted: str) -> bool: method human_readable (line 85) | def human_readable(self, name: str) -> str: function kconfig_edit (line 94) | def kconfig_edit(config_file: Path, kdir: Path, options: Iterable[str]): function kconfig_check_with_deps (line 115) | def kconfig_check_with_deps(config_file: Path, kdir: Path, options: Dict... function kconfig_debug_check (line 160) | def kconfig_debug_check(config_file: Path, kdir: Path, options: Iterable... FILE: src/systrack/kernel.py class KernelError (line 25) | class KernelError(RuntimeError): class KernelArchError (line 28) | class KernelArchError(KernelError): class KernelELFError (line 31) | class KernelELFError(KernelError): class KernelMultiABIError (line 34) | class KernelMultiABIError(KernelError): class KernelVersionError (line 37) | class KernelVersionError(KernelError): class KernelWithoutSymbolsError (line 40) | class KernelWithoutSymbolsError(KernelError): class Kernel (line 44) | class Kernel: method __init__ (line 52) | def __init__(self, arch_name: Optional[str] = None, method version_from_str (line 101) | def version_from_str(s: str) -> KernelVersion: method version_from_banner (line 110) | def version_from_banner(banner: Union[str,bytes]) -> KernelVersion: method __version_from_vmlinux (line 118) | def __version_from_vmlinux(self) -> KernelVersion: method __version_from_make (line 130) | def __version_from_make(self) -> KernelVersion: method version (line 135) | def version(self) -> KernelVersion: method version_str (line 151) | def version_str(self) -> str: method version_tag (line 155) | def version_tag(self) -> str: method version_source (line 162) | def version_source(self) -> str: method can_extract_location_info (line 168) | def can_extract_location_info(self): method can_extract_signature_info (line 172) | def can_extract_signature_info(self): method syscalls (line 179) | def syscalls(self) -> List[Syscall]: method __rel (line 184) | def __rel(self, path: Path) -> Path: method __unpack_long (line 187) | def __unpack_long(self, vaddr: int) -> int: method __iter_unpack_vmlinux (line 190) | def __iter_unpack_vmlinux(self, fmt: str, off: int, size: int = None) ... method __iter_unpack_vmlinux_long (line 201) | def __iter_unpack_vmlinux_long(self, off: int, size: int = None) -> It... method __unpack_syscall_table (line 204) | def __unpack_syscall_table(self, tbl: Symbol, target_section: Section)... method __syscall_vaddrs_from_syscall_table (line 254) | def __syscall_vaddrs_from_syscall_table(self) -> Dict[int,int]: method __extract_syscalls (line 314) | def __extract_syscalls(self) -> List[Syscall]: method __try_set_optimization_level (line 602) | def __try_set_optimization_level(self, lvl: int) -> bool: method __restore_makefile (line 619) | def __restore_makefile(self): method __edit_config (line 628) | def __edit_config(self, options: Iterable[str]): method __edit_config_with_deps (line 640) | def __edit_config_with_deps(self, options: Dict[str,List[str]]): method make (line 650) | def make(self, target: str, stdin=None, ensure=True) -> int: method sync_config (line 677) | def sync_config(self): method clean (line 687) | def clean(self): method configure (line 691) | def configure(self): method build (line 712) | def build(self, try_disable_opt: bool = False) -> float: FILE: src/systrack/location.py function addr2line (line 14) | def addr2line(elf: Path, addrs: Iterable[int]) -> Iterator[Tuple[Optiona... function smart_addr2line (line 25) | def smart_addr2line(elf: Path, addrs: Iterable[int], srcdir: Path = None... function grep_file (line 49) | def grep_file(root: Path, exp: re.Pattern, file: Path) -> Iterator[str]: function grep_recursive (line 58) | def grep_recursive(root: Path, exp: re.Pattern, exclude: Set[str], function grep_kernel_sources (line 72) | def grep_kernel_sources(kdir: Path, arch: Arch, syscalls: List[Syscall])... function good_definition (line 145) | def good_definition(arch: Arch, definition: str, syscall_name: str) -> b... function good_location (line 166) | def good_location(file: Path, line: int, arch: Arch, sc: Syscall) -> bool: function adjust_line (line 176) | def adjust_line(file: Path, line: int, sc: Syscall) -> int: function extract_syscall_locations (line 237) | def extract_syscall_locations(syscalls: List[Syscall], vmlinux: ELF, arc... FILE: src/systrack/log.py function log_setup (line 12) | def log_setup(quietness: int, verbosity: int, colors: bool = True): function log_verbosity (line 60) | def log_verbosity() -> bool: function eprint (line 65) | def eprint(*a, **kwa): FILE: src/systrack/output.py class SyscallJSONEncoder (line 14) | class SyscallJSONEncoder(JSONEncoder): method default (line 15) | def default(self, o): function output_syscalls_text (line 30) | def output_syscalls_text(syscalls: Iterable[Syscall], spacing: int = 2): function output_syscalls_json (line 76) | def output_syscalls_json(kernel: Kernel): function output_syscalls_html (line 102) | def output_syscalls_html(kernel: Kernel): function output_syscalls (line 129) | def output_syscalls(kernel: Kernel, fmt: str): FILE: src/systrack/signature.py function expand_macros (line 12) | def expand_macros(sig: Iterable[str], big_endian: bool) -> Iterator[str]: function parse_signature (line 28) | def parse_signature(sig: str, big_endian: bool) -> Tuple[str, ...]: function syscall_signature_from_source (line 41) | def syscall_signature_from_source(file: Path, line: int, big_endian: boo... function extract_syscall_signatures (line 99) | def extract_syscall_signatures(syscalls: List[Syscall], vmlinux: ELF, ha... FILE: src/systrack/syscall.py class Syscall (line 7) | class Syscall: method __init__ (line 18) | def __init__(self, index: int, number: int, name: str, origname: str, method __repr__ (line 34) | def __repr__(s): function common_syscall_symbol_prefixes (line 43) | def common_syscall_symbol_prefixes(names: List[str], threshold: int) -> ... FILE: src/systrack/templates/syscall_table.js function sortTable (line 3) | function sortTable(e) { function highlightRow (line 36) | function highlightRow(e) { FILE: src/systrack/utils.py class VersionedDict (line 18) | class VersionedDict: method __init__ (line 26) | def __init__(self, iterable: Optional[Iterable[Tuple[Hashable,Hashable... method __getitem__ (line 41) | def __getitem__(self, version: Hashable) -> dict: method _getversion (line 48) | def _getversion(self, version: Hashable) -> dict: method add (line 57) | def add(self, vstart: Hashable, vend: Hashable, key: Hashable, value: ... class VersionedList (line 69) | class VersionedList: method __init__ (line 76) | def __init__(self, iterable: Optional[Iterable[Tuple[Hashable,Hashable... method __getitem__ (line 91) | def __getitem__(self, version: Hashable) -> list: method _getversion (line 98) | def _getversion(self, version: Hashable) -> list: method add (line 107) | def add(self, vstart: Hashable, vend: Hashable, values: Iterable[Any]): function maybe_rel (line 119) | def maybe_rel(path: Path, root: Path) -> Path: function anyprefix (line 125) | def anyprefix(s: str, *pxs: str) -> bool: function anysuffix (line 130) | def anysuffix(s: str, *sxs: str) -> bool: function noprefix (line 135) | def noprefix(s: str, *pxs: str) -> str: function nosuffix (line 145) | def nosuffix(s: str, *sxs: str) -> str: function do_popen (line 155) | def do_popen(cmd: Union[AnyStr,Iterable[AnyStr]], cwd: Union[AnyStr,Path... function command_argv_to_string (line 175) | def command_argv_to_string(cmd: Union[AnyStrOrPath,Iterable[AnyStrOrPath... function run_command (line 197) | def run_command(cmd: Union[AnyStrOrPath,Iterable[AnyStrOrPath]], function ensure_command (line 220) | def ensure_command(cmd: Union[AnyStrOrPath,Iterable[AnyStrOrPath]], function command_available (line 261) | def command_available(name: AnyStr) -> bool: function gcc_version (line 267) | def gcc_version(gcc_cmd: AnyStr) -> str: function git_checkout (line 273) | def git_checkout(repo_dir: Union[AnyStr,Path], ref: AnyStr): function format_duration (line 279) | def format_duration(s: float) -> str: FILE: tests/test_arch_sanity.py function test_arch_subclass_method_overrides (line 6) | def test_arch_subclass_method_overrides(): FILE: tests/test_mips.py function test_dummy_syscall_64 (line 6) | def test_dummy_syscall_64(): FILE: tests/test_powerpc.py function test_dummy_syscall_simple (line 6) | def test_dummy_syscall_simple(): function test_dummy_syscall_64 (line 33) | def test_dummy_syscall_64(): function test_dummy_syscall_32 (line 53) | def test_dummy_syscall_32(): function test_esoteric_fast_endian_switch_simple (line 68) | def test_esoteric_fast_endian_switch_simple(): function test_esoteric_fast_endian_switch_real (line 99) | def test_esoteric_fast_endian_switch_real(): FILE: tests/test_x86.py function test_x86_no_table_extract_syscall_vaddrs (line 7) | def test_x86_no_table_extract_syscall_vaddrs(): FILE: tests/utils.py class MockELF (line 9) | class MockELF: method __init__ (line 13) | def __init__(self, big_endian: bool, symbols_with_code: Dict[Symbol,by... method next_symbol (line 21) | def next_symbol(self, sym: Symbol) -> Union[Symbol,None]: method vaddr_read (line 24) | def vaddr_read(self, vaddr: int, size: int) -> bytes: method read_symbol (line 32) | def read_symbol(self, sym: Union[str,Symbol]) -> bytes: function arch_is_dummy_syscall (line 38) | def arch_is_dummy_syscall(arch: Arch, big_endian: bool, code: bytes) ->... function make_test_elf (line 44) | def make_test_elf(name: str) -> Path: