use bitflags::bitflags;
use core::ffi::c_int;
pub use traits::Mmap;
mod traits;
bitflags! {
#[derive(Clone, Copy, Debug, Default)]
pub struct ProtFlags: c_int {
const PROT_NONE = 0;
const PROT_READ = 1;
const PROT_WRITE = 2;
const PROT_EXEC = 4;
}
}
bitflags! {
#[derive(Clone, Copy)]
pub struct MapFlags: c_int {
const MAP_PRIVATE = 2;
const MAP_FIXED = 16;
const MAP_ANONYMOUS = 32;
}
}
cfg_if::cfg_if! {
if #[cfg(windows)]{
mod windows;
pub(crate) use windows::{current_thread_id, register_thread_destructor, get_thread_local_ptr, RawFile, virtual_free};
pub use windows::DefaultMmap;
}else if #[cfg(feature = "use-syscall")]{
mod linux_syscall;
pub(crate) use linux_syscall::{current_thread_id, register_thread_destructor, get_thread_local_ptr, RawFile};
pub use linux_syscall::*;
}else if #[cfg(unix)]{
mod unix;
pub(crate) use unix::{current_thread_id, register_thread_destructor, get_thread_local_ptr, RawFile};
pub use unix::DefaultMmap;
}else {
mod baremetal;
pub(crate) use baremetal::{current_thread_id, register_thread_destructor, get_thread_local_ptr, RawFile};
pub use baremetal::*;
}
}