//! `sys/utsname.h` implementation. //! //! See . use crate::{ error::ResultExt, out::Out, platform::{ Pal, Sys, types::{c_char, c_int}, }, }; pub const UTSLENGTH: usize = 65; /// See . #[repr(C)] #[derive(Clone, Debug, OutProject)] pub struct utsname { pub sysname: [c_char; UTSLENGTH], pub nodename: [c_char; UTSLENGTH], pub release: [c_char; UTSLENGTH], pub version: [c_char; UTSLENGTH], pub machine: [c_char; UTSLENGTH], pub domainname: [c_char; UTSLENGTH], } /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn uname(uts: *mut utsname) -> c_int { Sys::uname(unsafe { Out::nonnull(uts) }) .map(|()| 0) .or_minus_one_errno() }