# linux-errnos ![GitHub Workflow Status (with branch)](https://img.shields.io/github/actions/workflow/status/shurizzle/linux-errnos/unit-test.yml?branch=master&style=for-the-badge) [![Crates.io](https://img.shields.io/crates/v/linux-errnos?style=for-the-badge)](https://crates.io/crates/linux-errnos) [![docs.rs](https://img.shields.io/docsrs/linux-errnos?style=for-the-badge)](https://docs.rs/linux-errnos) ![Crates.io](https://img.shields.io/crates/l/linux-errnos?style=for-the-badge) Cross-arch enumeration of Linux error numbers that may vary across archs. If `target_arch` is supported a module's top-level `Errno` and `ErrnoIter` (if `iter` feature flag is present) are re-exported. ### Feature flags - `std`: enable std support (dealing with std::io::Error). - `iter`: enable `Errno::iter()` function. - `libc-compat`: enable `libc` compatibility (global errno). - `no_std_io-compat`: enable `no_std_io` crate compatibility. - `all`: enable all the architectures. #### Other flags There is a feature flag for each of the "linux/arch/*" directories indicating the architecture family name. For example there is a linux/arch/x86 that contains x86/x86_64/x32 implementations and that shares the same errnos. - `alpha` - `arc` - `arm` - `arm64` - `csky` - `hexagon` - `ia64` - `loongarch` - `m68k` - `microblaze` - `mips` - `nios2` - `openrisc` - `parisc` - `powerpc` - `riscv` - `s390` - `sh` - `sparc` - `um` - `x86` - `xtensa` There is a feature flag for each of the supported `target_arch` too: - `x86` - `x86_64` - `arm` - `aarch64` - `hexagon` - `s390x` - `powerpc` - `powerpc64` - `mips` - `mips64` - `m68k` - `riscv32` - `riscv64` - `sparc` - `sparc64` - `loongarch64` ### #![no_std] Enable `#![no_std]` support by disabling the default `std` feature: ```toml [dependencies] linux-errnos = { version = "*", default-features = false } ``` # Code generation All the code is generated by the an inner crate in the `errno-gen` directory except for the `src/macros.rs` file, so don't touch auto generated files please. ### MSRV 1.38.0