1.1 --- a/libexec/lib/src/segment.cc Sun May 22 23:46:17 2022 +0200
1.2 +++ b/libexec/lib/src/segment.cc Tue May 24 00:34:05 2022 +0200
1.3 @@ -73,30 +73,14 @@
1.4
1.5 long Segment::fill(file_t *file)
1.6 {
1.7 - /* NOTE: This should be replaced by copy-on-write dataspace usage. */
1.8 -
1.9 - if (_flags & L4RE_RM_F_W)
1.10 - {
1.11 - long err = allocate();
1.12 -
1.13 - if (err)
1.14 - return err;
1.15 -
1.16 - client_seek(file, _file_offset - _region_offset, SEEK_SET);
1.17 - offset_t nread = client_read(file, _buf, _region_size);
1.18 -
1.19 - memset(_buf, 0, _region_offset);
1.20 - memset(_buf + _region_offset + _file_contents, 0, _region_size - _region_offset - _file_contents);
1.21 -
1.22 - if (nread < _file_contents)
1.23 - return -L4_EIO;
1.24 - else
1.25 - return L4_EOK;
1.26 - }
1.27 -
1.28 /* Provide the exposed file contents in a masked memory mapped region. */
1.29
1.30 - _buf = (char *) client_mmap(file, _file_offset - _region_offset, _region_size, 0, 0, _flags);
1.31 + _buf = (char *) client_mmap(file,
1.32 + _file_offset - _region_offset,
1.33 + _region_size,
1.34 + _file_offset,
1.35 + _file_offset + _file_contents,
1.36 + _flags);
1.37
1.38 if (_buf == NULL)
1.39 return -L4_EIO;