You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extern variables are often defined in different translation units, and simply go unextracted. A promising solution is ASTImporter. Another more general solution is moving some processing to go.
Syscall specific:
Handle 32bit system calls passing 64bit arguments.
For example, sync_file_range2 is translated to arm_sync_file_range and in linux/386, the pointer size is 32 bits, which means system call arguments cannot be longer (No int64). So while argument offset should have the type int64, it is currently given intptr to avoid the following error: compilation of linux/386 target failed: sys/linux/auto.txt:201:46: arm_sync_file_range$auto arg offset is larger than pointer size
Infer if a system call returns a resource.
Netlink specific:
Netlink is converting to .yaml files (See Documentation/netlink/specs in kernel source code). The .yaml files are used to generate .c files during build, but the policies are defined as extern and not handled properly. 3.ii.a should improve the situation. Are any semantics lost in translation? Should we start focusing on yaml instead?
Use more nla_policy fields to specify types and limits.
Nested, Nested Array, and Bitfield 32 Netlink types.
Handle pointers represented as u64 in structs. e.g.
Add a test that ensures that automatic_helper attributes mark sufficient number of syscalls (enable all automatic + automatic_helper, check that none get transitively disabled; ensure that it will check precise resource types, e.g. if auto syscalls need fd, we have a syscall that returns fd, not only fd_namespace)
For example,
sync_file_range2
is translated toarm_sync_file_range
and inlinux/386
, the pointer size is 32 bits, which means system call arguments cannot be longer (Noint64
). So while argumentoffset
should have the typeint64
, it is currently givenintptr
to avoid the following error:compilation of linux/386 target failed:
sys/linux/auto.txt:201:46: arm_sync_file_range$auto arg offset is larger than pointer size
The text was updated successfully, but these errors were encountered: