Lines Matching refs:subsec
284 oav2_subsection_size (const obj_attr_subsection_v2_t *subsec)
287 size += strlen (subsec->name) + 1; /* <subsection-name: NTBS> so +1 for '\0'. */
290 for (const obj_attr_v2_t *attr = subsec->first;
293 size += oav2_attr_size (attr, subsec->encoding);
301 const obj_attr_subsection_v2_t *subsec
303 if (subsec == NULL)
307 for (; subsec != NULL; subsec = subsec->next)
308 size += oav2_subsection_size (subsec);
456 const obj_attr_subsection_v2_t *subsec,
460 bfd_vma subsec_size = oav2_subsection_size (subsec);
465 size_t vendor_name_size = strlen (subsec->name) + 1; /* +1 for '\0'. */
466 memcpy (p, subsec->name, vendor_name_size);
471 bfd_put_8 (abfd, subsec->optional, p);
474 bfd_put_8 (abfd, obj_attr_encoding_v2_to_u8 (subsec->encoding), p);
477 for (const obj_attr_v2_t *attr = subsec->first;
480 p = oav2_write_attr (p, attr, subsec->encoding);
501 for (const obj_attr_subsection_v2_t *subsec
503 subsec != NULL;
504 subsec = subsec->next)
505 p = oav2_write_subsection (abfd, subsec, p);
519 for (obj_attr_subsection_v2_t *subsec = plist->first;
520 subsec != NULL;
521 subsec = subsec->next)
522 LINKED_LIST_MERGE_SORT (obj_attr_v2_t) (subsec, _bfd_elf_obj_attr_v2_cmp);
649 tags registered in the known subsection SUBSEC. Return the tag information
652 identify_tag (const known_subsection_v2_t *subsec, obj_attr_tag_t tag)
654 for (unsigned i = 0; i < subsec->len; ++i)
656 const obj_attr_info_t *known_attr = &subsec->known_attrs[i];
665 /* Return the attribute information associated to the pair SUBSEC, TAG if it
679 /* To-string function for the pair <SUBSEC, TAG>.
843 for (const obj_attr_subsection_v2_t *subsec
845 subsec != NULL;
846 subsec = subsec->next)
847 be->translate_obj_attrs_to_gnu_props (abfd, subsec);
854 oav2_compact_tags (const bfd *abfd, obj_attr_subsection_v2_t *subsec)
858 for (obj_attr_v2_t *a = subsec->first;
874 (subsec->encoding == OA_ENC_ULEB128 ||
878 if ((subsec->encoding == OA_ENC_ULEB128
880 || (subsec->encoding == OA_ENC_NTBS
884 LINKED_LIST_REMOVE (obj_attr_v2_t) (subsec, dup_attr);
885 _bfd_elf_obj_attr_v2_free (dup_attr, subsec->encoding);
899 (get_elf_backend_data (abfd), subsec->name, a->tag);
901 if (subsec->encoding == OA_ENC_ULEB128)
905 abfd, tag_s, a->val.uint, a->next->val.uint, subsec->name);
906 else /* (subsec->encoding == OA_ENC_NTBS) */
910 abfd, tag_s, a->val.string, a->next->val.string, subsec->name);
1028 obj_attr_subsection_v2_t *subsec = subsecs->first;
1029 while (subsec != NULL && subsec->next != NULL)
1032 = bfd_obj_attr_subsection_v2_find_by_name (subsec->next,
1033 subsec->name,
1038 success &= oav2_subsection_destructive_merge (abfd, subsec, dup_subsec);
1041 subsec = subsec->next;
1055 for (obj_attr_subsection_v2_t *subsec = elf_obj_attr_subsections (abfd).first;
1056 subsec != NULL;
1057 subsec = subsec->next)
1059 if (bfd_obj_attr_v2_identify_subsection (bed, subsec->name) == NULL)
1060 subsec->status = obj_attr_subsection_v2_unknown;
1068 const obj_attr_subsection_v2_t *subsec,
1074 = _bfd_obj_attr_v2_find_known_by_tag (bed, subsec->name, attr->tag);
1078 if (subsec->encoding == OA_ENC_ULEB128)
1086 && bed->obj_attr_v2_default_value (info, attr_info, subsec, attr))
1088 else if (subsec->encoding == OA_ENC_NTBS)
1106 const obj_attr_subsection_v2_t *subsec,
1109 obj_attr_v2_t *new_attr = _bfd_elf_obj_attr_v2_copy (attr, subsec->encoding);
1110 oav2_attr_overwrite_with_default (info, subsec, new_attr);
1126 /* Determine which merge policy will be applied to SUBSEC. The GNU policy are
1151 const obj_attr_subsection_v2_t *subsec,
1155 BFD_ASSERT (subsec->encoding == OA_ENC_ULEB128);
1172 const obj_attr_subsection_v2_t *subsec,
1176 BFD_ASSERT (subsec->encoding == OA_ENC_ULEB128);
1194 const obj_attr_subsection_v2_t *subsec,
1198 BFD_ASSERT (subsec->encoding == OA_ENC_NTBS);
1250 const obj_attr_subsection_v2_t *subsec,
1276 subsec, lhs, rhs, frozen);
1287 && (policy = gnu_testing_merge_subsection (subsec->name))
1295 res = _bfd_obj_attr_v2_merge_AND (info, abfd, subsec, lhs, rhs, frozen);
1297 res = obj_attr_v2_merge_OR (info, abfd, subsec, lhs, rhs, frozen);
1299 res = obj_attr_v2_merge_ADD (info, abfd, subsec, lhs, rhs, frozen);
1322 SUBSEC. */
1325 const obj_attr_subsection_v2_t *subsec)
1328 (xstrdup (subsec->name), subsec->scope, subsec->optional, subsec->encoding);
1330 for (const obj_attr_v2_t *attr = subsec->first;
1660 const obj_attr_subsection_v2_t *subsec)
1664 subsec->name);
1670 if (subsec_info->encoding != subsec->encoding)
1675 abfd, "encoding", subsec->name,
1676 bfd_oav2_encoding_to_string (subsec->encoding),
1680 if (subsec_info->optional != subsec->optional)
1685 abfd, "comprehension", subsec->name,
1686 bfd_oav2_comprehension_to_string (subsec->optional),
2053 oav2_attr_delete (obj_attr_subsection_v2_t *subsec,
2057 LINKED_LIST_REMOVE (obj_attr_v2_t) (subsec, attr);
2058 _bfd_elf_obj_attr_v2_free (attr, subsec->encoding);
2065 obj_attr_subsection_v2_t *subsec)
2067 obj_attr_subsection_v2_t *next = subsec->next;
2068 LINKED_LIST_REMOVE (obj_attr_subsection_v2_t) (plist, subsec);
2069 _bfd_elf_obj_attr_subsection_v2_free (subsec);
2077 obj_attr_subsection_v2_t *subsec)
2080 for (obj_attr_v2_t *attr = subsec->first;
2086 = _bfd_obj_attr_v2_tag_to_string (bed, subsec->name, attr->tag);
2088 (_("Removed attribute '%s' from '%s'\n"), tag_s, subsec->name);
2090 attr = oav2_attr_delete (subsec, attr);
2103 for (obj_attr_subsection_v2_t *subsec = plist->first;
2104 subsec != NULL;)
2106 if (subsec->status == obj_attr_subsection_v2_ok)
2107 oav2_attrs_prune_nok (info, subsec);
2109 if (subsec->size == 0 || subsec->status != obj_attr_subsection_v2_ok)
2111 info->callbacks->minfo (_("Removed subsection '%s'\n"), subsec->name);
2112 subsec = oav2_subsec_delete (plist, subsec);
2115 subsec = subsec->next;
2720 obj_attr_subsection_v2_t **subsec)
2722 *subsec = NULL;
2836 *subsec = bfd_elf_obj_attr_subsection_v2_init
2846 LINKED_LIST_APPEND (obj_attr_v2_t) (*subsec, attr);
2854 _bfd_elf_obj_attr_subsection_v2_free (*subsec);
2855 *subsec = NULL;
2881 obj_attr_subsection_v2_t *subsec = NULL;
2882 read = oav2_parse_subsection (abfd, cursor, remaining, &subsec);
2892 LINKED_LIST_APPEND (obj_attr_subsection_v2_t) (subsecs, subsec);
3190 /* Return an object attribute in SUBSEC matching TAG or NULL if one is not
3195 bfd_obj_attr_v2_find_by_tag (const obj_attr_subsection_v2_t *subsec,
3199 for (obj_attr_v2_t *attr = subsec->first;
3223 void bfd_obj_attr_subsection_v2_append (obj_attr_subsection_v2_t *subsec,
3226 LINKED_LIST_APPEND (obj_attr_v2_t) (subsec, attr);
3252 /* Free memory allocated by the object attribute subsection SUBSEC. */
3255 _bfd_elf_obj_attr_subsection_v2_free (obj_attr_subsection_v2_t *subsec)
3257 obj_attr_v2_t *attr = subsec->first;
3262 _bfd_elf_obj_attr_v2_free (a, subsec->encoding);
3265 free ((char *) subsec->name);
3266 free (subsec);
3379 obj_attr_subsection_v2_t *subsec)
3381 LINKED_LIST_APPEND (obj_attr_subsection_v2_t) (l, subsec);
3388 obj_attr_subsection_v2_t *subsec)
3390 return LINKED_LIST_REMOVE (obj_attr_subsection_v2_t) (l, subsec);