#![feature(linkage,lang_items,unwind_attributes,asm,const_fn,collections,unicode,alloc,oom,heap_api)]
#![no_std]
#[macro_use] extern crate collections;
extern crate rustc_unicode;
extern crate alloc as rustc_alloc;
extern crate sgx_isa;
#[cfg(not(test))] pub extern crate core_io as io;
extern crate spin;
extern crate rlibc;
extern crate alloc_buddy_simple;
#[macro_use] extern crate bitflags;
mod alloc;
mod reloc;
mod mem;
#[doc(hidden)] pub mod panic;
#[doc(hidden)] #[cfg(feature="debug")] pub mod debug;
pub mod usercall;
pub mod rand;
pub mod aes;
pub mod curve25519;
pub mod sgx;
pub mod thread;
#[doc(hidden)]
#[no_mangle]
#[cfg(not(test))]
pub unsafe extern "C" fn thread_init() {
static GLOBAL_INIT: spin::Once<()> = spin::Once::new();
GLOBAL_INIT.call_once(||{
reloc::relocate_elf_rela();
alloc::init();
});
}