1.1 --- a/pipe_opener_resource.cc Sat Mar 27 00:55:05 2021 +0100
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,67 +0,0 @@
1.4 -#include "pipe_opener_resource.h"
1.5 -#include "pipe_opener_server.h"
1.6 -#include "pipe_pager.h"
1.7 -#include "resource_server.h"
1.8 -
1.9 -
1.10 -
1.11 -/* Support for providing access to pipes. */
1.12 -
1.13 -PipeOpenerResource::PipeOpenerResource(Memory *memory)
1.14 -: _memory(memory)
1.15 -{
1.16 -}
1.17 -
1.18 -PipeOpenerResource::PipeOpenerResource()
1.19 -{
1.20 - _memory = new Memory();
1.21 -}
1.22 -
1.23 -int PipeOpenerResource::expected_items()
1.24 -{
1.25 - return PipeOpener_expected_items;
1.26 -}
1.27 -
1.28 -ipc_server_handler_type PipeOpenerResource::handler()
1.29 -{
1.30 - return (ipc_server_handler_type) handle_PipeOpener;
1.31 -}
1.32 -
1.33 -
1.34 -
1.35 -/* Pipe opener interface methods. */
1.36 -
1.37 -long PipeOpenerResource::pipe(offset_t size, l4_cap_idx_t *reader, l4_cap_idx_t *writer)
1.38 -{
1.39 - /* Both endpoints will employ a common paging coordinator. */
1.40 -
1.41 - PipePaging *paging = new PipePaging(_memory, size);
1.42 -
1.43 - /* Each endpoint will have its own pager. */
1.44 -
1.45 - /* NOTE: Failure to open an endpoint should invalidate both, plus the
1.46 - paging object. Also, any active server thread would need to be
1.47 - cancelled. */
1.48 -
1.49 - return open_endpoint(paging, false, reader) || open_endpoint(paging, true, writer);
1.50 -}
1.51 -
1.52 -long PipeOpenerResource::open_endpoint(PipePaging *paging, bool writing, l4_cap_idx_t *endpoint)
1.53 -{
1.54 - PipePager *pager = new PipePager(paging, writing);
1.55 -
1.56 - /* Start the endpoint server in a new thread.
1.57 - If the thread does not start, the resource should be finalised. */
1.58 -
1.59 - ResourceServer server(pager);
1.60 - long err = server.start_thread();
1.61 -
1.62 - /* Return the server capability to the caller. */
1.63 -
1.64 - if (!err)
1.65 - *endpoint = server.config()->server;
1.66 -
1.67 - return err;
1.68 -}
1.69 -
1.70 -// vim: tabstop=4 expandtab shiftwidth=4