1.1 --- a/dstest_client.cc Sat Jan 23 00:01:22 2021 +0100
1.2 +++ b/dstest_client.cc Sat Jan 23 23:45:31 2021 +0100
1.3 @@ -28,17 +28,37 @@
1.4
1.5 #include <ipc/mem_ipc.h>
1.6
1.7 +#include "mapped_file_client.h"
1.8 +#include "memory_utils.h"
1.9 +
1.10
1.11
1.12 int main(void)
1.13 {
1.14 l4_cap_idx_t server = l4re_env_get_cap("server");
1.15
1.16 + client_MappedFile obj(server);
1.17 +
1.18 /* Some memory to be mapped. */
1.19
1.20 + size_t start_pos, end_pos, data_end;
1.21 +
1.22 + printf("Map region from %ld to %ld...\n", 0L, page(10));
1.23 +
1.24 + long err = obj.mmap(0, page(10), &start_pos, &end_pos, &data_end);
1.25 +
1.26 + if (err)
1.27 + {
1.28 + printf("Could not map file region: %s\n", l4sys_errtostr(err));
1.29 + return 1;
1.30 + }
1.31 +
1.32 char *memory;
1.33 - unsigned long size = 40960;
1.34 - long err = ipc_attach_dataspace(server, size, (void **) &memory);
1.35 + unsigned long size = end_pos - start_pos;
1.36 +
1.37 + printf("Attach region of size %ld...\n", size);
1.38 +
1.39 + err = ipc_attach_dataspace(server, size, (void **) &memory);
1.40
1.41 if (err)
1.42 {
1.43 @@ -50,9 +70,11 @@
1.44
1.45 for (unsigned long offset = 0; offset < size; offset += 1024)
1.46 {
1.47 + char buf[11];
1.48 printf("10 bytes from %p...\n", (memory + offset));
1.49 - fwrite((memory + offset), sizeof(char), 10, stdout);
1.50 - fwrite("\n", sizeof(char), 1, stdout);
1.51 + strncpy(buf, (memory + offset), 10);
1.52 + buf[10] = '\0';
1.53 + printf("%s\n", buf);
1.54 }
1.55
1.56 return 0;