diff options
author | bors <bors@rust-lang.org> | 2022-09-09 13:47:17 +0000 |
---|---|---|
committer | bors <bors@rust-lang.org> | 2022-09-09 13:47:17 +0000 |
commit | 6eee580b51455131b10b780087025379a591ceb6 (patch) | |
tree | 289638e4531d6ef89f05c20b1a317f486037fa33 /src/unix/linux_like/linux/mod.rs | |
parent | fb16d18481076c35e3700e0ccd17eefdfb1ba3bf (diff) | |
parent | 5e6d9c4a92fd563f7e2e58a1e2889ccc4a87ff44 (diff) | |
download | rust-libc-6eee580b51455131b10b780087025379a591ceb6.tar.gz |
Auto merge of #2891 - asomers:makedev, r=JohnTitor
Add makedev for the BSDs
Also, make Linux's makedev function safe and const.
Diffstat (limited to 'src/unix/linux_like/linux/mod.rs')
-rw-r--r-- | src/unix/linux_like/linux/mod.rs | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 54ca083279..512d5f0ffb 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3570,17 +3570,6 @@ f! { minor as ::c_uint } - pub fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; - let mut dev = 0; - dev |= (major & 0x00000fff) << 8; - dev |= (major & 0xfffff000) << 32; - dev |= (minor & 0x000000ff) << 0; - dev |= (minor & 0xffffff00) << 12; - dev - } - pub fn IPTOS_TOS(tos: u8) -> u8 { tos & IPTOS_TOS_MASK } @@ -3622,6 +3611,19 @@ f! { } } +safe_f! { + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= (major & 0x00000fff) << 8; + dev |= (major & 0xfffff000) << 32; + dev |= (minor & 0x000000ff) << 0; + dev |= (minor & 0xffffff00) << 12; + dev + } +} + cfg_if! { if #[cfg(not(target_env = "uclibc"))] { extern "C" { |