1.1 --- a/dstest_test_client.cc Sun Feb 28 22:14:39 2021 +0100
1.2 +++ b/dstest_test_client.cc Sun Feb 28 22:48:57 2021 +0100
1.3 @@ -28,14 +28,9 @@
1.4
1.5 #include <thread>
1.6
1.7 -#include <ipc/cap_alloc.h>
1.8 -#include <ipc/mem_ipc.h>
1.9 #include <ipc/thread.h>
1.10
1.11 -#include "dataspace_client.h"
1.12 -#include "opener_client.h"
1.13 -#include "opener_context_client.h"
1.14 -#include "mapped_file_client.h"
1.15 +#include "file.h"
1.16 #include "memory_utils.h"
1.17
1.18
1.19 @@ -53,81 +48,6 @@
1.20
1.21
1.22
1.23 -typedef struct
1.24 -{
1.25 - l4_cap_idx_t ref;
1.26 - char *memory;
1.27 - offset_t start_pos, end_pos, data_end, size;
1.28 -} file_t;
1.29 -
1.30 -
1.31 -
1.32 -static offset_t file_span(file_t *file)
1.33 -{
1.34 - offset_t size = file->end_pos - file->start_pos;
1.35 -
1.36 - return (file->data_end < size) ? file->data_end : size;
1.37 -}
1.38 -
1.39 -static void file_init(file_t *file)
1.40 -{
1.41 - file->memory = NULL;
1.42 - file->ref = L4_INVALID_CAP;
1.43 -}
1.44 -
1.45 -static long file_open(file_t *file, l4_cap_idx_t context_ref)
1.46 -{
1.47 - client_OpenerContext context(context_ref);
1.48 - file_init(file);
1.49 - return context.open(L4_FPAGE_RW, &file->size, &file->ref);
1.50 -}
1.51 -
1.52 -static void file_close(file_t *file)
1.53 -{
1.54 - if (l4_is_valid_cap(file->ref))
1.55 - ipc_cap_free_um(file->ref);
1.56 -
1.57 - if (file->memory != NULL)
1.58 - ipc_detach_dataspace(file->memory);
1.59 -
1.60 - file_init(file);
1.61 -}
1.62 -
1.63 -static long file_mmap(file_t *file, offset_t position, offset_t length)
1.64 -{
1.65 - client_MappedFile mapped_file(file->ref);
1.66 - long err = mapped_file.mmap(position, length, &file->start_pos, &file->end_pos, &file->data_end);
1.67 -
1.68 - if (err)
1.69 - return err;
1.70 -
1.71 - return ipc_attach_dataspace(file->ref, file->end_pos - file->start_pos, (void **) &file->memory);
1.72 -}
1.73 -
1.74 -static long context_open(file_t *file, l4_cap_idx_t server)
1.75 -{
1.76 - client_Opener opener(server);
1.77 - unsigned long size, flags;
1.78 - long err;
1.79 -
1.80 - file_init(file);
1.81 - err = opener.context(&file->ref);
1.82 -
1.83 - if (err)
1.84 - return err;
1.85 -
1.86 - client_Dataspace context_ds(file->ref);
1.87 -
1.88 - err = context_ds.info(&size, &flags);
1.89 -
1.90 - if (err)
1.91 - return err;
1.92 -
1.93 - return ipc_attach_dataspace(file->ref, size, (void **) &file->memory);
1.94 -}
1.95 -
1.96 -
1.97 -
1.98 /* An activity opening and reading from a file. */
1.99
1.100 static long activity(l4_cap_idx_t context_ref, unsigned long fileid, unsigned int start_page)
1.101 @@ -293,3 +213,5 @@
1.102
1.103 return 0;
1.104 }
1.105 +
1.106 +// vim: tabstop=2 expandtab shiftwidth=2