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 |