summaryrefslogtreecommitdiff
path: root/src/unix/bsd/freebsdlike
diff options
context:
space:
mode:
Diffstat (limited to 'src/unix/bsd/freebsdlike')
-rw-r--r--src/unix/bsd/freebsdlike/dragonfly/mod.rs8
-rw-r--r--src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs10
-rw-r--r--src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs10
-rw-r--r--src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs10
-rw-r--r--src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs10
5 files changed, 48 insertions, 0 deletions
diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs
index 63c0594f41..72ea8c7504 100644
--- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs
+++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs
@@ -1578,6 +1578,14 @@ f! {
let (idx, offset) = ((cpu >> 6) & 3, cpu & 63);
0 != cpuset.ary[idx] & (1 << offset)
}
+
+ pub fn major(dev: ::dev_t) -> ::c_int {
+ ((dev >> 8) & 0xff) as ::c_int
+ }
+
+ pub fn minor(dev: ::dev_t) -> ::c_int {
+ (dev & 0xffff00ff) as ::c_int
+ }
}
safe_f! {
diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
index f2d170fb28..de34069eab 100644
--- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
+++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
@@ -442,6 +442,16 @@ safe_f! {
}
}
+f! {
+ pub fn major(dev: ::dev_t) -> ::c_int {
+ ((dev >> 8) & 0xff) as ::c_int
+ }
+
+ pub fn minor(dev: ::dev_t) -> ::c_int {
+ (dev & 0xffff00ff) as ::c_int
+ }
+}
+
extern "C" {
// Return type ::c_int was removed in FreeBSD 12
pub fn setgrent() -> ::c_int;
diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
index 5cd4eff26f..10fcaa03a4 100644
--- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
+++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
@@ -462,6 +462,16 @@ safe_f! {
}
}
+f! {
+ pub fn major(dev: ::dev_t) -> ::c_int {
+ (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int
+ }
+
+ pub fn minor(dev: ::dev_t) -> ::c_int {
+ (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int
+ }
+}
+
extern "C" {
pub fn setgrent();
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
index 56564eeb45..0e04a12e70 100644
--- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
+++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
@@ -481,6 +481,16 @@ safe_f! {
}
}
+f! {
+ pub fn major(dev: ::dev_t) -> ::c_int {
+ (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int
+ }
+
+ pub fn minor(dev: ::dev_t) -> ::c_int {
+ (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int
+ }
+}
+
extern "C" {
pub fn setgrent();
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
index d60f1a174f..a86ca6e7c5 100644
--- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
+++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
@@ -481,6 +481,16 @@ safe_f! {
}
}
+f! {
+ pub fn major(dev: ::dev_t) -> ::c_int {
+ (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int
+ }
+
+ pub fn minor(dev: ::dev_t) -> ::c_int {
+ (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int
+ }
+}
+
extern "C" {
pub fn setgrent();
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;