Skip to main content

ta_open_session

Attribute Macro ta_open_session 

Source
#[ta_open_session]
Expand description

Attribute to declare the entry point of opening a session.

The params argument may be any type that implements optee_utee::FromRawParameters (optee_utee::ParametersAny, a 4-tuple of typed wrappers, optee_utee::Parameters, etc.)

A session context &mut T can be defined as an optional second parameter; T must implement Default.

§Examples

ⓘ
// Old deprecated Parameters
#[ta_open_session]
fn open_session(params: &mut Parameters) -> Result<()> { }

// New typed parameters
use optee_utee::prelude::*;
#[ta_open_session]
fn open_session(params: &mut (
    ParameterNone,
    ParameterMemrefInput<'_>,
    ParameterValueOutput<'_>,
    ParameterMemrefOutput<'_>,
)) -> Result<()> { }
// use ParametersAny and check types with match later.
#[ta_open_session]
fn open_session(
    cmd_id: u32,
    params: &mut ParametersAny,
) -> Result<()> { }

// With session context
#[ta_open_session]
fn open_session(
    params: &mut Parameters,
    sess_ctx: &mut T,
) -> Result<()> { }