| 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_POSIX_GLOBAL_DESCRIPTORS_H_ | 5 #ifndef BASE_POSIX_GLOBAL_DESCRIPTORS_H_ |
| 6 #define BASE_POSIX_GLOBAL_DESCRIPTORS_H_ | 6 #define BASE_POSIX_GLOBAL_DESCRIPTORS_H_ |
| 7 | 7 |
| 8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
| 9 | 9 |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 Key key; | 45 Key key; |
| 46 // Actual FD. | 46 // Actual FD. |
| 47 int fd; | 47 int fd; |
| 48 // Optional region, defaults to kWholeFile. | 48 // Optional region, defaults to kWholeFile. |
| 49 base::MemoryMappedFile::Region region; | 49 base::MemoryMappedFile::Region region; |
| 50 }; | 50 }; |
| 51 typedef std::vector<Descriptor> Mapping; | 51 typedef std::vector<Descriptor> Mapping; |
| 52 | 52 |
| 53 // Often we want a canonical descriptor for a given Key. In this case, we add | 53 // Often we want a canonical descriptor for a given Key. In this case, we add |
| 54 // the following constant to the key value: | 54 // the following constant to the key value: |
| 55 #if !defined(OS_ANDROID) | |
| 56 static const int kBaseDescriptor = 3; // 0, 1, 2 are already taken. | 55 static const int kBaseDescriptor = 3; // 0, 1, 2 are already taken. |
| 57 #else | |
| 58 // 3 used by __android_log_write(). | |
| 59 // 4 used by... something important on Android M. | |
| 60 // 5 used by... something important on Android L... on low-end devices. | |
| 61 // TODO(amistry): An Android, this mechanism is only used for tests since the | |
| 62 // content child launcher spawns a process by creating a new Activity using | |
| 63 // the Android APIs. For tests, come up with a way that doesn't require using | |
| 64 // a pre-defined fd. | |
| 65 static const int kBaseDescriptor = 6; | |
| 66 #endif | |
| 67 | 56 |
| 68 // Return the singleton instance of GlobalDescriptors. | 57 // Return the singleton instance of GlobalDescriptors. |
| 69 static GlobalDescriptors* GetInstance(); | 58 static GlobalDescriptors* GetInstance(); |
| 70 | 59 |
| 71 // Get a descriptor given a key. It is a fatal error if the key is not known. | 60 // Get a descriptor given a key. It is a fatal error if the key is not known. |
| 72 int Get(Key key) const; | 61 int Get(Key key) const; |
| 73 | 62 |
| 74 // Get a descriptor given a key. Returns -1 on error. | 63 // Get a descriptor given a key. Returns -1 on error. |
| 75 int MaybeGet(Key key) const; | 64 int MaybeGet(Key key) const; |
| 76 | 65 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 90 friend struct DefaultSingletonTraits<GlobalDescriptors>; | 79 friend struct DefaultSingletonTraits<GlobalDescriptors>; |
| 91 GlobalDescriptors(); | 80 GlobalDescriptors(); |
| 92 ~GlobalDescriptors(); | 81 ~GlobalDescriptors(); |
| 93 | 82 |
| 94 Mapping descriptors_; | 83 Mapping descriptors_; |
| 95 }; | 84 }; |
| 96 | 85 |
| 97 } // namespace base | 86 } // namespace base |
| 98 | 87 |
| 99 #endif // BASE_POSIX_GLOBAL_DESCRIPTORS_H_ | 88 #endif // BASE_POSIX_GLOBAL_DESCRIPTORS_H_ |
| OLD | NEW |