12add0d91Sopenharmony_ci//! libc - Raw FFI bindings to platforms' system libraries 22add0d91Sopenharmony_ci//! 32add0d91Sopenharmony_ci//! [Documentation for other platforms][pd]. 42add0d91Sopenharmony_ci//! 52add0d91Sopenharmony_ci//! [pd]: https://rust-lang.github.io/libc/#platform-specific-documentation 62add0d91Sopenharmony_ci#![crate_name = "libc"] 72add0d91Sopenharmony_ci#![crate_type = "rlib"] 82add0d91Sopenharmony_ci#![allow( 92add0d91Sopenharmony_ci renamed_and_removed_lints, // Keep this order. 102add0d91Sopenharmony_ci unknown_lints, // Keep this order. 112add0d91Sopenharmony_ci bad_style, 122add0d91Sopenharmony_ci overflowing_literals, 132add0d91Sopenharmony_ci improper_ctypes, 142add0d91Sopenharmony_ci // This lint is renamed but we run CI for old stable rustc so should be here. 152add0d91Sopenharmony_ci redundant_semicolon, 162add0d91Sopenharmony_ci redundant_semicolons, 172add0d91Sopenharmony_ci unused_macros, 182add0d91Sopenharmony_ci unused_macro_rules, 192add0d91Sopenharmony_ci)] 202add0d91Sopenharmony_ci#![cfg_attr(libc_deny_warnings, deny(warnings))] 212add0d91Sopenharmony_ci// Attributes needed when building as part of the standard library 222add0d91Sopenharmony_ci#![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, no_core))] 232add0d91Sopenharmony_ci#![cfg_attr(libc_thread_local, feature(thread_local))] 242add0d91Sopenharmony_ci// Enable extra lints: 252add0d91Sopenharmony_ci#![cfg_attr(feature = "extra_traits", deny(missing_debug_implementations))] 262add0d91Sopenharmony_ci#![deny(missing_copy_implementations, safe_packed_borrows)] 272add0d91Sopenharmony_ci#![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)] 282add0d91Sopenharmony_ci#![cfg_attr(feature = "rustc-dep-of-std", no_core)] 292add0d91Sopenharmony_ci#![cfg_attr(libc_const_extern_fn_unstable, feature(const_extern_fn))] 302add0d91Sopenharmony_ci 312add0d91Sopenharmony_ci#[macro_use] 322add0d91Sopenharmony_cimod macros; 332add0d91Sopenharmony_ci 342add0d91Sopenharmony_cicfg_if! { 352add0d91Sopenharmony_ci if #[cfg(feature = "rustc-dep-of-std")] { 362add0d91Sopenharmony_ci extern crate rustc_std_workspace_core as core; 372add0d91Sopenharmony_ci #[allow(unused_imports)] 382add0d91Sopenharmony_ci use core::iter; 392add0d91Sopenharmony_ci #[allow(unused_imports)] 402add0d91Sopenharmony_ci use core::ops; 412add0d91Sopenharmony_ci #[allow(unused_imports)] 422add0d91Sopenharmony_ci use core::option; 432add0d91Sopenharmony_ci } 442add0d91Sopenharmony_ci} 452add0d91Sopenharmony_ci 462add0d91Sopenharmony_cicfg_if! { 472add0d91Sopenharmony_ci if #[cfg(libc_priv_mod_use)] { 482add0d91Sopenharmony_ci #[cfg(libc_core_cvoid)] 492add0d91Sopenharmony_ci #[allow(unused_imports)] 502add0d91Sopenharmony_ci use core::ffi; 512add0d91Sopenharmony_ci #[allow(unused_imports)] 522add0d91Sopenharmony_ci use core::fmt; 532add0d91Sopenharmony_ci #[allow(unused_imports)] 542add0d91Sopenharmony_ci use core::hash; 552add0d91Sopenharmony_ci #[allow(unused_imports)] 562add0d91Sopenharmony_ci use core::num; 572add0d91Sopenharmony_ci #[allow(unused_imports)] 582add0d91Sopenharmony_ci use core::mem; 592add0d91Sopenharmony_ci #[doc(hidden)] 602add0d91Sopenharmony_ci #[allow(unused_imports)] 612add0d91Sopenharmony_ci use core::clone::Clone; 622add0d91Sopenharmony_ci #[doc(hidden)] 632add0d91Sopenharmony_ci #[allow(unused_imports)] 642add0d91Sopenharmony_ci use core::marker::{Copy, Send, Sync}; 652add0d91Sopenharmony_ci #[doc(hidden)] 662add0d91Sopenharmony_ci #[allow(unused_imports)] 672add0d91Sopenharmony_ci use core::option::Option; 682add0d91Sopenharmony_ci } else { 692add0d91Sopenharmony_ci #[doc(hidden)] 702add0d91Sopenharmony_ci #[allow(unused_imports)] 712add0d91Sopenharmony_ci pub use core::fmt; 722add0d91Sopenharmony_ci #[doc(hidden)] 732add0d91Sopenharmony_ci #[allow(unused_imports)] 742add0d91Sopenharmony_ci pub use core::hash; 752add0d91Sopenharmony_ci #[doc(hidden)] 762add0d91Sopenharmony_ci #[allow(unused_imports)] 772add0d91Sopenharmony_ci pub use core::num; 782add0d91Sopenharmony_ci #[doc(hidden)] 792add0d91Sopenharmony_ci #[allow(unused_imports)] 802add0d91Sopenharmony_ci pub use core::mem; 812add0d91Sopenharmony_ci #[doc(hidden)] 822add0d91Sopenharmony_ci #[allow(unused_imports)] 832add0d91Sopenharmony_ci pub use core::clone::Clone; 842add0d91Sopenharmony_ci #[doc(hidden)] 852add0d91Sopenharmony_ci #[allow(unused_imports)] 862add0d91Sopenharmony_ci pub use core::marker::{Copy, Send, Sync}; 872add0d91Sopenharmony_ci #[doc(hidden)] 882add0d91Sopenharmony_ci #[allow(unused_imports)] 892add0d91Sopenharmony_ci pub use core::option::Option; 902add0d91Sopenharmony_ci } 912add0d91Sopenharmony_ci} 922add0d91Sopenharmony_ci 932add0d91Sopenharmony_cicfg_if! { 942add0d91Sopenharmony_ci if #[cfg(windows)] { 952add0d91Sopenharmony_ci mod fixed_width_ints; 962add0d91Sopenharmony_ci pub use fixed_width_ints::*; 972add0d91Sopenharmony_ci 982add0d91Sopenharmony_ci mod windows; 992add0d91Sopenharmony_ci pub use windows::*; 1002add0d91Sopenharmony_ci } else if #[cfg(target_os = "fuchsia")] { 1012add0d91Sopenharmony_ci mod fixed_width_ints; 1022add0d91Sopenharmony_ci pub use fixed_width_ints::*; 1032add0d91Sopenharmony_ci 1042add0d91Sopenharmony_ci mod fuchsia; 1052add0d91Sopenharmony_ci pub use fuchsia::*; 1062add0d91Sopenharmony_ci } else if #[cfg(target_os = "switch")] { 1072add0d91Sopenharmony_ci mod fixed_width_ints; 1082add0d91Sopenharmony_ci pub use fixed_width_ints::*; 1092add0d91Sopenharmony_ci 1102add0d91Sopenharmony_ci mod switch; 1112add0d91Sopenharmony_ci pub use switch::*; 1122add0d91Sopenharmony_ci } else if #[cfg(target_os = "psp")] { 1132add0d91Sopenharmony_ci mod fixed_width_ints; 1142add0d91Sopenharmony_ci pub use fixed_width_ints::*; 1152add0d91Sopenharmony_ci 1162add0d91Sopenharmony_ci mod psp; 1172add0d91Sopenharmony_ci pub use psp::*; 1182add0d91Sopenharmony_ci } else if #[cfg(target_os = "vxworks")] { 1192add0d91Sopenharmony_ci mod fixed_width_ints; 1202add0d91Sopenharmony_ci pub use fixed_width_ints::*; 1212add0d91Sopenharmony_ci 1222add0d91Sopenharmony_ci mod vxworks; 1232add0d91Sopenharmony_ci pub use vxworks::*; 1242add0d91Sopenharmony_ci } else if #[cfg(target_os = "solid_asp3")] { 1252add0d91Sopenharmony_ci mod fixed_width_ints; 1262add0d91Sopenharmony_ci pub use fixed_width_ints::*; 1272add0d91Sopenharmony_ci 1282add0d91Sopenharmony_ci mod solid; 1292add0d91Sopenharmony_ci pub use solid::*; 1302add0d91Sopenharmony_ci } else if #[cfg(unix)] { 1312add0d91Sopenharmony_ci mod fixed_width_ints; 1322add0d91Sopenharmony_ci pub use fixed_width_ints::*; 1332add0d91Sopenharmony_ci 1342add0d91Sopenharmony_ci mod unix; 1352add0d91Sopenharmony_ci pub use unix::*; 1362add0d91Sopenharmony_ci } else if #[cfg(target_os = "hermit")] { 1372add0d91Sopenharmony_ci mod fixed_width_ints; 1382add0d91Sopenharmony_ci pub use fixed_width_ints::*; 1392add0d91Sopenharmony_ci 1402add0d91Sopenharmony_ci mod hermit; 1412add0d91Sopenharmony_ci pub use hermit::*; 1422add0d91Sopenharmony_ci } else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] { 1432add0d91Sopenharmony_ci mod fixed_width_ints; 1442add0d91Sopenharmony_ci pub use fixed_width_ints::*; 1452add0d91Sopenharmony_ci 1462add0d91Sopenharmony_ci mod sgx; 1472add0d91Sopenharmony_ci pub use sgx::*; 1482add0d91Sopenharmony_ci } else if #[cfg(any(target_env = "wasi", target_os = "wasi"))] { 1492add0d91Sopenharmony_ci mod fixed_width_ints; 1502add0d91Sopenharmony_ci pub use fixed_width_ints::*; 1512add0d91Sopenharmony_ci 1522add0d91Sopenharmony_ci mod wasi; 1532add0d91Sopenharmony_ci pub use wasi::*; 1542add0d91Sopenharmony_ci } else { 1552add0d91Sopenharmony_ci // non-supported targets: empty... 1562add0d91Sopenharmony_ci } 1572add0d91Sopenharmony_ci} 158