Skip to content
Snippets Groups Projects
  1. Sep 13, 2020
    • Daniil Bondarev's avatar
      Use safe_f! consistently across platforms · 773f5562
      Daniil Bondarev authored
      The pr #1870 introduced safe_f! macro, which made some functions like
      WIFEXITED and WEXITSTATUS const and safe on linux_like platform only,
      which causes inconsistency when trying to use those functions in crates
      compiled across multiple platforms, as using unsafe on those functions
      will generate unused_unsafe warning on linux platforms and lack of
      unsafe block will fail compilation on non-linux platforms.
      
      To avoid the inconsistency, this commit applies the same macro for all
      the same functions on other platforms too.
      773f5562
  2. Jul 28, 2020
  3. Jul 27, 2020
    • Amanda Tait's avatar
      Add CMSG_* "macro" support to Fuchsia · 59749267
      Amanda Tait authored
      This change defines and implements functions for the Fuchsia platform
      corresponding to the C library CMSG_* macros, used for processing socket
      control messages sent or received using the recv_msg(2)/send_msg(2)
      syscalls.
      59749267
  4. Mar 14, 2020
    • Thomas Hurst's avatar
      Add missing AT_ constants · 5d8dccc7
      Thomas Hurst authored
      Add AT_EACCESS to Linux, Solaris, and Fuchsia.
      
      Add AT_SYMLINK_FOLLOW, AT_REMOVEDIR, and  _AT_TRIGGER to Solaris.
      5d8dccc7
  5. Mar 08, 2020
  6. Feb 29, 2020
  7. Feb 21, 2020
  8. Feb 12, 2020
  9. Sep 20, 2019
  10. Sep 16, 2019
  11. Sep 12, 2019
  12. Aug 15, 2019
    • Joe Richey's avatar
      Remove invalid Fuchsia functions · 0a7bbe90
      Joe Richey authored
      These fuctions are not present in Fuchsia's libc, so they cannot be
      used in a program today. If Fuchsia ever decides to add these functions
      to their libc, they can be added back as necessary.
      0a7bbe90
  13. Jul 05, 2019
  14. Jun 13, 2019
    • Joe Richey's avatar
      Remove Linux constants from Fushia · 3b27cb3a
      Joe Richey authored
      PR #849 just moved all of the Linux structures into `src/fuchsia`.
      While this is good for the most part, we really don't want the `SYS_*`
      constants exported on Fushia, as these are not Fuchsia's syscalls.
      
      This also removes Linux-specific `GRND_*` constants.
      3b27cb3a
  15. Jun 10, 2019
    • Bryant Mairs's avatar
      Switch to manual trait impls for sigevent · 7c265919
      Bryant Mairs authored
      sigevent structs on most platforms have padding or unused fields. Rather
      than display those in the Debug impl by deriving it, manually implement
      all extra_traits instead ignoring those fields.
      7c265919
  16. May 29, 2019
  17. May 27, 2019
    • Bryant Mairs's avatar
      Ignore padding for `sockaddr_nl` struct · 0b345018
      Bryant Mairs authored
      `nl_pad` field does not contain any actual data, so using it for
      comparison or hashing doesn't make sense. Instead manually implement
      extra traits ignoring this field.
      0b345018
    • Bryant Mairs's avatar
      Ignore padding for mq_attr · 7d235af8
      Bryant Mairs authored
      The `pad` or `__reserved`  fields are not always 0 on some platforms,
      so when used in the `PartialEq` implementation being used, fails some
      comparisons. This commit manually implements the extra traits to
      correct this behavior.
      7d235af8
  18. May 24, 2019
  19. Apr 29, 2019
  20. Feb 23, 2019
  21. Feb 13, 2019
  22. Feb 07, 2019
    • gnzlbg's avatar
      Fix build on all platforms · a17a91cd
      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 .
      a17a91cd
  23. Feb 03, 2019
  24. Dec 05, 2018
  25. Nov 21, 2018
  26. Nov 07, 2018
    • Stephen Barber's avatar
      Add support for SIGSYS in signalfd · 60ab3041
      Stephen Barber authored
      Linux 4.18 added support for SIGSYS info in signalfd. Add the new
      fields to signalfd_siginfo.
      
      While the kernel has support for these new fields now, no libc has
      shipped a release with the new signalfd fields.
      60ab3041
  27. Aug 24, 2018
  28. Aug 22, 2018
  29. Jul 29, 2018
  30. May 10, 2018
  31. Feb 28, 2018
  32. Feb 25, 2018
  33. Feb 07, 2018
  34. Nov 21, 2017
Loading