//! This module contains the future directory structure. If possible, new definitions should //! get added here. //! //! Eventually everything should be moved over, and we will move this directory to the top //! level in `src`. //! //! # Basic structure //! //! Each child module here represents a library or group of libraries that we are binding. Each of //! these has several submodules, representing either a directory or a header file in that library. //! //! `#include`s turn into `pub use ...*;` statements. Then at the root level (here), we choose //! which top-level headers we want to reexport the definitions for. //! //! All modules are only crate-public since we don't reexport this structure.
mod common;
/* The `pub(crate) use ...` statements are commented while the modules are empty */
// Platform libraries and combined platform+libc // // Not supported or not needed: // * amdhsa // * cuda // * lynxos178 // * managarm // * motor // * none // * psp // * psx // * uefi // * unknown // * vexos // * zkvm // // Combined to target_vendor = "apple" // * ios // * macos // * tvos // * visionos // * watchos
cfg_if! { if#[cfg(target_os = "aix")] { mod aix; pub(crate) use aix::*;
} elseif#[cfg(target_os = "android")] { mod bionic_libc; pub(crate) use bionic_libc::*;
} elseif#[cfg(target_vendor = "apple")] { mod apple; pub(crate) use apple::*;
} elseif#[cfg(target_os = "cygwin")] { mod cygwin; pub(crate) use cygwin::*;
} elseif#[cfg(target_os = "dragonfly")] { mod dragonfly; pub(crate) use dragonfly::*;
} elseif#[cfg(target_os = "emscripten")] { mod emscripten; pubuse emscripten::sched::*; pub(crate) use emscripten::*;
} elseif#[cfg(target_os = "espidf")] { mod espidf; // pub(crate) use espidf::*;
} elseif#[cfg(target_os = "freebsd")] { mod freebsd; pub(crate) use freebsd::*;
} elseif#[cfg(target_os = "fuchsia")] { mod fuchsia; pub(crate) use fuchsia::*;
} elseif#[cfg(target_os = "haiku")] { mod haiku; pub(crate) use haiku::*;
} elseif#[cfg(target_os = "hermit")] { mod hermit_abi; // pub(crate) use hermit_abi::*;
} elseif#[cfg(target_os = "horizon")] { mod horizon; // pub(crate) use horizon::*;
} elseif#[cfg(target_os = "hurd")] { mod hurd; // pub(crate) use hurd::*;
} elseif#[cfg(target_os = "illumos")] { mod illumos; pub(crate) use illumos::*;
} elseif#[cfg(target_os = "l4re")] { mod l4re; // pub(crate) use l4re::*;
} elseif#[cfg(target_os = "linux")] { mod linux_uapi; pub(crate) use linux_uapi::*;
} elseif#[cfg(target_os = "netbsd")] { mod netbsd; pub(crate) use netbsd::*;
} elseif#[cfg(target_os = "nto")] { mod nto; pub(crate) use nto::*;
} elseif#[cfg(target_os = "nuttx")] { mod nuttx; pub(crate) use nuttx::*;
} elseif#[cfg(target_os = "openbsd")] { mod openbsd; pub(crate) use openbsd::*;
} elseif#[cfg(target_os = "qurt")] { pubmod qurt; pubuse qurt::*;
} elseif#[cfg(target_os = "redox")] { mod redox; // pub(crate) use redox::*;
} elseif#[cfg(target_os = "rtems")] { mod rtems; // pub(crate) use rtems::*;
} elseif#[cfg(target_os = "solaris")] { mod solaris; pub(crate) use solaris::*;
} elseif#[cfg(target_os = "solid_asp3")] { mod solid; // pub(crate) use solid::*;
} elseif#[cfg(target_os = "teeos")] { mod teeos; // pub(crate) use teeos::*;
} elseif#[cfg(target_os = "trusty")] { mod trusty; // pub(crate) use trusty::*;
} elseif#[cfg(target_os = "vita")] { mod vita; // pub(crate) use vita::*;
} elseif#[cfg(target_os = "vxworks")] { mod vxworks; pub(crate) use vxworks::*;
} elseif#[cfg(target_os = "wasi")] { mod wasi; // pub(crate) use wasi::*;
} elseif#[cfg(target_os = "windows")] { mod ucrt; // pub(crate) use ucrt::*;
} elseif#[cfg(target_os = "xous")] { mod xous; // pub(crate) use xous::*;
}
}
// Multi-platform libc
cfg_if! { // FIXME(vxworks): vxworks sets `target_env = "gnu"` but maybe shouldn't. if#[cfg(all(
target_family = "unix",
target_env = "gnu",
not(target_os = "vxworks")
))] { mod glibc; pub(crate) use glibc::*;
} elseif#[cfg(any(target_env = "musl", target_env = "ohos"))] { // OhOS also uses the musl libc mod musl; pubuse musl::sched::*; pub(crate) use musl::*;
} elseif#[cfg(target_env = "newlib")] { mod newlib; pub(crate) use newlib::*;
} elseif#[cfg(target_env = "relibc")] { mod relibc; pub(crate) use relibc::*;
} elseif#[cfg(target_env = "sgx")] { mod sgx; // pub(crate) use sgx::*;
} elseif#[cfg(target_env = "uclibc")] { mod uclibc; pub(crate) use uclibc::*;
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.