use axerrno::LinuxResult;
use crate::ptr::{PtrWrapper, UserPtr};
pub fn sys_getuid() -> LinuxResult<isize> {
Ok(0)
}
#[repr(C)]
pub struct UtsName {
pub sysname: [u8; 65],
pub nodename: [u8; 65],
pub release: [u8; 65],
pub version: [u8; 65],
pub machine: [u8; 65],
pub domainname: [u8; 65],
}
impl Default for UtsName {
fn default() -> Self {
Self {
sysname: Self::from_str("Starry"),
nodename: Self::from_str("Starry - machine[0]"),
release: Self::from_str("10.0.0"),
version: Self::from_str("10.0.0"),
machine: Self::from_str("10.0.0"),
domainname: Self::from_str("https://github.com/BattiestStone4/Starry-On-ArceOS"),
}
}
}
impl UtsName {
fn from_str(info: &str) -> [u8; 65] {
let mut data: [u8; 65] = [0; 65];
data[..info.len()].copy_from_slice(info.as_bytes());
data
}
}
pub fn sys_uname(name: UserPtr<UtsName>) -> LinuxResult<isize> {
unsafe { *name.get()? = UtsName::default() };
Ok(0)
}