1.1 --- a/opener_context_resource.cc Sun Mar 28 23:16:12 2021 +0200
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,75 +0,0 @@
1.4 -#include "opener_context_resource.h"
1.5 -#include "opener_context_object_server.h"
1.6 -#include "opener_resource.h"
1.7 -#include "resource_server.h"
1.8 -
1.9 -#include <string.h>
1.10 -
1.11 -
1.12 -
1.13 -/* Support for providing access to files. */
1.14 -
1.15 -OpenerContextResource::OpenerContextResource(OpenerResource *opener, Memory *memory)
1.16 -: SimplePager(memory), _opener(opener)
1.17 -{
1.18 -}
1.19 -
1.20 -int OpenerContextResource::expected_items()
1.21 -{
1.22 - return OpenerContextObject_expected_items;
1.23 -}
1.24 -
1.25 -ipc_server_handler_type OpenerContextResource::handler()
1.26 -{
1.27 - return (ipc_server_handler_type) handle_OpenerContextObject;
1.28 -}
1.29 -
1.30 -
1.31 -
1.32 -/* Data access methods. */
1.33 -
1.34 -char *OpenerContextResource::get_path()
1.35 -{
1.36 - char *buffer = _region->read();
1.37 - offset_t size = _region->size();
1.38 -
1.39 - /* Confine the path to the limit of the buffer. */
1.40 -
1.41 - if ((buffer != NULL) && (strnlen(buffer, size) < size))
1.42 - return buffer;
1.43 - else
1.44 - return NULL;
1.45 -}
1.46 -
1.47 -
1.48 -
1.49 -/* Opener context interface methods. */
1.50 -
1.51 -long OpenerContextResource::open(flags_t flags, size_t *size, l4_cap_idx_t *file)
1.52 -{
1.53 - char *path = get_path();
1.54 -
1.55 - if (path == NULL)
1.56 - return -L4_EINVAL;
1.57 -
1.58 - FilePager *pager = _opener->open(path, flags);
1.59 -
1.60 - /* Complete the initialisation and start a server in a new thread.
1.61 - If the thread does not start, the resource should be finalised. */
1.62 -
1.63 - ResourceServer server(pager);
1.64 - long err = server.start_thread();
1.65 -
1.66 - if (!err)
1.67 - {
1.68 - /* Return the file size. */
1.69 - /* Return the server capability to the caller. */
1.70 -
1.71 - *size = pager->get_data_size();
1.72 - *file = server.config()->server;
1.73 - }
1.74 -
1.75 - return err;
1.76 -}
1.77 -
1.78 -// vim: tabstop=4 expandtab shiftwidth=4