diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /third_party/rust/mach/README.md | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/mach/README.md')
-rw-r--r-- | third_party/rust/mach/README.md | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/third_party/rust/mach/README.md b/third_party/rust/mach/README.md new file mode 100644 index 0000000000..cb5f93b756 --- /dev/null +++ b/third_party/rust/mach/README.md @@ -0,0 +1,55 @@ +[![Build Status][travis_ci_badge]][travis_ci] [![Latest Version]][crates.io] [![docs]][docs.rs] + +A Rust interface to the **user-space** API of the Mach 3.0 kernel exposed in +`/usr/include/mach` that underlies macOS and is linked via `libSystem` (and +`libsystem_kernel`). + +This library does not expose the **kernel-space** API of the Mach 3.0 kernel +exposed in +`SDK/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/mach`. + +That is, if you are writing a kernel-resident device drivers or some other +kernel extensions you have to use something else. The user-space kernel API is +often API-incompatible with the kernel space one, and even in the cases where +they match, they are sometimes ABI incompatible such that using this library +would have **undefined behavior**. + +# Usage + +Add the following to your `Cargo.toml` to conditionally include mach on those +platforms that support it. + +```toml +[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.mach] +version = "0.3" +``` + +The following crate features are available: + +* **deprecated** (disabled by default): exposes deprecated APIs that have been + removed from the latest versions of the MacOS SDKs. The behavior of using + these APIs on MacOS versions that do not support them is undefined (hopefully + a linker error). + +# Platform support + +The following table describes the current CI set-up: + +| Target | Min. Rust | XCode | build | ctest | run | +|-----------------------|-----------|---------------|-------|-------|-----| +| `x86_64-apple-darwin` | 1.33.0 | 6.4 - 10.0 | ✓ | ✓ | ✓ | +| `i686-apple-darwin` | 1.33.0 | 6.4 - 10.0 | ✓ | ✓ | ✓ | +| `i386-apple-ios` | 1.33.0 | 6.4 - 9.4 [0] | ✓ | - | - | +| `x86_64-apple-ios` | 1.33.0 | 6.4 - 10.0 | ✓ | - | - | +| `armv7-apple-ios` | nightly | 6.4 - 10.0 | ✓ | - | - | +| `aarch64-apple-ios` | nightly | 6.4 - 10.0 | ✓ | - | - | + +[0] `i386-apple-ios` is deprecated in XCode 10.0. + +[travis_ci]: https://travis-ci.org/fitzgen/mach +[travis_ci_badge]: https://travis-ci.org/fitzgen/mach.png?branch=master +[crates.io]: https://crates.io/crates/mach +[Latest Version]: https://img.shields.io/crates/v/mach.svg +[docs]: https://docs.rs/mach/badge.svg +[docs.rs]: https://docs.rs/mach/ + |