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) |
55 static const int kBaseDescriptor = 3; // 0, 1, 2 are already taken. | 56 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 |
56 | 67 |
57 // Return the singleton instance of GlobalDescriptors. | 68 // Return the singleton instance of GlobalDescriptors. |
58 static GlobalDescriptors* GetInstance(); | 69 static GlobalDescriptors* GetInstance(); |
59 | 70 |
60 // Get a descriptor given a key. It is a fatal error if the key is not known. | 71 // Get a descriptor given a key. It is a fatal error if the key is not known. |
61 int Get(Key key) const; | 72 int Get(Key key) const; |
62 | 73 |
63 // Get a descriptor given a key. Returns -1 on error. | 74 // Get a descriptor given a key. Returns -1 on error. |
64 int MaybeGet(Key key) const; | 75 int MaybeGet(Key key) const; |
65 | 76 |
(...skipping 13 matching lines...) Expand all Loading... |
79 friend struct DefaultSingletonTraits<GlobalDescriptors>; | 90 friend struct DefaultSingletonTraits<GlobalDescriptors>; |
80 GlobalDescriptors(); | 91 GlobalDescriptors(); |
81 ~GlobalDescriptors(); | 92 ~GlobalDescriptors(); |
82 | 93 |
83 Mapping descriptors_; | 94 Mapping descriptors_; |
84 }; | 95 }; |
85 | 96 |
86 } // namespace base | 97 } // namespace base |
87 | 98 |
88 #endif // BASE_POSIX_GLOBAL_DESCRIPTORS_H_ | 99 #endif // BASE_POSIX_GLOBAL_DESCRIPTORS_H_ |
OLD | NEW |