1.1 --- a/file_pager.cc Sat Mar 13 23:22:31 2021 +0100
1.2 +++ b/file_pager.cc Sun Mar 14 00:40:21 2021 +0100
1.3 @@ -4,8 +4,8 @@
1.4 /* Initialise a pager for a file with a unique file identifier and shared page
1.5 mapper for moderating access to loaded pages. */
1.6
1.7 -FilePager::FilePager(fileid_t fileid, PageMapper *mapper)
1.8 -: Pager(mapper), fileid(fileid)
1.9 +FilePager::FilePager(fileid_t fileid, PageMapper *mapper, int flags)
1.10 +: Pager(mapper, flags), fileid(fileid)
1.11 {
1.12 }
1.13
2.1 --- a/file_pager.h Sat Mar 13 23:22:31 2021 +0100
2.2 +++ b/file_pager.h Sun Mar 14 00:40:21 2021 +0100
2.3 @@ -10,7 +10,7 @@
2.4 public:
2.5 fileid_t fileid;
2.6
2.7 - explicit FilePager(fileid_t fileid, PageMapper *mapper);
2.8 + explicit FilePager(fileid_t fileid, PageMapper *mapper, int flags);
2.9
2.10 /* Server details. */
2.11
3.1 --- a/opener_context_resource.cc Sat Mar 13 23:22:31 2021 +0100
3.2 +++ b/opener_context_resource.cc Sun Mar 14 00:40:21 2021 +0100
3.3 @@ -47,14 +47,12 @@
3.4
3.5 long OpenerContextResource::open(int flags, size_t *size, l4_cap_idx_t *file)
3.6 {
3.7 - /* NOTE: Support flags in the file pager method and obtain the file size. */
3.8 -
3.9 char *path = get_path();
3.10
3.11 if (path == NULL)
3.12 return -L4_EINVAL;
3.13
3.14 - FilePager *pager = _opener->open(path);
3.15 + FilePager *pager = _opener->open(path, flags);
3.16
3.17 /* Complete the initialisation and start a server in a new thread. */
3.18
4.1 --- a/opener_resource.cc Sat Mar 13 23:22:31 2021 +0100
4.2 +++ b/opener_resource.cc Sun Mar 14 00:40:21 2021 +0100
4.3 @@ -21,9 +21,9 @@
4.4
4.5
4.6
4.7 -/* Return a pager object for the given path. */
4.8 +/* Return a pager object for the given path and flags. */
4.9
4.10 -FilePager *OpenerResource::open(const char *path)
4.11 +FilePager *OpenerResource::open(const char *path, int flags)
4.12 {
4.13 fileid_t fileid = get_fileid(path);
4.14
4.15 @@ -32,7 +32,7 @@
4.16
4.17 Accessor *accessor = get_accessor(fileid);
4.18 PageMapper *mapper = get_mapper(accessor);
4.19 - return new FilePager(fileid, mapper);
4.20 + return new FilePager(fileid, mapper, flags);
4.21 }
4.22
4.23 /* Obtain an accessor for the 'fileid' or register a new one in the accessing
5.1 --- a/opener_resource.h Sat Mar 13 23:22:31 2021 +0100
5.2 +++ b/opener_resource.h Sun Mar 14 00:40:21 2021 +0100
5.3 @@ -46,7 +46,7 @@
5.4
5.5 /* Direct access methods. */
5.6
5.7 - FilePager *open(const char *path);
5.8 + FilePager *open(const char *path, int flags);
5.9
5.10 /* Opener interface methods. */
5.11
6.1 --- a/pager.cc Sat Mar 13 23:22:31 2021 +0100
6.2 +++ b/pager.cc Sun Mar 14 00:40:21 2021 +0100
6.3 @@ -4,8 +4,8 @@
6.4
6.5
6.6
6.7 -Pager::Pager(PageMapper *mapper)
6.8 -: _start(0), _size(0), _mapper(mapper)
6.9 +Pager::Pager(PageMapper *mapper, int flags)
6.10 +: _start(0), _size(0), _mapper(mapper), _flags(flags)
6.11 {
6.12 _mapper->attach();
6.13 }
7.1 --- a/pager.h Sat Mar 13 23:22:31 2021 +0100
7.2 +++ b/pager.h Sun Mar 14 00:40:21 2021 +0100
7.3 @@ -14,9 +14,10 @@
7.4 protected:
7.5 offset_t _start, _size;
7.6 PageMapper *_mapper;
7.7 + int _flags;
7.8
7.9 public:
7.10 - explicit Pager(PageMapper *mapper);
7.11 + explicit Pager(PageMapper *mapper, int flags);
7.12
7.13 virtual void close();
7.14