Lines Matching refs:attr

38 	struct ATTRIB *attr;  in mi_new_attt_id()  local
52 attr = NULL; in mi_new_attt_id()
55 attr = mi_enum_attr(mi, attr); in mi_new_attt_id()
56 if (!attr) { in mi_new_attt_id()
62 t16 = le16_to_cpu(attr->id); in mi_new_attt_id()
65 attr = NULL; in mi_new_attt_id()
186 struct ATTRIB *mi_enum_attr(struct mft_inode *mi, struct ATTRIB *attr) in mi_enum_attr() argument
193 if (!attr) { in mi_enum_attr()
210 attr = Add2Ptr(rec, off); in mi_enum_attr()
213 off = PtrOffset(rec, attr); in mi_enum_attr()
217 asize = le32_to_cpu(attr->size); in mi_enum_attr()
223 attr = Add2Ptr(attr, asize); in mi_enum_attr()
227 asize = le32_to_cpu(attr->size); in mi_enum_attr()
235 if (attr->type == ATTR_END) { in mi_enum_attr()
241 t32 = le32_to_cpu(attr->type); in mi_enum_attr()
250 if (!attr->non_res) { in mi_enum_attr()
254 t16 = le16_to_cpu(attr->res.data_off); in mi_enum_attr()
259 t32 = le32_to_cpu(attr->res.data_size); in mi_enum_attr()
263 return attr; in mi_enum_attr()
267 if (attr->name_len && in mi_enum_attr()
268 le16_to_cpu(attr->name_off) + sizeof(short) * attr->name_len > in mi_enum_attr()
269 le16_to_cpu(attr->nres.run_off)) { in mi_enum_attr()
273 if (attr->nres.svcn || !is_attr_ext(attr)) { in mi_enum_attr()
277 if (attr->nres.c_unit) in mi_enum_attr()
282 return attr; in mi_enum_attr()
288 struct ATTRIB *mi_find_attr(struct mft_inode *mi, struct ATTRIB *attr, in mi_find_attr() argument
296 attr = mi_enum_attr(mi, attr); in mi_find_attr()
297 if (!attr) in mi_find_attr()
300 atype = le32_to_cpu(attr->type); in mi_find_attr()
307 if (attr->name_len != name_len) in mi_find_attr()
310 if (name_len && memcmp(attr_name(attr), name, name_len * sizeof(short))) in mi_find_attr()
313 if (id && *id != attr->id) in mi_find_attr()
316 return attr; in mi_find_attr()
407 struct ATTRIB *attr; in mi_insert_attr() local
423 attr = NULL; in mi_insert_attr()
424 while ((attr = mi_enum_attr(mi, attr))) { in mi_insert_attr()
425 diff = compare_attr(attr, type, name, name_len, upcase); in mi_insert_attr()
430 if (!diff && !is_attr_indexed(attr)) in mi_insert_attr()
435 if (!attr) { in mi_insert_attr()
437 attr = Add2Ptr(rec, used - 8); in mi_insert_attr()
439 tail = used - PtrOffset(rec, attr); in mi_insert_attr()
444 memmove(Add2Ptr(attr, asize), attr, tail); in mi_insert_attr()
445 memset(attr, 0, asize); in mi_insert_attr()
447 attr->type = type; in mi_insert_attr()
448 attr->size = cpu_to_le32(asize); in mi_insert_attr()
449 attr->name_len = name_len; in mi_insert_attr()
450 attr->name_off = cpu_to_le16(name_off); in mi_insert_attr()
451 attr->id = id; in mi_insert_attr()
453 memmove(Add2Ptr(attr, name_off), name, name_len * sizeof(short)); in mi_insert_attr()
458 return attr; in mi_insert_attr()
467 struct ATTRIB *attr) in mi_remove_attr() argument
470 u32 aoff = PtrOffset(rec, attr); in mi_remove_attr()
472 u32 asize = le32_to_cpu(attr->size); in mi_remove_attr()
477 if (ni && is_attr_indexed(attr)) { in mi_remove_attr()
483 memmove(attr, Add2Ptr(attr, asize), used - aoff); in mi_remove_attr()
491 bool mi_resize_attr(struct mft_inode *mi, struct ATTRIB *attr, int bytes) in mi_resize_attr() argument
494 u32 aoff = PtrOffset(rec, attr); in mi_resize_attr()
496 u32 nsize, asize = le32_to_cpu(attr->size); in mi_resize_attr()
497 u32 rsize = le32_to_cpu(attr->res.data_size); in mi_resize_attr()
509 next = Add2Ptr(attr, asize); in mi_resize_attr()
532 attr->size = cpu_to_le32(nsize); in mi_resize_attr()
533 if (!attr->non_res) in mi_resize_attr()
534 attr->res.data_size = cpu_to_le32(rsize); in mi_resize_attr()
540 int mi_pack_runs(struct mft_inode *mi, struct ATTRIB *attr, in mi_pack_runs() argument
548 CLST svcn = le64_to_cpu(attr->nres.svcn); in mi_pack_runs()
550 u32 aoff = PtrOffset(rec, attr); in mi_pack_runs()
551 u32 asize = le32_to_cpu(attr->size); in mi_pack_runs()
552 char *next = Add2Ptr(attr, asize); in mi_pack_runs()
553 u16 run_off = le16_to_cpu(attr->nres.run_off); in mi_pack_runs()
562 err = run_pack(run, svcn, len, Add2Ptr(attr, run_off), run_size + dsize, in mi_pack_runs()
573 attr->size = cpu_to_le32(asize + new_run_size - run_size); in mi_pack_runs()
574 attr->nres.evcn = cpu_to_le64(svcn + plen - 1); in mi_pack_runs()