Lines Matching +full:a +full:- +full:za +full:- +full:z0 +full:- +full:9 +full:_

5 # SPDX-License-Identifier: Apache-2.0
13 - A file containing weak aliases of any potentially unimplemented system calls,
17 - A header file defining the system call type IDs, as well as function
20 - A directory containing header files. Each header corresponds to a header
42 # userspace_handlers.c are present in the kernel .a library after
46 # order runs afoul of a comment in CMakeLists.txt that the order is
48 # just disable the fallback mechanism as a simple workaround.
53 table_template = """/* auto-generated by gen_syscalls.py, don't edit */
57 /* Weak handler functions that get replaced by the real ones unless a system
67 list_template = """/* auto-generated by gen_syscalls.py, don't edit */
84 syscall_template = """/* auto-generated by gen_syscalls.py, don't edit */
125 # defines a macro wrapper which supersedes the syscall when used
144 # defines a macro wrapper which supersedes the syscall when used
146 # enable/disable of syscall tracing. Used for non-returning (void) functions
161 llext_weakdefs_template = """/* auto-generated by gen_syscalls.py, don't edit */
167 * This symbol is placed at address 0 by llext-sections.ld. Its value and
181 llext_exports_template = """/* auto-generated by gen_syscalls.py, don't edit */
196 typename_regex = re.compile(r'(.*?)([A-Za-z0-9_]+)$')
316 argnames = ", ".join([f"{argname}" for _, argname in args])
334 # Returns an expression for the specified (zero-indexed!) marshalled
335 # parameter to a syscall, with handling for a final "more" parameter.
340 return "(((uintptr_t *)more)[%d])" % (mrsh_num - 5)
347 for (argtype, _) in args:
352 # Final argument for a 64 bit return value?
365 mrsh += "\t" + "arch_current_thread()->syscall_frame = ssf;\n"
372 + str(nmrsh - 5) + " * sizeof(uintptr_t)));\n")
391 mrsh += "\t" + "arch_current_thread()->syscall_frame = NULL;\n"
397 ptr = "((uint64_t *)%s)" % mrsh_rval(nmrsh - 1, nmrsh)
400 mrsh += "\t" + "arch_current_thread()->syscall_frame = NULL;\n"
403 mrsh += "\t" + "arch_current_thread()->syscall_frame = NULL;\n"
417 args = [typename_split(a) for a in args.split(",")]
441 parser.add_argument("-i", "--json-file", required=True,
443 parser.add_argument("-d", "--syscall-dispatch", required=True,
445 parser.add_argument("-l", "--syscall-list", required=True,
447 parser.add_argument("-o", "--base-output", required=True,
449 parser.add_argument("-s", "--split-type", action="append",
450 help="A long type that must be split/marshalled on 32-bit systems")
451 parser.add_argument("-x", "--long-registers", action="store_true",
452 help="Indicates we are on system with 64-bit registers")
453 parser.add_argument("--gen-mrsh-files", action="store_true",
455 parser.add_argument("-e", "--syscall-exports-llext",
457 parser.add_argument("-w", "--syscall-weakdefs-llext",
459 parser.add_argument("-u", "--userspace-only", action="store_true",
513 # The "noweak" ones just get a regular declaration
563 ig = re.sub("[^a-zA-Z0-9]", "_", "Z_INCLUDE_SYSCALLS_" + fn).upper()
579 fp.write("/* auto-generated by gen_syscalls.py, don't edit */\n\n")