12add0d91Sopenharmony_ci// libc port for HermitCore (https://hermitcore.org) 22add0d91Sopenharmony_ci// 32add0d91Sopenharmony_ci// Ported by Colin Fink <colin.finck@rwth-aachen.de> 42add0d91Sopenharmony_ci// and Stefan Lankes <slankes@eonerc.rwth-aachen.de> 52add0d91Sopenharmony_ci 62add0d91Sopenharmony_cipub type c_schar = i8; 72add0d91Sopenharmony_cipub type c_uchar = u8; 82add0d91Sopenharmony_cipub type c_short = i16; 92add0d91Sopenharmony_cipub type c_ushort = u16; 102add0d91Sopenharmony_cipub type c_int = i32; 112add0d91Sopenharmony_cipub type c_uint = u32; 122add0d91Sopenharmony_cipub type c_float = f32; 132add0d91Sopenharmony_cipub type c_double = f64; 142add0d91Sopenharmony_cipub type c_longlong = i64; 152add0d91Sopenharmony_cipub type c_ulonglong = u64; 162add0d91Sopenharmony_cipub type intmax_t = i64; 172add0d91Sopenharmony_cipub type uintmax_t = u64; 182add0d91Sopenharmony_ci 192add0d91Sopenharmony_cipub type size_t = usize; 202add0d91Sopenharmony_cipub type ptrdiff_t = isize; 212add0d91Sopenharmony_cipub type intptr_t = isize; 222add0d91Sopenharmony_cipub type uintptr_t = usize; 232add0d91Sopenharmony_cipub type ssize_t = isize; 242add0d91Sopenharmony_ci 252add0d91Sopenharmony_cipub type c_long = i64; 262add0d91Sopenharmony_cipub type c_ulong = u64; 272add0d91Sopenharmony_ci 282add0d91Sopenharmony_cipub type wint_t = u32; 292add0d91Sopenharmony_cipub type wctype_t = i64; 302add0d91Sopenharmony_ci 312add0d91Sopenharmony_cipub type regoff_t = size_t; 322add0d91Sopenharmony_cipub type off_t = c_long; 332add0d91Sopenharmony_ci 342add0d91Sopenharmony_cicfg_if! { 352add0d91Sopenharmony_ci if #[cfg(target_arch = "aarch64")] { 362add0d91Sopenharmony_ci mod aarch64; 372add0d91Sopenharmony_ci pub use self::aarch64::*; 382add0d91Sopenharmony_ci } else if #[cfg(target_arch = "x86_64")] { 392add0d91Sopenharmony_ci mod x86_64; 402add0d91Sopenharmony_ci pub use self::x86_64::*; 412add0d91Sopenharmony_ci } else { 422add0d91Sopenharmony_ci // Unknown target_arch 432add0d91Sopenharmony_ci } 442add0d91Sopenharmony_ci} 452add0d91Sopenharmony_ci 462add0d91Sopenharmony_cicfg_if! { 472add0d91Sopenharmony_ci if #[cfg(libc_core_cvoid)] { 482add0d91Sopenharmony_ci pub use ::ffi::c_void; 492add0d91Sopenharmony_ci } else { 502add0d91Sopenharmony_ci // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help 512add0d91Sopenharmony_ci // enable more optimization opportunities around it recognizing things 522add0d91Sopenharmony_ci // like malloc/free. 532add0d91Sopenharmony_ci #[repr(u8)] 542add0d91Sopenharmony_ci #[allow(missing_copy_implementations)] 552add0d91Sopenharmony_ci #[allow(missing_debug_implementations)] 562add0d91Sopenharmony_ci pub enum c_void { 572add0d91Sopenharmony_ci // Two dummy variants so the #[repr] attribute can be used. 582add0d91Sopenharmony_ci #[doc(hidden)] 592add0d91Sopenharmony_ci __variant1, 602add0d91Sopenharmony_ci #[doc(hidden)] 612add0d91Sopenharmony_ci __variant2, 622add0d91Sopenharmony_ci } 632add0d91Sopenharmony_ci } 642add0d91Sopenharmony_ci} 65