Lines Matching defs:desc
23 * @desc_size: Size of @desc.
24 * @desc_filled: Size of @desc already received.
27 * @desc: FF-A memory region descriptor passed in ffa_mem_share.
33 struct ffa_mtd desc;
57 return desc_size + offsetof(struct spmc_shmem_obj, desc);
105 obj->desc = (struct ffa_mtd) {0};
156 if (obj->desc.handle == handle) {
194 * @desc: The memory transaction descriptor.
202 spmc_shmem_obj_get_emad(const struct ffa_mtd *desc, uint32_t index,
207 assert(index < desc->emad_count);
214 emad = (uint8_t *)desc + offsetof(struct ffa_mtd_v1_0, emad);
217 assert(is_aligned(desc->emad_offset, 16));
218 emad = ((uint8_t *) desc + desc->emad_offset);
219 *emad_size = desc->emad_size;
243 struct ffa_emad_v1_0 *emad = spmc_shmem_obj_get_emad(&obj->desc, 0,
254 ((uint8_t *)(&obj->desc) + emad->comp_mrd_offset);
268 struct ffa_mtd *desc = &obj->desc;
272 for (unsigned int i = 0U; i < desc->emad_count; i++) {
276 emad = spmc_shmem_obj_get_emad(desc, i,
284 (uintptr_t)((uint8_t *) desc + desc_size)) {
439 struct ffa_mtd_v1_0 *mtd_orig = (struct ffa_mtd_v1_0 *) &orig->desc;
440 struct ffa_mtd *out = &out_obj->desc;
532 struct ffa_mtd *mtd_orig = &orig->desc;
533 struct ffa_mtd_v1_0 *out = (struct ffa_mtd_v1_0 *) &out_obj->desc;
647 &orig_obj->desc, orig_obj->desc_size);
670 memcpy(dst, (uint8_t *) &v1_0_obj->desc + offset, *copy_size);
683 spmc_validate_mtd_start(struct ffa_mtd *desc, uint32_t ffa_version,
705 if (desc->emad_count == 0U) {
706 WARN("%s: unsupported attribute desc count %u.\n",
707 __func__, desc->emad_count);
718 if (!is_aligned(desc->emad_offset, 16)) {
720 __func__, desc->emad_offset);
723 if (desc->emad_offset < sizeof(struct ffa_mtd)) {
725 __func__, desc->emad_offset,
729 emad_offset = desc->emad_offset;
730 if (desc->emad_size < sizeof(struct ffa_emad_v1_0)) {
732 desc->emad_size, sizeof(struct ffa_emad_v1_0));
735 if (!is_aligned(desc->emad_size, 16)) {
737 __func__, desc->emad_size);
740 emad_size = desc->emad_size;
751 CASSERT(sizeof(desc->emad_count) == 4, assert_emad_count_max_too_large);
752 emad_end = (desc->emad_count * (unsigned long long)emad_size) +
799 if (spmc_validate_mtd_start(&obj->desc, ffa_version,
806 first_emad = spmc_shmem_obj_get_emad(&obj->desc, 0,
808 end_emad = emad_advance(first_emad, obj->desc.emad_count * emad_size);
859 (const uint8_t *)&obj->desc);
900 ((const uint8_t *)(&obj->desc) + comp_mrd_offset);
903 WARN("%s: invalid object, desc count %u != %zu\n",
942 WARN("%s: invalid object, desc total_page_count %u != %llu\n",
982 if ((obj->desc.handle != inflight_obj->desc.handle) &&
1033 memcpy((uint8_t *)&obj->desc + obj->desc_filled,
1037 if (ffa_is_secure_world_id(obj->desc.sender_id)) {
1039 __func__, obj->desc.sender_id);
1045 if ((obj->desc.memory_region_attributes & FFA_MEM_ATTR_NS_BIT) != 0U) {
1055 if (obj->desc.flags != 0U && mtd_flag != 0U &&
1056 (obj->desc.flags != mtd_flag)) {
1058 __func__, obj->desc.flags, mtd_flag);
1065 ret = spmc_validate_mtd_start(&obj->desc, ffa_version,
1071 obj->desc.handle = spmc_shmem_obj_state.next_handle++;
1072 obj->desc.flags |= mtd_flag;
1077 handle_low = (uint32_t)obj->desc.handle;
1078 handle_high = obj->desc.handle >> 32;
1083 (uint32_t)obj->desc.sender_id << 16, 0, 0, 0);
1109 spmc_shm_get_v1_1_descriptor_size((void *) &obj->desc,
1139 mem_handle = obj->desc.handle;
1151 ret = plat_spmc_shmem_begin(&obj->desc);
1301 desc_sender_id = (uint32_t)obj->desc.sender_id << 16;
1310 WARN("%s: object desc already filled, %zu\n", __func__,
1444 WARN("%s: unsupported attribute desc count %u.\n",
1445 __func__, obj->desc.emad_count);
1472 WARN("%s: incomplete object desc filled %zu < size %zu\n",
1478 if (req->emad_count != 0U && req->sender_id != obj->desc.sender_id) {
1480 __func__, req->sender_id, obj->desc.sender_id);
1485 if (req->emad_count != 0U && req->tag != obj->desc.tag) {
1487 __func__, req->tag, obj->desc.tag);
1492 if (req->emad_count != 0U && req->emad_count != obj->desc.emad_count) {
1494 __func__, req->emad_count, obj->desc.emad_count);
1508 (obj->desc.flags & FFA_MTD_FLAG_TYPE_MASK)) {
1514 __func__, req->flags, obj->desc.flags);
1570 for (size_t j = 0; j < obj->desc.emad_count; j++) {
1572 &obj->desc, j, MAKE_FFA_VERSION(1, 1),
1613 memcpy(resp, &obj->desc, copy_size);
1683 desc_sender_id = (uint32_t)obj->desc.sender_id << 16;
1736 src = &obj->desc;
1914 WARN("%s: incomplete object desc filled %zu < size %zu\n",
1921 ret = plat_spmc_shmem_reclaim(&obj->desc);