OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 BASE_MEMORY_SHARED_MEMORY_H_ | 5 #ifndef BASE_MEMORY_SHARED_MEMORY_H_ |
6 #define BASE_MEMORY_SHARED_MEMORY_H_ | 6 #define BASE_MEMORY_SHARED_MEMORY_H_ |
7 | 7 |
8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
9 | 9 |
10 #include <string> | 10 #include <string> |
11 | 11 |
12 #if defined(OS_POSIX) | 12 #if defined(OS_POSIX) |
13 #include <stdio.h> | 13 #include <stdio.h> |
14 #include <sys/types.h> | 14 #include <sys/types.h> |
15 #include <semaphore.h> | 15 #include <semaphore.h> |
16 #endif | 16 #endif |
17 | 17 |
18 #include "base/base_export.h" | 18 #include "base/base_export.h" |
19 #include "base/basictypes.h" | 19 #include "base/basictypes.h" |
20 #include "base/process/process_handle.h" | 20 #include "base/process/process_handle.h" |
21 | 21 |
22 #if defined(OS_POSIX) | 22 #if defined(OS_POSIX) |
23 #include "base/file_descriptor_posix.h" | 23 #include "base/file_descriptor_posix.h" |
24 #include "base/file_util.h" | 24 #include "base/file_util.h" |
| 25 #include "base/files/scoped_file.h" |
25 #endif | 26 #endif |
26 | 27 |
27 namespace base { | 28 namespace base { |
28 | 29 |
29 class FilePath; | 30 class FilePath; |
30 | 31 |
31 // SharedMemoryHandle is a platform specific type which represents | 32 // SharedMemoryHandle is a platform specific type which represents |
32 // the underlying OS handle to a shared memory segment. | 33 // the underlying OS handle to a shared memory segment. |
33 #if defined(OS_WIN) | 34 #if defined(OS_WIN) |
34 typedef HANDLE SharedMemoryHandle; | 35 typedef HANDLE SharedMemoryHandle; |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 // used in inner loops, so we protect against multiple threads in a | 253 // used in inner loops, so we protect against multiple threads in a |
253 // critical section using a class global lock. | 254 // critical section using a class global lock. |
254 void LockDeprecated(); | 255 void LockDeprecated(); |
255 | 256 |
256 // DEPRECATED (crbug.com/345734): | 257 // DEPRECATED (crbug.com/345734): |
257 // Releases the shared memory lock. | 258 // Releases the shared memory lock. |
258 void UnlockDeprecated(); | 259 void UnlockDeprecated(); |
259 | 260 |
260 private: | 261 private: |
261 #if defined(OS_POSIX) && !defined(OS_NACL) | 262 #if defined(OS_POSIX) && !defined(OS_NACL) |
262 bool PrepareMapFile(file_util::ScopedFILE fp, file_util::ScopedFD readonly); | 263 bool PrepareMapFile(file_util::ScopedFILE fp, base::ScopedFD readonly); |
263 bool FilePathForMemoryName(const std::string& mem_name, FilePath* path); | 264 bool FilePathForMemoryName(const std::string& mem_name, FilePath* path); |
264 void LockOrUnlockCommon(int function); | 265 void LockOrUnlockCommon(int function); |
265 #endif | 266 #endif |
266 enum ShareMode { | 267 enum ShareMode { |
267 SHARE_READONLY, | 268 SHARE_READONLY, |
268 SHARE_CURRENT_MODE, | 269 SHARE_CURRENT_MODE, |
269 }; | 270 }; |
270 bool ShareToProcessCommon(ProcessHandle process, | 271 bool ShareToProcessCommon(ProcessHandle process, |
271 SharedMemoryHandle* new_handle, | 272 SharedMemoryHandle* new_handle, |
272 bool close_self, | 273 bool close_self, |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 } | 307 } |
307 | 308 |
308 private: | 309 private: |
309 SharedMemory* shared_memory_; | 310 SharedMemory* shared_memory_; |
310 DISALLOW_COPY_AND_ASSIGN(SharedMemoryAutoLockDeprecated); | 311 DISALLOW_COPY_AND_ASSIGN(SharedMemoryAutoLockDeprecated); |
311 }; | 312 }; |
312 | 313 |
313 } // namespace base | 314 } // namespace base |
314 | 315 |
315 #endif // BASE_MEMORY_SHARED_MEMORY_H_ | 316 #endif // BASE_MEMORY_SHARED_MEMORY_H_ |
OLD | NEW |