diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/runtime_services/ffa_helpers.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/include/runtime_services/ffa_helpers.h b/include/runtime_services/ffa_helpers.h index caeaa9e0b..02a956e8f 100644 --- a/include/runtime_services/ffa_helpers.h +++ b/include/runtime_services/ffa_helpers.h @@ -39,6 +39,14 @@ struct ffa_partition_info { uint32_t properties; }; +static inline uint32_t ffa_func_id(smc_ret_values val) { + return (uint32_t) val.ret0; +} + +static inline int32_t ffa_error_code(smc_ret_values val) { + return (int32_t) val.ret2; +} + enum ffa_data_access { FFA_DATA_ACCESS_NOT_SPECIFIED, FFA_DATA_ACCESS_RO, @@ -366,8 +374,15 @@ ffa_memory_handle_t ffa_memory_init_and_send( const struct ffa_memory_region_constituent* constituents, uint32_t constituents_count, uint32_t mem_func); +static inline ffa_vm_id_t ffa_dir_msg_dest(smc_ret_values val) { + return (ffa_vm_id_t)val.ret1 & U(0xFFFF); +} + +static inline ffa_vm_id_t ffa_dir_msg_source(smc_ret_values val) { + return (ffa_vm_id_t)(val.ret1 >> 16U); +} + smc_ret_values ffa_msg_send_direct_req(uint32_t source_id, uint32_t dest_id, uint32_t message); -smc_ret_values ffa_msg_send_direct_req64(uint32_t source_id, uint32_t dest_id, uint64_t message); smc_ret_values ffa_msg_send_direct_req64_5args(uint32_t source_id, uint32_t dest_id, uint64_t arg0, uint64_t arg1, uint64_t arg2, uint64_t arg3, |