diff options
author | GuillaumeDIDIER <guillaume.didier95@hotmail.fr> | 2020-04-12 10:06:29 +0200 |
---|---|---|
committer | Guillaume DIDIER <guillaume.didier@polytechnique.edu> | 2020-04-21 09:25:25 +0200 |
commit | d7a725d88bf3704cd26bc779274265b310ac4b00 (patch) | |
tree | 5b258733fdaaea6519581110eec02c6ee5b2b8ab | |
parent | b5ee61037886bcbaea6078e2bec9b6709549926a (diff) | |
download | nix-d7a725d88bf3704cd26bc779274265b310ac4b00.zip |
Add the MAP_HUGE_<SIZE> flags for linux.
Closes #1194
Use git libc for development
(Remember to reset this to released version for the next nix release, once libc has released >=0.2.69)
-rw-r--r-- | CHANGELOG.md | 4 | ||||
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | src/sys/mman.rs | 37 |
3 files changed, 41 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d565a9a..0ec436dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] - ReleaseDate ### Added +- Added support on linux systems for `MAP_HUGE_`_`SIZE`_ family of flags. + (#[1211](https://github.com/nix-rust/nix/pull/1211)) - Added support for `F_OFD_*` `fcntl` commands on Linux and Android. (#[1195](https://github.com/nix-rust/nix/pull/1195)) - Added `env::clearenv()`: calls `libc::clearenv` on platforms @@ -118,7 +120,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). // old code `readlink(&path, &mut buf)` can be replaced with the following let _: OsString = readlink(&path); - + // old code `readlinkat(dirfd, &path, &mut buf)` can be replaced with the following let _: OsString = readlinkat(dirfd, &path); ``` @@ -16,7 +16,7 @@ exclude = [ ] [dependencies] -libc = { version = "0.2.68", features = [ "extra_traits" ] } +libc = { git = "https://github.com/rust-lang/libc/", features = [ "extra_traits" ] } bitflags = "1.1" cfg-if = "0.1.10" void = "1.0.2" diff --git a/src/sys/mman.rs b/src/sys/mman.rs index 4e250501..dfa46264 100644 --- a/src/sys/mman.rs +++ b/src/sys/mman.rs @@ -77,6 +77,43 @@ libc_bitflags!{ /// Allocate the mapping using "huge pages." #[cfg(any(target_os = "android", target_os = "linux"))] MAP_HUGETLB; + /// Make use of 64KB huge page (must be supported by the system) + #[cfg(target_os = "linux")] + MAP_HUGE_64KB; + /// Make use of 512KB huge page (must be supported by the system) + #[cfg(target_os = "linux")] + MAP_HUGE_512KB; + /// Make use of 1MB huge page (must be supported by the system) + #[cfg(target_os = "linux")] + MAP_HUGE_1MB; + /// Make use of 2MB huge page (must be supported by the system) + #[cfg(target_os = "linux")] + MAP_HUGE_2MB; + /// Make use of 8MB huge page (must be supported by the system) + #[cfg(target_os = "linux")] + MAP_HUGE_8MB; + /// Make use of 16MB huge page (must be supported by the system) + #[cfg(target_os = "linux")] + MAP_HUGE_16MB; + /// Make use of 32MB huge page (must be supported by the system) + #[cfg(target_os = "linux")] + MAP_HUGE_32MB; + /// Make use of 256MB huge page (must be supported by the system) + #[cfg(target_os = "linux")] + MAP_HUGE_256MB; + /// Make use of 512MB huge page (must be supported by the system) + #[cfg(target_os = "linux")] + MAP_HUGE_512MB; + /// Make use of 1GB huge page (must be supported by the system) + #[cfg(target_os = "linux")] + MAP_HUGE_1GB; + /// Make use of 2GB huge page (must be supported by the system) + #[cfg(target_os = "linux")] + MAP_HUGE_2GB; + /// Make use of 16GB huge page (must be supported by the system) + #[cfg(target_os = "linux")] + MAP_HUGE_16GB; + /// Lock the mapped region into memory as with `mlock(2)`. #[cfg(target_os = "netbsd")] MAP_WIRED; |