Introduce mmap_file function
authorSimon Marchi <simon.marchi@ericsson.com>
Tue, 7 Aug 2018 22:10:29 +0000 (18:10 -0400)
committerSimon Marchi <simon.marchi@ericsson.com>
Tue, 7 Aug 2018 22:10:29 +0000 (18:10 -0400)
commit5c831bb1eb6b22cd1705b98188b7d1b0633e7c54
tree4c8000b9288db41ff690633006361b0f69a370a7
parent4485a1c1d8d2b4a20fca2e2b7d1aabcff383b222
Introduce mmap_file function

New in v2:

- As Tom pointed out, we don't need to keep the fd around after
  mmapping.  This simplifies things quite a bit, since we don't need a
  new class.  It's now just a function that returns a scoped_mmap.

We already have scoped_mmap, which is a thin RAII layer over mmap.  If
one simply wants to mmap an entire file for reading, it takes a bit of
boilerplate.  This patch introduces the mmap_file function to make this
easier.

gdb/ChangeLog:

* Makefile.in (COMMON_SFILES): Add common/scoped_mmap.c.
* common/scoped_mmap.c: New file.
* common/scoped_mmap.h (destroy): New method.
(~scoped_mmap, reset): Use destroy.
(scoped_mmap): New move constructor.
(mmap_file): New declaration.
* unittests/scoped_mmap-selftests.c (test_normal,
test_invalid_filename, run_tests): New functions.
(_initialize_scoped_mmap_selftests): Register selftest.
gdb/ChangeLog
gdb/Makefile.in
gdb/common/scoped_mmap.c [new file with mode: 0644]
gdb/common/scoped_mmap.h
gdb/unittests/scoped_mmap-selftests.c