1 #pragma once 2 3 #include "pipe_opener_interface.h" 4 #include "pipe_paging.h" 5 #include "resource.h" 6 7 /* Support for providing access to pipes. */ 8 9 class PipeOpenerResource : public Resource, public PipeOpener 10 { 11 protected: 12 long open_endpoint(PipePaging *paging, bool writing, l4_cap_idx_t *endpoint); 13 14 public: 15 explicit PipeOpenerResource(); 16 17 /* Server details. */ 18 19 int expected_items(); 20 21 ipc_server_handler_type handler(); 22 23 void *interface() 24 { return static_cast<PipeOpener *>(this); } 25 26 /* PipeOpener interface methods. */ 27 28 long pipe(offset_t size, l4_cap_idx_t *reader, l4_cap_idx_t *writer); 29 }; 30 31 // vim: tabstop=4 expandtab shiftwidth=4