| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef MOJO_EDK_EMBEDDER_EMBEDDER_H_ | 5 #ifndef MOJO_EDK_EMBEDDER_EMBEDDER_H_ |
| 6 #define MOJO_EDK_EMBEDDER_EMBEDDER_H_ | 6 #define MOJO_EDK_EMBEDDER_EMBEDDER_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 // on success. | 87 // on success. |
| 88 MOJO_SYSTEM_IMPL_EXPORT MojoResult | 88 MOJO_SYSTEM_IMPL_EXPORT MojoResult |
| 89 PassWrappedPlatformHandle(MojoHandle platform_handle_wrapper_handle, | 89 PassWrappedPlatformHandle(MojoHandle platform_handle_wrapper_handle, |
| 90 ScopedPlatformHandle* platform_handle); | 90 ScopedPlatformHandle* platform_handle); |
| 91 | 91 |
| 92 // Creates a |MojoHandle| that wraps the given |SharedMemoryHandle| (taking | 92 // Creates a |MojoHandle| that wraps the given |SharedMemoryHandle| (taking |
| 93 // ownership of it). |num_bytes| is the size of the shared memory object, and | 93 // ownership of it). |num_bytes| is the size of the shared memory object, and |
| 94 // |read_only| is whether the handle is a read-only handle to shared memory. | 94 // |read_only| is whether the handle is a read-only handle to shared memory. |
| 95 // This |MojoHandle| is a Mojo shared buffer and can be manipulated using the | 95 // This |MojoHandle| is a Mojo shared buffer and can be manipulated using the |
| 96 // shared buffer functions and transferred over a message pipe. | 96 // shared buffer functions and transferred over a message pipe. |
| 97 // TODO(crbug.com/556587): Support read-only handles. Currently, |read_only| | |
| 98 // must be false. | |
| 99 MOJO_SYSTEM_IMPL_EXPORT MojoResult | 97 MOJO_SYSTEM_IMPL_EXPORT MojoResult |
| 100 CreateSharedBufferWrapper(base::SharedMemoryHandle shared_memory_handle, | 98 CreateSharedBufferWrapper(base::SharedMemoryHandle shared_memory_handle, |
| 101 size_t num_bytes, | 99 size_t num_bytes, |
| 102 bool read_only, | 100 bool read_only, |
| 103 MojoHandle* mojo_wrapper_handle); | 101 MojoHandle* mojo_wrapper_handle); |
| 104 | 102 |
| 105 // Retrieves the underlying |SharedMemoryHandle| from a shared buffer | 103 // Retrieves the underlying |SharedMemoryHandle| from a shared buffer |
| 106 // |MojoHandle| and closes the handle. If successful, |num_bytes| will contain | 104 // |MojoHandle| and closes the handle. If successful, |num_bytes| will contain |
| 107 // the size of the shared memory buffer and |read_only| will contain whether the | 105 // the size of the shared memory buffer and |read_only| will contain whether the |
| 108 // buffer handle is read-only. Both |num_bytes| and |read_only| may be null. | 106 // buffer handle is read-only. Both |num_bytes| and |read_only| may be null. |
| 109 // Note: The value of |shared_memory_handle| may be | 107 // Note: The value of |shared_memory_handle| may be |
| 110 // base::SharedMemory::NULLHandle(), even if this function returns success. | 108 // base::SharedMemory::NULLHandle(), even if this function returns success. |
| 111 // Callers should perform appropriate checks. | 109 // Callers should perform appropriate checks. |
| 112 // TODO(crbug.com/556587): Support read-only handles. Currently, |read_only| | |
| 113 // will always return |false|. | |
| 114 MOJO_SYSTEM_IMPL_EXPORT MojoResult | 110 MOJO_SYSTEM_IMPL_EXPORT MojoResult |
| 115 PassSharedMemoryHandle(MojoHandle mojo_handle, | 111 PassSharedMemoryHandle(MojoHandle mojo_handle, |
| 116 base::SharedMemoryHandle* shared_memory_handle, | 112 base::SharedMemoryHandle* shared_memory_handle, |
| 117 size_t* num_bytes, | 113 size_t* num_bytes, |
| 118 bool* read_only); | 114 bool* read_only); |
| 119 | 115 |
| 120 // Initialialization/shutdown for interprocess communication (IPC) ------------- | 116 // Initialialization/shutdown for interprocess communication (IPC) ------------- |
| 121 | 117 |
| 122 // |InitIPCSupport()| sets up the subsystem for interprocess communication, | 118 // |InitIPCSupport()| sets up the subsystem for interprocess communication, |
| 123 // making the IPC functions (in the following section) available and functional. | 119 // making the IPC functions (in the following section) available and functional. |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 | 168 |
| 173 // Generates a random ASCII token string for use with CreateParentMessagePipe() | 169 // Generates a random ASCII token string for use with CreateParentMessagePipe() |
| 174 // and CreateChildMessagePipe() above. The generated token is suitably random so | 170 // and CreateChildMessagePipe() above. The generated token is suitably random so |
| 175 // as to not have to worry about collisions with other generated tokens. | 171 // as to not have to worry about collisions with other generated tokens. |
| 176 MOJO_SYSTEM_IMPL_EXPORT std::string GenerateRandomToken(); | 172 MOJO_SYSTEM_IMPL_EXPORT std::string GenerateRandomToken(); |
| 177 | 173 |
| 178 } // namespace edk | 174 } // namespace edk |
| 179 } // namespace mojo | 175 } // namespace mojo |
| 180 | 176 |
| 181 #endif // MOJO_EDK_EMBEDDER_EMBEDDER_H_ | 177 #endif // MOJO_EDK_EMBEDDER_EMBEDDER_H_ |
| OLD | NEW |