-int
-__elf_populate_mapped(struct mm_region* region, void* pg, off_t segfoff)
-{
- size_t segsz = region->flen;
- size_t segmoff = segfoff - region->foff;
-
- if (segmoff >= segsz) {
- return 0;
- }
-
- struct v_file* file = region->mfile;
- size_t rdlen = MIN(segsz - segmoff, PG_SIZE);
-
- if (rdlen == PG_SIZE) {
- // This is because we want to exploit any optimization on read_page
- return file->ops->read_page(file->inode, pg, PG_SIZE, segfoff);
- } else {
- // we don't want to over-read the segment!
- return file->ops->read(file->inode, pg, rdlen, segfoff);
- }
-}
-