1.1 --- a/libfsserver/lib/files/opener_resource.cc Sat Aug 07 23:19:20 2021 +0200
1.2 +++ b/libfsserver/lib/files/opener_resource.cc Sun Aug 08 23:12:34 2021 +0200
1.3 @@ -48,7 +48,8 @@
1.4
1.5 /* Return a pager object for the given path and flags. */
1.6
1.7 -long OpenerResource::open(const char *path, flags_t flags, offset_t *size, l4_cap_idx_t *cap)
1.8 +long OpenerResource::open(const char *path, flags_t flags, offset_t *size,
1.9 + l4_cap_idx_t *cap, object_flags_t *object_flags)
1.10 {
1.11 /* Obtain an identifier for the file, even for new files. */
1.12
1.13 @@ -61,9 +62,9 @@
1.14 /* Test for file and directory access. */
1.15
1.16 if (accessing_directory(path, flags, fileid))
1.17 - return get_directory(path, flags, fileid, size, cap);
1.18 + return get_directory(path, flags, fileid, size, cap, object_flags);
1.19 else if (accessing_file(path, flags, fileid))
1.20 - return get_file(path, flags, fileid, size, cap);
1.21 + return get_file(path, flags, fileid, size, cap, object_flags);
1.22 else
1.23 return -L4_EIO;
1.24 }
1.25 @@ -72,15 +73,19 @@
1.26
1.27 /* Return a directory pager. */
1.28
1.29 -long OpenerResource::get_directory(const char *path, flags_t flags, fileid_t fileid, offset_t *size, l4_cap_idx_t *cap)
1.30 +long OpenerResource::get_directory(const char *path, flags_t flags,
1.31 + fileid_t fileid, offset_t *size,
1.32 + l4_cap_idx_t *cap, object_flags_t *object_flags)
1.33 {
1.34 - (void) path; (void) flags; (void) fileid; (void) size; (void) cap;
1.35 + (void) path; (void) flags; (void) fileid; (void) size; (void) cap; (void) object_flags;
1.36 return -L4_EIO;
1.37 }
1.38
1.39 /* Return a file pager. */
1.40
1.41 -long OpenerResource::get_file(const char *path, flags_t flags, fileid_t fileid, offset_t *size, l4_cap_idx_t *cap)
1.42 +long OpenerResource::get_file(const char *path, flags_t flags, fileid_t fileid,
1.43 + offset_t *size, l4_cap_idx_t *cap,
1.44 + object_flags_t *object_flags)
1.45 {
1.46 Pager *pager;
1.47 long err = _paging->get_pager(this, path, flags, fileid, &pager);
1.48 @@ -88,6 +93,8 @@
1.49 if (err)
1.50 return err;
1.51
1.52 + *object_flags = OBJECT_SUPPORTS_MMAP | OBJECT_HAS_SIZE;
1.53 +
1.54 return resource_for_pager(pager, size, cap);
1.55 }
1.56