Lines Matching refs:buffer
14 static sp_result get_tx_buffer(struct ffa_mem_transaction_buffer *buffer) in get_tx_buffer() argument
24 ffa_init_mem_transaction_buffer(buffer_address, buffer_size, buffer); in get_tx_buffer()
29 static sp_result get_rx_buffer(struct ffa_mem_transaction_buffer *buffer) in get_rx_buffer() argument
40 ffa_init_mem_transaction_buffer(buffer_address, buffer_size, buffer); in get_rx_buffer()
45 static bool is_valid_buffer(struct ffa_mem_transaction_buffer *buffer) in is_valid_buffer() argument
47 return buffer && in is_valid_buffer()
48 !(((uintptr_t)buffer->buffer) & FFA_MEM_TRANSACTION_PAGE_MASK) && in is_valid_buffer()
49 !(((uintptr_t)buffer->length) & FFA_MEM_TRANSACTION_PAGE_MASK); in is_valid_buffer()
213 static void setup_descriptors(struct ffa_mem_transaction_buffer *buffer, in setup_descriptors() argument
230 ffa_init_mem_transaction_desc(buffer, descriptor->sender_id, in setup_descriptors()
240 ffa_add_mem_access_desc(buffer, acc_desc[i].receiver_id, in setup_descriptors()
246 ffa_add_memory_region(buffer, regions[i].address, in setup_descriptors()
251 static void parse_descriptors(struct ffa_mem_transaction_buffer *buffer, in parse_descriptors() argument
265 transaction = ffa_get_mem_transaction_desc(buffer); in parse_descriptors()
281 acc = ffa_get_mem_access_desc(buffer, i); in parse_descriptors()
291 region_desc = ffa_get_memory_region(buffer); in parse_descriptors()
333 struct ffa_mem_transaction_buffer buffer = { 0 }; in sp_memory_donate() local
345 sp_res = get_tx_buffer(&buffer); in sp_memory_donate()
351 setup_descriptors(&buffer, descriptor, acc_desc, 1, regions, in sp_memory_donate()
354 ffa_res = ffa_mem_donate_rxtx(buffer.used, buffer.used, handle); in sp_memory_donate()
363 struct ffa_mem_transaction_buffer *buffer) in sp_memory_donate_dynamic() argument
372 !is_valid_buffer(buffer)) { in sp_memory_donate_dynamic()
377 setup_descriptors(buffer, descriptor, acc_desc, 1, regions, in sp_memory_donate_dynamic()
380 page_count = buffer->length / FFA_MEM_TRANSACTION_PAGE_SIZE; in sp_memory_donate_dynamic()
381 ffa_res = ffa_mem_donate(buffer->used, buffer->used, buffer->buffer, in sp_memory_donate_dynamic()
398 struct ffa_mem_transaction_buffer buffer = { 0 }; in sp_memory_lend() local
411 sp_res = get_tx_buffer(&buffer); in sp_memory_lend()
417 setup_descriptors(&buffer, descriptor, acc_desc, acc_desc_count, in sp_memory_lend()
420 ffa_res = ffa_mem_lend_rxtx(buffer.used, buffer.used, handle); in sp_memory_lend()
430 struct ffa_mem_transaction_buffer *buffer) in sp_memory_lend_dynamic() argument
439 !region_count || !is_valid_buffer(buffer)) { in sp_memory_lend_dynamic()
444 setup_descriptors(buffer, descriptor, acc_desc, acc_desc_count, regions, in sp_memory_lend_dynamic()
447 page_count = buffer->length / FFA_MEM_TRANSACTION_PAGE_SIZE; in sp_memory_lend_dynamic()
448 ffa_res = ffa_mem_lend(buffer->used, buffer->used, buffer->buffer, in sp_memory_lend_dynamic()
465 struct ffa_mem_transaction_buffer buffer = { 0 }; in sp_memory_share() local
478 sp_res = get_tx_buffer(&buffer); in sp_memory_share()
484 setup_descriptors(&buffer, descriptor, acc_desc, acc_desc_count, in sp_memory_share()
487 ffa_res = ffa_mem_share_rxtx(buffer.used, buffer.used, handle); in sp_memory_share()
497 struct ffa_mem_transaction_buffer *buffer) in sp_memory_share_dynamic() argument
506 !region_count || !is_valid_buffer(buffer)) { in sp_memory_share_dynamic()
511 setup_descriptors(buffer, descriptor, acc_desc, acc_desc_count, regions, in sp_memory_share_dynamic()
514 page_count = buffer->length / FFA_MEM_TRANSACTION_PAGE_SIZE; in sp_memory_share_dynamic()
515 ffa_res = ffa_mem_share(buffer->used, buffer->used, buffer->buffer, in sp_memory_share_dynamic()
600 struct ffa_mem_transaction_buffer *buffer) in sp_memory_retrieve_dynamic() argument
612 !is_valid_buffer(buffer)) { in sp_memory_retrieve_dynamic()
617 setup_descriptors(buffer, descriptor, acc_desc, 1, regions, in sp_memory_retrieve_dynamic()
620 page_count = buffer->length / FFA_MEM_TRANSACTION_PAGE_SIZE; in sp_memory_retrieve_dynamic()
621 sp_res = ffa_mem_retrieve_req(buffer->used, buffer->used, in sp_memory_retrieve_dynamic()
622 buffer->buffer, page_count, in sp_memory_retrieve_dynamic()
638 buffer->used = resp_total_length; in sp_memory_retrieve_dynamic()
639 parse_descriptors(buffer, descriptor, acc_desc, 1, regions, in sp_memory_retrieve_dynamic()
654 struct ffa_mem_transaction_buffer buffer = { 0 }; in sp_memory_relinquish() local
663 sp_res = get_tx_buffer(&buffer); in sp_memory_relinquish()
670 assert(required_size < buffer.length); in sp_memory_relinquish()
672 relinquish_desc = (struct ffa_mem_relinquish_desc *)buffer.buffer; in sp_memory_relinquish()