ffa_value_t
typedef void (ffa_fn)(ffa_value_t, ffa_value_t *);
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){ .a0 = FFA_RUN, .a1 = target, }, &ret);
invoke_ffa_fn((ffa_value_t){ .a0 = FFA_RUN, .a1 = ret.a1, },
ffa_value_t ver;
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
ffa_value_t id;
invoke_ffa_fn((ffa_value_t){
ffa_value_t partition_info;
invoke_ffa_fn((ffa_value_t){
(sizeof(ffa_value_t) / sizeof_field(ffa_value_t, a0))
ffa_value_t partition_info;
invoke_ffa_fn((ffa_value_t){
ffa_value_t id;
invoke_ffa_fn((ffa_value_t){
static inline void ffa_msg_send_wait_for_completion(ffa_value_t *ret)
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret, args = {
memcpy((void *)&args + offsetof(ffa_value_t, a4), data, sizeof(*data));
memcpy(data, (void *)&ret + offsetof(ffa_value_t, a4), sizeof(*data));
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t) {
ffa_value_t ret;
invoke_ffa_fn((ffa_value_t){
static void __arm_ffa_fn_smc(ffa_value_t args, ffa_value_t *res)
static void __arm_ffa_fn_hvc(ffa_value_t args, ffa_value_t *res)