Lines Matching defs:tnf
60 _tnf_init_tags(TNF *tnf)
62 if ((tnf->tag_table = calloc(TAGTABCNT, sizeof (struct taginfo *)))
65 if ((tnf->tag_directory = calloc(TAGDIRCNT(tnf->directory_size),
77 _tnf_fini_tags(TNF *tnf)
86 info = tnf->tag_table[i];
102 free(tnf->tag_table);
103 tnf->tag_table = NULL;
104 free(tnf->tag_directory);
105 tnf->tag_directory = NULL;
115 _tnf_get_info(TNF *tnf, tnf_ref32_t *tag)
119 bucket = tnf->tag_table[TAGHASH(tnf, tag)];
125 return (add_info(tnf, tag));
134 _tnf_record_info(TNF *tnf, tnf_ref32_t *record)
141 ref32 = _GET_INT32(tnf, record);
151 if ((info = tnf->tag_directory[index]) != NULL)
154 info = _tnf_get_info(tnf, _tnf_get_tag(tnf, record));
156 return ((tnf->tag_directory[index] = info));
161 return (_tnf_get_info(tnf, _tnf_get_tag(tnf, record)));
169 add_info(TNF *tnf, tnf_ref32_t *tag)
178 info->tnf = tnf;
180 info->name = _tnf_get_name(tnf, tag);
181 info->props = _tnf_get_props(tnf, tag);
182 info->kind = _tnf_get_kind(tnf, tag);
183 info->size = _tnf_get_storage_size(tnf, tag);
184 info->align = _tnf_get_align(tnf, tag);
187 hash = TAGHASH(tnf, tag);
188 bucket = tnf->tag_table[hash];
190 tnf->tag_table[hash] = info;
193 meta = _tnf_get_tag(tnf, tag);
194 info->meta = _tnf_get_info(tnf, meta);
202 return (init_derived_info(tnf, tag, info));
204 return (init_struct_info(tnf, tag, info));
206 return (init_array_info(tnf, tag, info));
208 return (init_scalar_info(tnf, tag, info));
210 return (init_abstract_info(tnf, tag, info));
220 init_abstract_info(TNF *tnf, tnf_ref32_t *tag, struct taginfo *info)
224 _tnf_error(tnf, TNF_ERR_INTERNAL);
226 _tnf_error(tnf, TNF_ERR_BADTNF);
235 init_derived_info(TNF *tnf, tnf_ref32_t *tag, struct taginfo *info)
240 _tnf_error(tnf, TNF_ERR_INTERNAL);
243 base_tag = _tnf_get_base_tag(tnf, tag);
244 info->base = _tnf_get_info(tnf, base_tag);
255 init_scalar_info(TNF *tnf, tnf_ref32_t *tag, struct taginfo *info)
259 _tnf_error(tnf, TNF_ERR_INTERNAL);
261 _tnf_error(tnf, TNF_ERR_BADTNF);
273 init_struct_info(TNF *tnf, tnf_ref32_t *tag, struct taginfo *info)
277 _tnf_error(tnf, TNF_ERR_INTERNAL);
279 _tnf_error(tnf, TNF_ERR_BADTNF);
282 init_slots(tnf, tag, info);
292 init_array_info(TNF *tnf, tnf_ref32_t *tag, struct taginfo *info)
299 _tnf_error(tnf, TNF_ERR_INTERNAL);
307 _tnf_error(tnf, TNF_ERR_BADTNF);
310 info->hdrsize = _tnf_get_header_size(tnf, tag);
314 _tnf_error(tnf, TNF_ERR_BADTNF);
317 init_slots(tnf, tag, info);
320 elt_tag = (tnf_ref32_t *)_tnf_get_slot_typed(tnf, tag,
324 info->base = elt_tag ? _tnf_get_info(tnf, elt_tag): NULL;
334 init_slots(TNF *tnf, tnf_ref32_t *tag, struct taginfo *info)
343 _tnf_get_slot_typed(tnf, tag, TNF_N_SLOT_TYPES);
346 _tnf_get_slot_typed(tnf, tag, TNF_N_SLOT_NAMES);
352 count = _tnf_get_element_count(tnf, slot_types, sizeof (tnf_ref32_t));
354 types = (tnf_ref32_t *)_tnf_get_elements(tnf, slot_types);
357 (tnf_ref32_t *)_tnf_get_elements(tnf, slot_names));
362 _tnf_error(tnf, TNF_ERR_ALLOCFAIL);
373 type_elt = _GET_REF32(tnf, &types[i]);
374 name_elt = names ? _GET_REF32(tnf, &names[i]) : TNF_NULL;
377 elt_info = _tnf_get_info(tnf, type_elt);
381 _tnf_get_chars(tnf, name_elt) :
382 _tnf_get_name(tnf, type_elt));