diff options
author | bors <bors@rust-lang.org> | 2022-10-02 22:50:59 +0000 |
---|---|---|
committer | bors <bors@rust-lang.org> | 2022-10-02 22:50:59 +0000 |
commit | 198beb0d45ef9ae2be1f4a6d35446a2822c13d76 (patch) | |
tree | 72b51f5c10cc63c42baff9664f880943f680f2db | |
parent | d99a59db0c27fee88dc2be97f5df171e94faec29 (diff) | |
parent | 11a1ffe2246cdcb029a1d7f6f1e96a869ef9e336 (diff) | |
download | rust-libc-198beb0d45ef9ae2be1f4a6d35446a2822c13d76.tar.gz |
Auto merge of #2937 - SteveLauC:add-major-minor-makedev-on-apple-oses, r=JohnTitor
add major/minor/makedev on apple OSes
This impl corresponds to the macros in [`sys/types.h`](https://opensource.apple.com/source/xnu/xnu-7195.81.3/bsd/sys/types.h.auto.html):
```c
#define major(x) ((int32_t)(((u_int32_t)(x) >> 24) & 0xff))
#define minor(x) ((int32_t)((x) & 0xffffff))
#define makedev(x, y) ((dev_t)(((x) << 24) | (y)))
```
-rw-r--r-- | src/unix/bsd/apple/mod.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index d17d5e0050..cee87ffbfc 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -4976,6 +4976,18 @@ f! { pub {const} fn VM_MAKE_TAG(id: u8) -> u32 { (id as u32) << 24u32 } + + pub fn major(dev: dev_t) -> i32 { + (dev >> 24) & 0xff + } + + pub fn minor(dev: dev_t) -> i32 { + dev & 0xffffff + } + + pub fn makedev(major: i32, minor: i32) -> dev_t { + (major << 24) | minor + } } safe_f! { |