import argparse import logging import os import re
from gensyscalls import SupportedArchitectures, SysCallsTxtParser from genseccomp import parse_syscall_NRs
def load_syscall_names_from_file(file_path, architecture):
parser = SysCallsTxtParser()
parser.parse_open_file(open(file_path))
arch_map = {} for syscall in parser.syscalls: if syscall.get(architecture):
arch_map[syscall["func"]] = syscall["name"]
return arch_map
def gen_syscall_nrs(out_file, base_syscall_file, syscall_NRs): for arch in syscall_NRs.keys():
base_names = load_syscall_names_from_file(base_syscall_file, arch)
for func, syscall in base_names.items():
out_file.write("#define __" + arch + "_" + func + " " +
str(syscall_NRs[arch][syscall]) + "\n")
def main():
parser = argparse.ArgumentParser(
description= "Generates a mapping of bionic functions to system call numbers per architecture."
)
parser.add_argument("--verbose", "-v", help="Enables verbose logging.")
parser.add_argument("--out-dir",
help="The output directory for the output files")
parser.add_argument( "base_file",
metavar="base-file",
type=str,
help="The path of the base syscall list (SYSCALLS.TXT).")
parser.add_argument( "files",
metavar="FILE",
type=str,
nargs="+",
help=("A syscall name-number mapping file for an architecture.\n"))
args = parser.parse_args()
if args.verbose:
logging.basicConfig(level=logging.DEBUG) else:
logging.basicConfig(level=logging.INFO)
syscall_NRs = {} for filename in args.files:
m = re.search(r"libseccomp_gen_syscall_nrs_([^/]+)", filename)
syscall_NRs[m.group(1)] = parse_syscall_NRs(filename)
output_path = os.path.join(args.out_dir, "func_to_syscall_nrs.h") with open(output_path, "w") as output_file:
gen_syscall_nrs(out_file=output_file,
syscall_NRs=syscall_NRs,
base_syscall_file=args.base_file)
if __name__ == "__main__":
main()
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.