Home | History | Annotate | Download | only in mac

Lines Matching refs:Segment

196   fprintf(stderr, "%s: the load command for segment '%s'"
202 fprintf(stderr, "%s: the segment '%s' claims its contents lie beyond"
207 const string &segment) {
208 fprintf(stderr, "%s: the section '%s' in segment '%s'"
209 " claims its contents lie outside the segment's contents\n",
210 filename_.c_str(), section.c_str(), segment.c_str());
337 Segment segment;
338 segment.bits_64 = (type == LC_SEGMENT_64);
339 size_t word_size = segment.bits_64 ? 8 : 4;
340 cursor.CString(&segment.name, 16);
343 .Read(word_size, false, &segment.vmaddr)
344 .Read(word_size, false, &segment.vmsize)
347 cursor >> segment.maxprot
348 >> segment.initprot
349 >> segment.nsects
350 >> segment.flags;
357 reporter_->MisplacedSegmentData(segment.name);
365 segment.contents.start = segment.contents.end = NULL;
367 segment.contents.start = buffer_.start + file_offset;
368 segment.contents.end = segment.contents.start + file_size;
371 segment.section_list.start = cursor.here();
372 segment.section_list.end = command.end;
374 if (!handler->SegmentCommand(segment))
417 // A load command handler that looks for a segment of a given name.
420 // Create a load command handler that looks for a segment named NAME,
421 // and sets SEGMENT to describe it if found.
422 SegmentFinder(const string &name, Segment *segment)
423 : name_(name), segment_(segment), found_() { }
425 // Return true if the traversal found the segment, false otherwise.
428 bool SegmentCommand(const Segment &segment) {
429 if (segment.name == name_) {
430 *segment_ = segment;
438 // The name of the segment our creator is looking for.
441 // Where we should store the segment if found. (WEAK)
442 Segment *segment_;
444 // True if we found the segment.
448 bool Reader::FindSegment(const string &name, Segment *segment) const {
449 SegmentFinder finder(name, segment);
454 bool Reader::WalkSegmentSections(const Segment &segment,
456 size_t word_size = segment.bits_64 ? 8 : 4;
457 ByteCursor cursor(&segment.section_list, big_endian_);
459 segment.nsects; i++) {
461 section.bits_64 = segment.bits_64;
479 reporter_->SectionsMissing(segment.name);
485 } else if (segment.contents.start == NULL &&
486 segment.contents.end == NULL) {
495 if (offset < size_t(segment.contents.start - buffer_.start) ||
496 offset > size_t(segment.contents.end - buffer_.start) ||
497 size > size_t(segment.contents.end - buffer_.start - offset)) {
512 // given segment.
527 bool Reader::MapSegmentSections(const Segment &segment,
531 return WalkSegmentSections(segment, &mapper);