• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/cxxfilt-11/cxxfilt/binutils/

Lines Matching defs:cwi

397 #define putcwi_16(cwi, v, s) \
398 ((cwi->big_endian) ? bfd_putb16 ((v), (s)) : bfd_putl16 ((v), (s)))
399 #define putcwi_32(cwi, v, s) \
400 ((cwi->big_endian) ? bfd_putb32 ((v), (s)) : bfd_putl32 ((v), (s)))
424 struct coff_write_info cwi;
479 cwi.abfd = abfd;
480 cwi.big_endian = bfd_big_endian (abfd);
481 cwi.sympp = sec->symbol_ptr_ptr;
482 cwi.dirsize = 0;
483 cwi.dirstrsize = 0;
484 cwi.dataentsize = 0;
485 cwi.dirs.d = NULL;
486 cwi.dirs.last = NULL;
487 cwi.dirs.length = 0;
488 cwi.dirstrs.d = NULL;
489 cwi.dirstrs.last = NULL;
490 cwi.dirstrs.length = 0;
491 cwi.dataents.d = NULL;
492 cwi.dataents.last = NULL;
493 cwi.dataents.length = 0;
494 cwi.resources.d = NULL;
495 cwi.resources.last = NULL;
496 cwi.resources.length = 0;
497 cwi.relocs = NULL;
498 cwi.reloc_count = 0;
502 coff_bin_sizes (resources, &cwi);
506 cwi.dirstrsize = (cwi.dirstrsize + 3) &~ 3;
509 coff_to_bin (resources, &cwi);
513 if ((cwi.dirstrs.length & 3) != 0)
517 ex = coff_alloc (&cwi.dirstrs, 2);
524 assert (cwi.dirs.length == cwi.dirsize);
525 assert (cwi.dirstrs.length == cwi.dirstrsize);
526 assert (cwi.dataents.length == cwi.dataentsize);
528 length = (cwi.dirsize
529 + cwi.dirstrsize
530 + cwi.dataentsize
531 + cwi.resources.length);
536 bfd_set_reloc (abfd, sec, cwi.relocs, cwi.reloc_count);
539 for (d = cwi.dirs.d; d != NULL; d = d->next)
545 for (d = cwi.dirstrs.d; d != NULL; d = d->next)
551 for (d = cwi.dataents.d; d != NULL; d = d->next)
557 for (d = cwi.resources.d; d != NULL; d = d->next)
570 free (cwi.relocs);
578 struct coff_write_info *cwi)
582 cwi->dirsize += sizeof (struct extern_res_directory);
586 cwi->dirsize += sizeof (struct extern_res_entry);
589 cwi->dirstrsize += re->id.u.n.length * 2 + 2;
592 coff_bin_sizes (re->u.dir, cwi);
594 cwi->dataentsize += sizeof (struct extern_res_data);
624 coff_to_bin (const struct res_directory *resdir, struct coff_write_info *cwi)
634 coff_alloc (&cwi->dirs, sizeof (*erd)));
636 putcwi_32 (cwi, resdir->characteristics, erd->characteristics);
637 putcwi_32 (cwi, resdir->time, erd->time);
638 putcwi_16 (cwi, resdir->major, erd->major);
639 putcwi_16 (cwi, resdir->minor, erd->minor);
651 putcwi_16 (cwi, cn, erd->name_count);
652 putcwi_16 (cwi, ci, erd->id_count);
659 coff_alloc (&cwi->dirs, (ci + cn) * sizeof (*ere)));
663 putcwi_32 (cwi, e->id.u.id, ere->name);
672 putcwi_32 (cwi,
673 0x80000000 | (cwi->dirsize + cwi->dirstrs.length),
676 str = coff_alloc (&cwi->dirstrs, e->id.u.n.length * 2 + 2);
677 putcwi_16 (cwi, e->id.u.n.length, str);
679 putcwi_16 (cwi, e->id.u.n.name[i], str + i * 2 + 2);
684 putcwi_32 (cwi, 0x80000000 | cwi->dirs.length, ere->rva);
685 coff_to_bin (e->u.dir, cwi);
689 putcwi_32 (cwi,
690 cwi->dirsize + cwi->dirstrsize + cwi->dataents.length,
693 coff_res_to_bin (e->u.res, cwi);
701 coff_res_to_bin (const struct res_resource *res, struct coff_write_info *cwi)
716 r->sym_ptr_ptr = cwi->sympp;
717 r->address = cwi->dirsize + cwi->dirstrsize + cwi->dataents.length;
719 r->howto = bfd_reloc_type_lookup (cwi->abfd, BFD_RELOC_RVA);
723 cwi->relocs = xrealloc (cwi->relocs,
724 (cwi->reloc_count + 2) * sizeof (arelent *));
725 cwi->relocs[cwi->reloc_count] = r;
726 cwi->relocs[cwi->reloc_count + 1] = NULL;
727 ++cwi->reloc_count;
729 erd = (struct extern_res_data *) coff_alloc (&cwi->dataents, sizeof (*erd));
731 putcwi_32 (cwi,
732 (cwi->dirsize
733 + cwi->dirstrsize
734 + cwi->dataentsize
735 + cwi->resources.length),
737 putcwi_32 (cwi, res->coff_info.codepage, erd->codepage);
738 putcwi_32 (cwi, res->coff_info.reserved, erd->reserved);
740 d = res_to_bin (res, cwi->big_endian);
742 if (cwi->resources.d == NULL)
743 cwi->resources.d = d;
745 cwi->resources.last->next = d;
751 cwi->resources.last = d;
752 cwi->resources.length += length;
754 putcwi_32 (cwi, length, erd->size);
765 ex = coff_alloc (&cwi->resources, add);