Lines Matching refs:ar_hdr
728 struct ar_hdr hdrm;
729 struct ar_hdr *hdr;
738 || elf->maximum_size - offset < sizeof (struct ar_hdr))
742 hdr = (struct ar_hdr *) (elf->map_address + offset);
775 offset += sizeof (struct ar_hdr) + ((len + 1) & ~1l);
781 if (len > elf->maximum_size - offset - sizeof (struct ar_hdr))
798 + sizeof (struct ar_hdr),
805 + sizeof (struct ar_hdr))
850 struct ar_hdr *ar_hdr;
859 - elf->state.ar.offset) < sizeof (struct ar_hdr)))
865 ar_hdr = (struct ar_hdr *) (elf->map_address + elf->state.ar.offset);
869 ar_hdr = &elf->state.ar.ar_hdr;
871 if (unlikely (pread_retry (elf->fildes, ar_hdr, sizeof (struct ar_hdr),
873 != sizeof (struct ar_hdr)))
882 if (unlikely (memcmp (ar_hdr->ar_fmag, ARFMAG, 2) != 0))
890 *((char *) mempcpy (elf->state.ar.raw_name, ar_hdr->ar_name, 16)) = '\0';
894 /* Now convert the `struct ar_hdr' into `Elf_Arhdr'.
896 if (ar_hdr->ar_name[0] == '/')
898 if (ar_hdr->ar_name[1] == ' '
899 && memcmp (ar_hdr->ar_name, "/ ", 16) == 0)
902 else if (ar_hdr->ar_name[1] == 'S'
903 && memcmp (ar_hdr->ar_name, "/SYM64/ ", 16) == 0)
906 else if (ar_hdr->ar_name[1] == '/'
907 && memcmp (ar_hdr->ar_name, "// ", 16) == 0)
910 else if (likely (isdigit (ar_hdr->ar_name[1])))
925 offset = atol (ar_hdr->ar_name + 1);
946 endp = (char *) memccpy (elf->state.ar.ar_name, ar_hdr->ar_name,
963 if (unlikely (ar_hdr->ar_size[0] == ' '))
975 for the case where the whole field in the `struct ar_hdr' is
983 char buf[sizeof (ar_hdr->FIELD) + 1]; \
984 const char *string = ar_hdr->FIELD; \
985 if (ar_hdr->FIELD[sizeof (ar_hdr->FIELD) - 1] != ' ') \
987 *((char *) mempcpy (buf, ar_hdr->FIELD, sizeof (ar_hdr->FIELD))) \
1001 char buf[sizeof (ar_hdr->FIELD) + 1]; \
1002 const char *string = ar_hdr->FIELD; \
1003 if (ar_hdr->FIELD[sizeof (ar_hdr->FIELD) - 1] != ' ') \
1005 *((char *) mempcpy (buf, ar_hdr->FIELD, sizeof (ar_hdr->FIELD))) \
1033 - elf->state.ar.offset - sizeof (struct ar_hdr));
1092 result = read_file (fildes, ref->state.ar.offset + sizeof (struct ar_hdr),