- May 29, 2020
-
-
Yuki Okushi authored
-
- May 21, 2020
-
-
Yuki Okushi authored
-
- May 07, 2020
-
-
Bryant Mairs authored
Reorganized some constants as well so they're grouped a bit better.
-
- Apr 14, 2020
-
-
Yuki Okushi authored
-
- Apr 13, 2020
-
-
Alexander Batischev authored
Headers I used: Oh, for reference, here are the headers I used while working on this: - musl: https://git.musl-libc.org/cgit/musl/tree/include/regex.h?id=8327ae0cb23b799bc55a45e0d4bd95f5a2b1cdf1 - glibc: https://sourceware.org/git/?p=glibc.git;a=blob;f=posix/regex.h;h=87cce7f5cb8cc3b678467329b479bd511e250e61;hb=HEAD - macOS: https://opensource.apple.com/source/Libc/Libc-997.90.3/include/regex.h.auto.html - FreeBSD: https://github.com/freebsd/freebsd/blob/8103b0ddb041617b7cd161528f0ff93ff32970a2/include/regex.h - NetBSD: https://github.com/NetBSD/src/blob/61c8f6fbb7e38b20e862d5cb3ed2203312963283/include/regex.h
-
- Apr 09, 2020
-
-
Guillume DIDIER authored
This adds the defines from include/uapi/asm-generic/hugetlb_encode.h and the corresponding defines in include/uapi/linux/mman.h to linux_like/linux/gnu/mod.rs and the equivalent for musl in linux_like/linux/musl/mod.rs Solves #1700 Removes two defines from musl/b32/hexagon.rs that are now provided two mudules "up"
-
- Apr 04, 2020
-
-
Daniel McCarney authored
The `fanotify` API[0] is a linux-specific API for notification and interception of filesystem events. In some ways it is similar to `inotify`, but with different advantages/tradeoffs. It is particularly well suited to full filesystem/mount monitoring (vs per directory) and for allowing/denying access to files (`inotify` lacks this capability). The `fanotify` API has been updated several times since it was enabled in Linux 2.6.37. Presently I've only included support for the original `fanotify` features, and the `FAN_MARK_FILESYSTEM` addition made in Linux 4.20. There are subsequent updates in 5.0 and 5.1 not covered in this initial commit. This commit adds the relevant constants and types from `uapi/linux/fanotify.h`[1] and two new functions (`fanotify_init`[2] and `fanotify_wrap`[3]) to `src/unix/linux_like/linux/mod.rs`. While I believe this API is also present on Android I have presently limited my attention to Linux. Although this commit focuses on Linux 4.20.x's `fanotify` API/constants I have skipped adding constants for `FAN_ALL_CLASS_BITS`, `FAN_ALL_INIT_FLAGS`, `FAN_ALL_MARK_FLAGS`, `FAN_ALL_EVENTS`, `FAN_ALL_PERM_EVENTS` and `FAN_ALL_OUTGOING_EVENTS` even though they are present in this kernel version's headers. These defines were deprecated[4] in later releases with instructions to not use them in new programs or extend them with new values. It would be a shame for new Rust programs to use deprecated #defines! [0]: http://man7.org/linux/man-pages/man7/fanotify.7.html [1]: https://github.com/torvalds/linux/blob/d54f4fba889b205e9cd8239182ca5d27d0ac3bc2/include/uapi/linux/fanotify.h [2]: http://man7.org/linux/man-pages/man2/fanotify_init.2.html [3]: http://man7.org/linux/man-pages/man2/fanotify_mark.2.html [4]: https://github.com/torvalds/linux/commit/23c9deeb3285d34fd243abb3d6b9f07db60c3cf4#diff-4c9ca62be6bf38cc08f7ea9daf16e379
-
- Mar 08, 2020
-
-
Yuki Okushi authored
-
- Feb 29, 2020
-
-
Yuki Okushi authored
-
zonyitoo authored
fix #1633
-
- Feb 19, 2020
-
-
Vickenty Fesunov authored
memmem is a non-standard extension, first added in GNU libc and later ported to other systems. Support for it is non-uniform, thus it was only added to platforms that seem to support it.
-
- Nov 21, 2019
-
-
Elichai Turkel authored
-
- Sep 12, 2019
-
-
gnzlbg authored
-
- Sep 02, 2019
-
-
Luke Petre authored
-
Luke Petre authored
-
- Aug 17, 2019
-
-
Wang Xuerui authored
-
- Jul 27, 2019
-
-
Brian Cain authored
-
- Jul 09, 2019
-
-
Douman authored
Exposes value for most unix like platforms
-
- Jun 03, 2019
-
-
gnzlbg authored
-
- May 31, 2019
-
-
gnzlbg authored
-
- May 28, 2019
-
-
gnzlbg authored
-
- May 27, 2019
- May 22, 2019
-
-
gnzlbg authored
The second argument of `gettimeofday` was a `*mut c_void` on all targets, but that type is incorrect in the following targets, where it should be a `*mut timezone` instead: On these other targets it appears that the signature of gettimeofday was incorrect (it takes a time-zone pointer instead of a void pointer): linux+gnu: http://man7.org/linux/man-pages/man2/gettimeofday.2.html freebsd: https://www.freebsd.org/cgi/man.cgi?query=gettimeofday&apropos=0&sektion=2&manpath=FreeBSD+11.2-stable&arch=default&format=html openbsd: https://man.openbsd.org/gettimeofday.2 android: https://github.com/ricardoquesada/android-ndk/blob/master/usr/include/sys/time.h dragonfly: https://www.dragonflybsd.org/cgi/web-man?command=gettimeofday§ion=2 This commit corrects the type on these targets, which is a breaking change. Due to how this API is commonly used (e.g. passing `ptr::null_mut` to the second argument), breakage should be minimal. Users wanting to support both versions can just write `ptr as *mut _` instead. Closes #1338.
-
- May 21, 2019
-
-
Samuel Ortiz authored
They are defined since Linux 3.1 but not in musl yet. Signed-off-by:
Samuel Ortiz <sameo@linux.intel.com>
-
- Feb 22, 2019
-
-
Bryant Mairs authored
-
- Feb 13, 2019
-
-
gnzlbg authored
-
- Feb 07, 2019
-
-
gnzlbg authored
This PR fixes the build on all platforms and all Rust version down to the minimum Rust version supported by libc: Rust 1.13.0. The `build.rs` is extended with logic to detect the newer Rust features used by `libc` since Rust 1.13.0: * Rust 1.19.0: `untagged_unions`. APIs using untagged unions are gated on `cfg(libc_unions)` and not available on older Rust versions. * Rust 1.25.0: `repr(align)`. Because `repr(align)` cannot be parsed by older Rust versions, all uses of `repr(align)` are split into `align.rs` and `no_align.rs` modules, which are gated on the `cfg(libc_align)` at the top level. These modules sometimes contain macros that are expanded at the top level to avoid privacy issues (`pub(crate)` is not available in older Rust versions). Closes #1242 . * Rust : `const` `mem::size_of`. These uses are worked around with hardcoded constants on older Rust versions. Also, `repr(packed)` structs cannot automatically `derive()` some traits like `Debug`. These have been moved into `s_no_extra_traits!` and the lint of missing `Debug` implementations on public items is silenced for these. We can manually implement the `extra_traits` for these in a follow up PR. This is tracked in #1243. Also, `extra_traits` does not enable `align` manually anymore. Since `f64::to_bits` is not available in older Rust versions, its usage has been replaced with a `transmute` to an `u64` which is what that method does under the hood. Closes #1232 .
-
- Feb 03, 2019
-
-
Bryant Mairs authored
-
- Feb 02, 2019
-
-
Bryant Mairs authored
-
Bryant Mairs authored
-
- Nov 26, 2018
-
-
Markus Wanner authored
-
- Nov 01, 2018
-
-
Samuel Holland authored
These are used by the flock wrapper in rustc_data_structures. The constants were already present in x86_64-linux-gnu and BSD (since 4928bd98).
-
- Jul 05, 2018
-
-
Marek Benc authored
-
- Jun 18, 2018
-
-
Mike Sullivan authored
amend to add style changes amend to add style changes
-
- Apr 11, 2018
-
-
Mike Hommey authored
-
- Dec 08, 2017
-
-
Bryant Mairs authored
-
- Oct 31, 2017
-
-
Marco A L Barbosa authored
-
- Oct 27, 2017
-
-
Marco A L Barbosa authored
-
- Oct 17, 2017
-
-
Roberto Oliveira authored
powerpc64 was missing in musl/mod.rs and making build fail as it was not able to find types, like c_char.
-