1.1 --- a/libfsserver/lib/files/file_pager.cc Sat May 11 00:49:24 2024 +0200
1.2 +++ b/libfsserver/lib/files/file_pager.cc Sat May 11 01:47:53 2024 +0200
1.3 @@ -37,6 +37,10 @@
1.4 : Pager(provider->mapper(), file_region_flags(flags)),
1.5 _provider(provider), _flags(flags), fileid(fileid)
1.6 {
1.7 + /* Initialise any recorded position in the mapped region for this
1.8 + endpoint. */
1.9 +
1.10 + _data_current = 0;
1.11 }
1.12
1.13 ipc_server_default_config_type FilePager::config()
1.14 @@ -62,12 +66,14 @@
1.15
1.16
1.17
1.18 -/* File-specific operations. */
1.19 +/* Flush operations. */
1.20
1.21 long FilePager::flush(offset_t position, offset_t *size)
1.22 {
1.23 long err = Pager::flush(position, size);
1.24
1.25 + _data_current = position;
1.26 +
1.27 if (_resized)
1.28 {
1.29 _provider->notify_others(_notifier, NOTIFY_CONTENT_AVAILABLE, NOTIFY_VALUES_NULL);
1.30 @@ -77,6 +83,20 @@
1.31 return err;
1.32 }
1.33
1.34 +long FilePager::refresh(offset_t *position, offset_t *size,
1.35 + offset_t *region_size)
1.36 +{
1.37 + *position = _data_current;
1.38 + *size = _mapper->get_data_size();
1.39 + *region_size = _size;
1.40 +
1.41 + return L4_EOK;
1.42 +}
1.43 +
1.44 +
1.45 +
1.46 +/* File-specific operations. */
1.47 +
1.48 long FilePager::reopen(flags_t flags, offset_t *size, l4_cap_idx_t *file,
1.49 object_flags_t *object_flags)
1.50 {