A list of all Linux system calls.
- Provides of all syscalls for multiple architectures.
- Provides methods for invoking raw syscalls.
- Provides an
Errno
type for Rustic error handling.
By default, std
support is enabled. If you wish to compile in a no_std
environment, use:
syscalls = { version = "0.3", default-features = false }
Various types can be serialized with Serde. This can be enabled with:
syscalls = { version = "0.3", features = ["with-serde"] }
The Enum column means that a Sysno
enum is implemented for this
architecture.
The Invoke column means that syscalls can be invoked for this architecture.
Arch | Enum | Invoke |
---|---|---|
arm |
✅ | ✅ |
aarch64 |
❌ | ❌ |
mips |
✅ | ✅ |
mips64 |
✅ | ✅ |
powerpc |
✅ | ✅ |
powerpc64 |
✅ | ✅ |
s390x |
✅ | ✅ |
sparc |
✅ | ❌ |
sparc64 |
✅ | ❌ |
x86 |
✅ | ✅ |
x86_64 |
✅ | ✅ |
Updates are pulled from the .tbl
files in the Linux source tree.
- Change the Linux version in
syscalls-gen/src/main.rs
to the latest version. Using a release candidate version is OK. - Run
cd syscalls-gen && cargo run
. This will regenerate the syscall tables insrc/arch/
.