This is an automated email from the ASF dual-hosted git repository. yuanz pushed a commit to branch no-std in repository https://gitbox.apache.org/repos/asf/incubator-teaclave-trustzone-sdk.git
commit 9d1e9ae0755f5c12f96a28d3e27dcd8147b2d682 Author: Sumit Garg <[email protected]> AuthorDate: Fri Nov 24 19:25:26 2023 +0530 macros: Add no_std compatibility Signed-off-by: Sumit Garg <[email protected]> --- optee-utee/macros/src/lib.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/optee-utee/macros/src/lib.rs b/optee-utee/macros/src/lib.rs index 3f05ba3..732ddbc 100644 --- a/optee-utee/macros/src/lib.rs +++ b/optee-utee/macros/src/lib.rs @@ -15,8 +15,11 @@ // specific language governing permissions and limitations // under the License. +extern crate alloc; extern crate proc_macro; +#[cfg(not(feature = "std"))] +use alloc::vec::Vec; use proc_macro::TokenStream; use quote::quote; use syn::parse_macro_input; @@ -162,7 +165,7 @@ pub fn ta_open_session(_args: TokenStream, input: TokenStream) -> TokenStream { pub extern "C" fn TA_OpenSessionEntryPoint( param_types: u32, params: &mut [optee_utee_sys::TEE_Param; 4], - sess_ctx: *mut *mut libc::c_void, + sess_ctx: *mut *mut c_void, ) -> optee_utee_sys::TEE_Result { let mut parameters = Parameters::from_raw(params, param_types); match #ident(&mut parameters) { @@ -195,7 +198,7 @@ pub fn ta_open_session(_args: TokenStream, input: TokenStream) -> TokenStream { pub extern "C" fn TA_OpenSessionEntryPoint( param_types: u32, params: &mut [optee_utee_sys::TEE_Param; 4], - sess_ctx: *mut *mut libc::c_void, + sess_ctx: *mut *mut c_void, ) -> optee_utee_sys::TEE_Result { let mut parameters = Parameters::from_raw(params, param_types); let mut ctx: #ctx_type = Default::default(); @@ -261,7 +264,7 @@ pub fn ta_close_session(_args: TokenStream, input: TokenStream) -> TokenStream { match f.decl.inputs.len() { 0 => quote!( #[no_mangle] - pub extern "C" fn TA_CloseSessionEntryPoint(sess_ctx: *mut libc::c_void) { + pub extern "C" fn TA_CloseSessionEntryPoint(sess_ctx: *mut c_void) { #ident(); } @@ -285,7 +288,7 @@ pub fn ta_close_session(_args: TokenStream, input: TokenStream) -> TokenStream { quote!( #[no_mangle] - pub extern "C" fn TA_CloseSessionEntryPoint(sess_ctx: *mut libc::c_void) { + pub extern "C" fn TA_CloseSessionEntryPoint(sess_ctx: *mut c_void) { if sess_ctx.is_null() { panic!("sess_ctx is null"); } @@ -343,7 +346,7 @@ pub fn ta_invoke_command(_args: TokenStream, input: TokenStream) -> TokenStream 2 => quote!( #[no_mangle] pub extern "C" fn TA_InvokeCommandEntryPoint( - sess_ctx: *mut libc::c_void, + sess_ctx: *mut c_void, cmd_id: u32, param_types: u32, params: &mut [optee_utee_sys::TEE_Param; 4], @@ -378,7 +381,7 @@ pub fn ta_invoke_command(_args: TokenStream, input: TokenStream) -> TokenStream quote!( #[no_mangle] pub extern "C" fn TA_InvokeCommandEntryPoint( - sess_ctx: *mut libc::c_void, + sess_ctx: *mut c_void, cmd_id: u32, param_types: u32, params: &mut [optee_utee_sys::TEE_Param; 4], @@ -390,7 +393,7 @@ pub fn ta_invoke_command(_args: TokenStream, input: TokenStream) -> TokenStream let mut b = unsafe {Box::from_raw(sess_ctx as *mut #t)}; match #ident(&mut b, cmd_id, &mut parameters) { Ok(_) => { - std::mem::forget(b); + core::mem::forget(b); optee_utee_sys::TEE_SUCCESS }, Err(e) => e.raw_code() --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
