mirror of
https://github.com/denoland/deno.git
synced 2024-12-21 23:04:45 -05:00
fix(ext/node): compatibility with {Free,Open}BSD (#26604)
Ports for both BSDs contain patches to the same effect.
See
https://github.com/freebsd/freebsd-ports/blob/main/www/deno/files/patch-ext_node_ops_fs.rs
and
8644910cae/lang/deno/patches/patch-ext_node_ops_fs_rs
This commit is contained in:
parent
aa2a354190
commit
efb5e912e5
1 changed files with 16 additions and 2 deletions
|
@ -152,13 +152,21 @@ where
|
|||
let mut cpath = path.as_bytes().to_vec();
|
||||
cpath.push(0);
|
||||
if bigint {
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
#[cfg(not(any(
|
||||
target_os = "macos",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd"
|
||||
)))]
|
||||
// SAFETY: `cpath` is NUL-terminated and result is pointer to valid statfs memory.
|
||||
let (code, result) = unsafe {
|
||||
let mut result: libc::statfs64 = std::mem::zeroed();
|
||||
(libc::statfs64(cpath.as_ptr() as _, &mut result), result)
|
||||
};
|
||||
#[cfg(target_os = "macos")]
|
||||
#[cfg(any(
|
||||
target_os = "macos",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd"
|
||||
))]
|
||||
// SAFETY: `cpath` is NUL-terminated and result is pointer to valid statfs memory.
|
||||
let (code, result) = unsafe {
|
||||
let mut result: libc::statfs = std::mem::zeroed();
|
||||
|
@ -168,7 +176,10 @@ where
|
|||
return Err(std::io::Error::last_os_error().into());
|
||||
}
|
||||
Ok(StatFs {
|
||||
#[cfg(not(target_os = "openbsd"))]
|
||||
typ: result.f_type as _,
|
||||
#[cfg(target_os = "openbsd")]
|
||||
typ: 0 as _,
|
||||
bsize: result.f_bsize as _,
|
||||
blocks: result.f_blocks as _,
|
||||
bfree: result.f_bfree as _,
|
||||
|
@ -186,7 +197,10 @@ where
|
|||
return Err(std::io::Error::last_os_error().into());
|
||||
}
|
||||
Ok(StatFs {
|
||||
#[cfg(not(target_os = "openbsd"))]
|
||||
typ: result.f_type as _,
|
||||
#[cfg(target_os = "openbsd")]
|
||||
typ: 0 as _,
|
||||
bsize: result.f_bsize as _,
|
||||
blocks: result.f_blocks as _,
|
||||
bfree: result.f_bfree as _,
|
||||
|
|
Loading…
Reference in a new issue