#linux #syscalls #android #no-std

no-std linux-syscalls

一个用于轻松调用Linux系统调用的库

11个不稳定版本 (3个破坏性更新)

0.4.0 2024年2月3日
0.3.2 2023年7月30日
0.2.1 2023年7月17日
0.1.4 2023年7月7日
0.1.2 2023年6月26日

#355 in Unix API

Download history 7/week @ 2024-04-16

90 每月下载量
用于 linux-stat

MIT 许可

275KB
9K SLoC

Rust 7.5K SLoC // 0.0% comments Shell 846 SLoC // 0.0% comments GNU Style Assembly 828 SLoC // 0.1% comments

linux-syscalls

GitHub Workflow Status (with branch) Crates.io docs.rs Crates.io

一个用于轻松处理Linux系统调用的库。

One does not simply make a syscall

作为副作用,此库提供了其他实用工具。

uname

此库在初始化时调用 uname 系统调用并缓存其结果。

内核版本

在初始化时从 uname 解析内核版本(如果无效则引发恐慌)并提供一个宏 kversion! 来处理它。

辅助向量

在初始化时检测辅助向量(如果存在)并提供一个Rust接口来查询其值。对于硬件/内核功能(如ppc64中的 scv)很有用。

vDSO

在初始化时检测vDSO(如果存在)并解析它,并将其结果存储起来。对于任何平台上的vsyscalls和x86机器上的 __kernel_vsyscall(用于更快的系统调用)很有用。

功能标志

  • std: 启用std支持。
  • bare: 不要尝试自动初始化库。
  • libc-compat: 将此功能传递给 linux-errnos

#![no_std]

通过禁用默认的 std 功能启用 #![no_std] 支持功能。

[dependencies]
linux-syscalls = { version = "*", default-features = false }

支持的平台

第1级

  • aarch64-unknown-linux-gnu
  • i686-unknown-linux-gnu
  • x86_64-unknown-linux-gnu

第2级

  • aarch64-unknown-linux-musl
  • arm-unknown-linux-gnueabi
  • arm-unknown-linux-gnueabihf
  • arm-unknown-linux-musleabi
  • arm-unknown-linux-musleabihf
  • armv5te-unknown-linux-gnueabi
  • armv5te-unknown-linux-musleabi
  • armv7-unknown-linux-gnueabi
  • armv7-unknown-linux-gnueabihf
  • armv7-unknown-linux-musleabi
  • armv7-unknown-linux-musleabihf
  • i586-unknown-linux-gnu
  • i586-unknown-linux-musl
  • i686-unknown-linux-musl
  • loongarch64-unknown-linux-gnu
  • mips-unknown-linux-gnu (未经测试)
  • mips-unknown-linux-musl (未经测试)
  • mips64-unknown-linux-gnuabi64 (未经测试)
  • mips64-unknown-linux-muslabi64 (未经测试)
  • mips64el-unknown-linux-gnuabi64(未测试)
  • mips64el-unknown-linux-muslabi64(未测试)
  • mipsel-unknown-linux-gnu(未测试)
  • mipsel-unknown-linux-musl(未测试)
  • powerpc-unknown-linux-gnu
  • powerpc64-unknown-linux-gnu
  • powerpc64le-unknown-linux-gnu
  • riscv64gc-unknown-linux-gnu
  • s390x-unknown-linux-gnu
  • thumbv7neon-unknown-linux-gnueabihf
  • x86_64-unknown-linux-musl

MSRV

1.65.0

依赖项

~1.5MB
~17K SLoC