Crate sgx_tstd[−][src]
The Rust SGX SDK Standard Library
The Rust SGX standard library (previously named as sgx_tstdc
) is
the foundation of portable Rust SGX SDK, a
set of minimal and battle-tested shared abstractions for the Rust SGX
ecosystem. Similar to Rust's libstd, it offers core types, like [Vec<T>
] and
[Option<T>
], library-defined operations on language
primitives, standard macros, [I/O] and
[multithreading], among [many other things][other].
std
is available to all Rust crates by default, just as if each one
contained an extern crate sgx_tstd as std;
import at the [crate root]. Therefore the
standard library can be accessed in [use
] statements through the path
std
, as in [use std::env
], or in expressions through the absolute path
::std
, as in [::std::env::args
].
Re-exports
pub use self::thread::rsgx_thread_self; |
pub use self::thread::rsgx_thread_equal; |
Modules
any |
This module implements the |
ascii | |
borrow |
A module for working with borrowed data. |
boxed |
A pointer type for heap allocation. |
cell |
Shareable mutable containers. |
char |
A character type. |
clone |
The |
cmp |
Functionality for ordering and comparison. |
collections |
Collection types. |
convert |
Traits for conversions between types. |
default |
The |
enclave | |
env |
Inspection and manipulation of the process's environment. |
error | |
f32 |
This module provides constants which are specific to the implementation
of the |
f64 |
This module provides constants which are specific to the implementation
of the |
ffi |
Utilities related to FFI bindings. |
fmt |
Utilities for formatting and printing |
hash |
Generic hashing support. |
i8 |
The 8-bit signed integer type. |
i16 |
The 16-bit signed integer type. |
i32 |
The 32-bit signed integer type. |
i64 |
The 64-bit signed integer type. |
i128 |
The 128-bit signed integer type. |
io | |
isize |
The pointer-sized signed integer type. |
iter |
Composable external iteration. |
marker |
Primitive traits and types representing basic properties of types. |
mem |
Basic functions for dealing with memory. |
net |
Networking primitives for TCP/UDP communication. |
num |
Additional functionality for numerics. |
ops |
Overloadable operators. |
option |
Optional values. |
os | |
panic |
Panic support in the standard library |
path |
Cross-platform path manipulation. |
prelude | |
ptr |
Raw, unsafe pointers, |
rc |
Single-threaded reference-counting pointers. 'Rc' stands for 'Reference Counted'. |
result |
Error handling with the |
rt |
Runtime services |
sgxfs |
Filesystem manipulation operations. |
slice |
A dynamically-sized view into a contiguous sequence, |
str |
Unicode string slices. |
string |
A UTF-8 encoded, growable string. |
sync |
The Intel(R) Software Guard Extensions SDK already supports mutex and conditional variable synchronization mechanisms by means of the following APIand data types defined in the Types and Enumerations section. Some functions included in the trusted Thread Synchronization library may make calls outside the enclave (OCALLs). If you use any of the APIs below, you must first import the needed OCALL functions from sgx_tstdc.edl. Otherwise, you will get a linker error when the enclave is being built; see Calling Functions outside the Enclave for additional details. The table below illustrates the primitives that the Intel(R) SGX Thread Synchronization library supports, as well as the OCALLs that each API function needs. |
thread |
Native threads. |
time |
Temporal quantification. |
u8 |
The 8-bit unsigned integer type. |
u16 |
The 16-bit unsigned integer type. |
u32 |
The 32-bit unsigned integer type. |
u64 |
The 64-bit unsigned integer type. |
u128 |
The 128-bit unsigned integer type. |
untrusted | |
usize |
The pointer-sized unsigned integer type. |
vec |
A contiguous growable array type with heap-allocated contents, written
|
derived_property |
[ Experimental ]
|
intrinsics |
[ Experimental ] rustc compiler intrinsics. |
property |
[ Experimental ]
|
raw |
[ Experimental ] Contains struct definitions for the layout of compiler built-in types. |
Macros
__cfg_if_apply | |
__cfg_if_items | |
__thread_local_inner | |
assert_eq |
Asserts that two expressions are equal to each other (using |
assert_ne |
Asserts that two expressions are not equal to each other (using |
cfg_if | |
debug_assert |
Ensure that a boolean expression is |
debug_assert_eq |
Asserts that two expressions are equal to each other. |
debug_assert_ne |
Asserts that two expressions are not equal to each other. |
eprint |
Macro for printing to the standard error. |
eprintln |
Macro for printing to the standard error, with a newline. |
format |
Creates a |
global_ctors_object |
global_ctors_object is the base macro of implementing constructors. |
global_dtors_object | |
panic |
The entry point for panic of Rust threads. |
Macro for printing to the standard output. |
|
println |
Macro for printing to the standard output, with a newline. On all
platforms, the newline is the LINE FEED character ( |
thread_local |
Declare a new thread local storage key of type [ |
try |
Helper macro for reducing boilerplate code for matching |
unimplemented |
A standardized placeholder for marking unfinished code. |
unreachable |
A utility macro for indicating unreachable code. |
vec |
Creates a |
write |
Write formatted data into a buffer. |
writeln |
Write formatted data into a buffer, with a newline appended. |
Functions
rsgx_cpuid |
The rsgx_cpuid function performs the equivalent of a cpuid() function call or intrinisic which executes the CPUID instruction to query the host processor for the information about supported features. |
rsgx_cpuidex |
The rsgx_cpuidex function performs the equivalent of a cpuid_ex() function call or intrinisic which executes the CPUID instruction to query the host processor for the information about supported features. |
rust_oom |