use std::ffi::c_void;
use std::os::raw::c_char;
#[cfg(not(windows))]
macro_rules! bind {
($($s: ident),*) => {
$(
bind!(@INTERNAL; $s);
)*
};
(@INTERNAL; _emalloc) => {};
(@INTERNAL; _efree) => {};
(@INTERNAL; _estrdup) => {};
(@INTERNAL; $s: ident) => {
cargo_php::stub_symbols!($s);
};
}
#[cfg(not(windows))]
include!("../allowed_bindings.rs");
#[cfg(not(windows))]
#[unsafe(no_mangle)]
pub unsafe extern "C" fn _emalloc(size: usize) -> *mut c_void {
unsafe { libc::malloc(size) }
}
#[cfg(not(windows))]
#[unsafe(no_mangle)]
pub unsafe extern "C" fn _efree(ptr: *mut c_void) {
unsafe { libc::free(ptr) }
}
#[cfg(not(windows))]
#[unsafe(no_mangle)]
pub unsafe extern "C" fn _estrdup(s: *const c_char) -> *mut c_char {
unsafe { libc::strdup(s) }
}
fn main() -> cargo_php::CrateResult {
cargo_php::run()
}