Struct optee_teec::Context
source · pub struct Context { /* private fields */ }
Expand description
An abstraction of the logical connection between a client application and a TEE.
Implementations§
source§impl Context
impl Context
sourcepub fn new_raw(
fd: c_int,
reg_mem: bool,
memref_null: bool
) -> Result<TEEC_Context>
pub fn new_raw( fd: c_int, reg_mem: bool, memref_null: bool ) -> Result<TEEC_Context>
Creates a raw TEE client context with implementation defined parameters.
§Examples
let raw_ctx: optee_teec_sys::TEEC_Context = Context::new_raw(0, true).unwrap();
sourcepub fn as_mut_raw_ptr(&mut self) -> *mut TEEC_Context
pub fn as_mut_raw_ptr(&mut self) -> *mut TEEC_Context
Converts a TEE client context to a raw pointer.
§Examples
let mut ctx = Context::new().unwrap();
let mut raw_ptr: *mut optee_teec_sys::TEEC_Context = ctx.as_mut_raw_ptr();
sourcepub fn open_session(&mut self, uuid: Uuid) -> Result<Session<'_>>
pub fn open_session(&mut self, uuid: Uuid) -> Result<Session<'_>>
Opens a new session with the specified trusted application.
The target trusted application is specified by uuid
.
§Examples
let mut ctx = Context::new().unwrap();
let uuid = Uuid::parse_str("8abcf200-2450-11e4-abe2-0002a5d5c51b").unwrap();
let session = ctx.open_session(uuid).unwrap();
sourcepub fn open_session_with_operation<A: Param, B: Param, C: Param, D: Param>(
&mut self,
uuid: Uuid,
operation: &mut Operation<A, B, C, D>
) -> Result<Session<'_>>
pub fn open_session_with_operation<A: Param, B: Param, C: Param, D: Param>( &mut self, uuid: Uuid, operation: &mut Operation<A, B, C, D> ) -> Result<Session<'_>>
Opens a new session with the specified trusted application, pass some parameters to TA by an operation.
The target trusted application is specified by uuid
.
§Examples
let mut ctx = Context::new().unwrap();
let uuid = Uuid::parse_str("8abcf200-2450-11e4-abe2-0002a5d5c51b").unwrap();
let p0 = ParamValue(42, 0, ParamType::ValueInout);
let mut operation = Operation::new(0, p0, ParamNone, ParamNone, ParamNone);
let session = ctx.open_session_with_operation(uuid, operation).unwrap();
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Context
impl RefUnwindSafe for Context
impl Send for Context
impl Sync for Context
impl Unpin for Context
impl UnwindSafe for Context
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more