19 releases

new 0.4.2 Sep 20, 2021
0.3.5 Jul 29, 2021
0.3.3 Mar 18, 2021
0.3.2 Jun 22, 2020
0.1.4 Oct 1, 2019

#67 in Unix APIs

Download history 3131/week @ 2021-06-03 3201/week @ 2021-06-10 4526/week @ 2021-06-17 3689/week @ 2021-06-24 3350/week @ 2021-07-01 3516/week @ 2021-07-08 4543/week @ 2021-07-15 4076/week @ 2021-07-22 3372/week @ 2021-07-29 2984/week @ 2021-08-05 2776/week @ 2021-08-12 3032/week @ 2021-08-19 3687/week @ 2021-08-26 2717/week @ 2021-09-02 2770/week @ 2021-09-09 3639/week @ 2021-09-16

14,479 downloads per month

BSD-2-Clause

180KB
6K SLoC

Rust 5K SLoC // 0.0% comments C 767 SLoC // 0.2% comments

syscalls

Crates.io docs.rs License

A list of all Linux system calls.

Features

  • Provides of all syscalls for multiple architectures.
  • Provides methods for invoking raw syscalls.
  • Provides an Errno type for Rustic error handling.

Feature Flags

std

By default, std support is enabled. If you wish to compile in a no_std environment, use:

syscalls = { version = "0.3", default-features = false }

with-serde

Various types can be serialized with Serde. This can be enabled with:

syscalls = { version = "0.3", features = ["with-serde"] }

Architecture Support

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

Updating the syscall list

Updates are pulled from the .tbl files in the Linux source tree.

  1. Change the Linux version in syscalls-gen/src/main.rs to the latest version. Using a release candidate version is OK.
  2. Run cd syscalls-gen && cargo run. This will regenerate the syscall tables in src/arch/.

Dependencies

~35–380KB