# HG changeset patch # User Paul Boddie # Date 1614898240 -3600 # Node ID 8965e00ba1975423146db68ddd6bfd9949fd17e7 # Parent 18b94d0fe7a6fbe44f49926f517e160058f9aade Introduced file access conveniences to the host file test. diff -r 18b94d0fe7a6 -r 8965e00ba197 Makefile --- a/Makefile Mon Mar 01 00:22:56 2021 +0100 +++ b/Makefile Thu Mar 04 23:50:40 2021 +0100 @@ -40,7 +40,7 @@ COMMON_SRC_CC = memory_utils.cc -PLAIN_SRC_CC_dstest_host_client = dstest_host_client.cc +PLAIN_SRC_CC_dstest_host_client = dstest_host_client.cc file.cc PLAIN_SRC_CC_dstest_test_client = dstest_test_client.cc file.cc diff -r 18b94d0fe7a6 -r 8965e00ba197 dstest_host_client.cc --- a/dstest_host_client.cc Mon Mar 01 00:22:56 2021 +0100 +++ b/dstest_host_client.cc Thu Mar 04 23:50:40 2021 +0100 @@ -26,12 +26,9 @@ #include #include -#include +#include -#include "dataspace_client.h" -#include "opener_client.h" -#include "opener_context_client.h" -#include "mapped_file_client.h" +#include "file.h" #include "memory_utils.h" @@ -57,10 +54,9 @@ /* Obtain access to the filesystem. */ l4_cap_idx_t server = l4re_env_get_cap("server"); - l4_cap_idx_t context_ref; - client_Opener opener(server); + file_t context; - long err = opener.context(&context_ref); + long err = file_context(&context, server); if (err) { @@ -68,43 +64,15 @@ return 1; } - client_OpenerContext context(context_ref); - client_Dataspace context_ds(context_ref); - unsigned long size, flags; - - err = context_ds.info(&size, &flags); - - if (err) - { - printf("Could not obtain context info: %s\n", l4sys_errtostr(err)); - return 1; - } - - /* Map context memory to write the filename. */ - - char *memory; - - printf("Attach region of size %ld...\n", size); - - err = ipc_attach_dataspace(context_ref, size, (void **) &memory); - - if (err) - { - printf("Could not map memory: %s\n", l4sys_errtostr(err)); - return 1; - } - - printf("Mapped memory at %p\n", memory); - /* Write the filename. */ - strcpy(memory, filename); + strcpy(context.memory, filename); /* Invoke the open method to receive the file reference. */ - l4_cap_idx_t file; + file_t file; - err = context.open(L4_FPAGE_RW, &size, &file); + err = file_open(&file, context.ref); if (err) { @@ -112,15 +80,9 @@ return 1; } - client_MappedFile obj(file); - - /* Some memory to be mapped. */ + /* A region of the file is mapped. */ - size_t start_pos, end_pos, data_end; - - printf("Map region from %ld to %ld...\n", 0L, page(10)); - - err = obj.mmap(0, page(10), &start_pos, &end_pos, &data_end); + err = file_mmap(&file, 0, page(10)); if (err) { @@ -128,36 +90,18 @@ return 1; } - printf("Mapped region from %ld to %ld with content %ld.\n", - start_pos, end_pos, data_end); - - size = end_pos - start_pos; - - printf("Attach region of size %ld...\n", size); - - err = ipc_attach_dataspace(file, size, (void **) &memory); - - if (err) + for (unsigned long offset = 0; offset < file_span(&file); offset += step) { - printf("Could not map memory: %s\n", l4sys_errtostr(err)); - return 1; - } - - printf("Mapped memory at %p\n", memory); - - if (data_end < size) - size = data_end; - - for (unsigned long offset = 0; offset < size; offset += step) - { - unsigned long remaining = size - offset; + unsigned long remaining = file_span(&file) - offset; unsigned long sample_remaining = remaining < sample ? remaining : sample; - printf("%ld bytes from %p...\n", sample_remaining, (memory + offset)); - strncpy(buf, (memory + offset), sample_remaining); + printf("%ld bytes from %p...\n", sample_remaining, (file.memory + offset)); + strncpy(buf, (file.memory + offset), sample_remaining); buf[sample_remaining] = '\0'; printf("%s\n", buf); } return 0; } + +// vim: tabstop=2 expandtab shiftwidth=2 diff -r 18b94d0fe7a6 -r 8965e00ba197 dstest_test_client.cc --- a/dstest_test_client.cc Mon Mar 01 00:22:56 2021 +0100 +++ b/dstest_test_client.cc Thu Mar 04 23:50:40 2021 +0100 @@ -71,7 +71,7 @@ return err; } - /* Some memory to be mapped. */ + /* A region of the file is mapped. */ err = file_mmap(&file, page(start_page), page(MAP_PAGES));