Lines Matching refs:args
415 struct ffa_mem_ops_args *args)
424 u32 idx, frag_len, length, buf_sz = 0, num_entries = sg_nents(args->sg);
426 mem_region->tag = args->tag;
427 mem_region->flags = args->flags;
432 for (idx = 0; idx < args->nattrs; idx++, ep_mem_access++) {
433 ep_mem_access->receiver = args->attrs[idx].receiver;
434 ep_mem_access->attrs = args->attrs[idx].attrs;
435 ep_mem_access->composite_off = COMPOSITE_OFFSET(args->nattrs);
442 mem_region->ep_count = args->nattrs;
444 composite = buffer + COMPOSITE_OFFSET(args->nattrs);
445 composite->total_pg_cnt = ffa_get_num_pages_sg(args->sg);
449 length = COMPOSITE_CONSTITUENTS_OFFSET(args->nattrs, num_entries);
450 frag_len = COMPOSITE_CONSTITUENTS_OFFSET(args->nattrs, 0);
454 if (!args->use_txbuf) {
465 &args->g_handle, first);
480 constituents->address = sg_phys(args->sg);
481 constituents->pg_cnt = args->sg->length / FFA_PAGE_SIZE;
485 } while ((args->sg = sg_next(args->sg)));
488 length, &args->g_handle, first);
491 static int ffa_memory_ops(u32 func_id, struct ffa_mem_ops_args *args)
496 if (!args->use_txbuf) {
505 ret = ffa_setup_and_transmit(func_id, buffer, RXTX_BUFFER_SIZE, args);
507 if (args->use_txbuf)
602 static int ffa_memory_share(struct ffa_mem_ops_args *args)
605 return ffa_memory_ops(FFA_FN_NATIVE(MEM_SHARE), args);
607 return ffa_memory_ops(FFA_MEM_SHARE, args);
610 static int ffa_memory_lend(struct ffa_mem_ops_args *args)
620 return ffa_memory_ops(FFA_FN_NATIVE(MEM_LEND), args);
622 return ffa_memory_ops(FFA_MEM_LEND, args);