# HG changeset patch # User Paul Boddie # Date 1654124930 -7200 # Node ID 6843bd7ade1b1679f6142e7a1771c8d55ec34d72 # Parent c3b65dd2fb6a1fef00b77ab6e02a833b9d2dd195 Introduced a function to obtain opening flags from region mapper flags. diff -r c3b65dd2fb6a -r 6843bd7ade1b libfsclient/include/fsclient/file.h --- a/libfsclient/include/fsclient/file.h Mon May 30 00:47:07 2022 +0200 +++ b/libfsclient/include/fsclient/file.h Thu Jun 02 01:08:50 2022 +0200 @@ -112,6 +112,7 @@ long file_mmap(file_t *file, offset_t position, offset_t length, offset_t start_visible, offset_t end_visible, l4re_rm_flags_t region_flags); +flags_t file_opening_flags(l4re_rm_flags_t rm_flags); l4re_rm_flags_t file_region_flags(flags_t flags); long file_resize(file_t *file, offset_t size); diff -r c3b65dd2fb6a -r 6843bd7ade1b libfsclient/lib/src/file.cc --- a/libfsclient/lib/src/file.cc Mon May 30 00:47:07 2022 +0200 +++ b/libfsclient/lib/src/file.cc Thu Jun 02 01:08:50 2022 +0200 @@ -378,6 +378,18 @@ return L4_EOK; } +/* Return opening flags compatible with the given region flags. */ + +flags_t file_opening_flags(l4re_rm_flags_t rm_flags) +{ + if ((rm_flags & L4RE_RM_F_RW) == L4RE_RM_F_RW) + return O_RDWR; + else if (rm_flags & L4RE_RM_F_W) + return O_WRONLY; + else + return O_RDONLY; +} + /* Return mmap flags corresponding to the file access flags. */ l4re_rm_flags_t file_region_flags(flags_t flags)