| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 * Copyright 2008 The Native Client Authors. All rights reserved. | |
| 3 * Use of this source code is governed by a BSD-style license that can | |
| 4 * be found in the LICENSE file. | |
| 5 */ | |
| 6 | |
| 7 // A portable representation of a scriptable shared memory object. | |
| 8 | |
| 9 #ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_SRPC_SHARED_MEMORY_H_ | |
| 10 #define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_SRPC_SHARED_MEMORY_H_ | |
| 11 | |
| 12 #include <setjmp.h> | |
| 13 #include <stdio.h> | |
| 14 | |
| 15 #include "native_client/src/include/nacl_macros.h" | |
| 16 #include "native_client/src/trusted/desc/nacl_desc_imc_shm.h" | |
| 17 #include "native_client/src/trusted/desc/nacl_desc_wrapper.h" | |
| 18 #include "native_client/src/trusted/plugin/srpc/desc_based_handle.h" | |
| 19 #include "native_client/src/trusted/plugin/srpc/utility.h" | |
| 20 | |
| 21 namespace plugin { | |
| 22 | |
| 23 class Plugin; | |
| 24 | |
| 25 // SharedMemory is used to represent shared memory descriptors. | |
| 26 class SharedMemory : public DescBasedHandle { | |
| 27 public: | |
| 28 static SharedMemory* New(Plugin* plugin, nacl::DescWrapper* wrapper); | |
| 29 static SharedMemory* New(Plugin* plugin, off_t length); | |
| 30 | |
| 31 virtual void* shm_addr() const { return addr_; } | |
| 32 virtual size_t shm_size() const { return size_; } | |
| 33 | |
| 34 private: | |
| 35 NACL_DISALLOW_COPY_AND_ASSIGN(SharedMemory); | |
| 36 // These are private because there are no derived classes from | |
| 37 // SharedMemory. | |
| 38 SharedMemory(); | |
| 39 ~SharedMemory(); | |
| 40 bool Init(Plugin* plugin, nacl::DescWrapper* wrapper, off_t length); | |
| 41 void LoadMethods(); | |
| 42 NaClHandle handle_; | |
| 43 void* addr_; | |
| 44 size_t size_; | |
| 45 }; | |
| 46 | |
| 47 } // namespace plugin | |
| 48 | |
| 49 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_SRPC_SHARED_MEMORY_H_ | |
| OLD | NEW |