1.1 --- a/file.cc Wed Mar 17 00:10:47 2021 +0100
1.2 +++ b/file.cc Thu Mar 18 00:59:55 2021 +0100
1.3 @@ -25,6 +25,7 @@
1.4 #include <string.h>
1.5
1.6 #include "dataspace_client.h"
1.7 +#include "file_client.h"
1.8 #include "opener_client.h"
1.9 #include "opener_context_client.h"
1.10 #include "mapped_file_client.h"
1.11 @@ -128,6 +129,33 @@
1.12 return ipc_attach_dataspace(file->ref, file_span(file), (void **) &file->memory);
1.13 }
1.14
1.15 +/* Resize a file. */
1.16 +
1.17 +long file_resize(file_t *file, offset_t size)
1.18 +{
1.19 + client_File _file(file->ref);
1.20 + offset_t file_size = size;
1.21 + long err = _file.resize(&file_size);
1.22 +
1.23 + if (!err)
1.24 + {
1.25 + /* Determine the extent of the file in this region. */
1.26 +
1.27 + if (file_size > file->end_pos)
1.28 + file->data_end = file_span(file);
1.29 + else
1.30 + file->data_end = file_size - file->start_pos;
1.31 +
1.32 + /* Update the file size locally. */
1.33 +
1.34 + file->size = file_size;
1.35 + }
1.36 +
1.37 + return err;
1.38 +}
1.39 +
1.40 +
1.41 +
1.42 /* Return the amount of data in the mapped region for the given file. */
1.43
1.44 offset_t file_populated_span(file_t *file)