1*8222fbe1SAndroid Build Coastguard Worker /* 2*8222fbe1SAndroid Build Coastguard Worker * Copyright (C) 2016 The Android Open Source Project 3*8222fbe1SAndroid Build Coastguard Worker * 4*8222fbe1SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*8222fbe1SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*8222fbe1SAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*8222fbe1SAndroid Build Coastguard Worker * 8*8222fbe1SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*8222fbe1SAndroid Build Coastguard Worker * 10*8222fbe1SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*8222fbe1SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*8222fbe1SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*8222fbe1SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*8222fbe1SAndroid Build Coastguard Worker * limitations under the License. 15*8222fbe1SAndroid Build Coastguard Worker */ 16*8222fbe1SAndroid Build Coastguard Worker 17*8222fbe1SAndroid Build Coastguard Worker // All static variables go here, to control initialization and 18*8222fbe1SAndroid Build Coastguard Worker // destruction order in the library. 19*8222fbe1SAndroid Build Coastguard Worker 20*8222fbe1SAndroid Build Coastguard Worker #include <hidl/Static.h> 21*8222fbe1SAndroid Build Coastguard Worker #include "InternalStatic.h" 22*8222fbe1SAndroid Build Coastguard Worker 23*8222fbe1SAndroid Build Coastguard Worker #include <android/hidl/manager/1.0/IServiceManager.h> 24*8222fbe1SAndroid Build Coastguard Worker #include <utils/Mutex.h> 25*8222fbe1SAndroid Build Coastguard Worker 26*8222fbe1SAndroid Build Coastguard Worker namespace android { 27*8222fbe1SAndroid Build Coastguard Worker namespace hardware { 28*8222fbe1SAndroid Build Coastguard Worker namespace details { 29*8222fbe1SAndroid Build Coastguard Worker 30*8222fbe1SAndroid Build Coastguard Worker DoNotDestruct<ConcurrentMap<const ::android::hidl::base::V1_0::IBase*, 31*8222fbe1SAndroid Build Coastguard Worker wp<::android::hardware::BHwBinder>>> 32*8222fbe1SAndroid Build Coastguard Worker gBnMap{}; 33*8222fbe1SAndroid Build Coastguard Worker 34*8222fbe1SAndroid Build Coastguard Worker // TODO(b/122472540): replace with single, hidden map 35*8222fbe1SAndroid Build Coastguard Worker DoNotDestruct<ConcurrentMap<wp<::android::hidl::base::V1_0::IBase>, SchedPrio>> gServicePrioMap{}; 36*8222fbe1SAndroid Build Coastguard Worker DoNotDestruct<ConcurrentMap<wp<::android::hidl::base::V1_0::IBase>, bool>> gServiceSidMap{}; 37*8222fbe1SAndroid Build Coastguard Worker getBnConstructorMap()38*8222fbe1SAndroid Build Coastguard WorkerBnConstructorMap& getBnConstructorMap() { 39*8222fbe1SAndroid Build Coastguard Worker static BnConstructorMap& map = *new BnConstructorMap(); 40*8222fbe1SAndroid Build Coastguard Worker return map; 41*8222fbe1SAndroid Build Coastguard Worker } 42*8222fbe1SAndroid Build Coastguard Worker getBsConstructorMap()43*8222fbe1SAndroid Build Coastguard WorkerBsConstructorMap& getBsConstructorMap() { 44*8222fbe1SAndroid Build Coastguard Worker static BsConstructorMap& map = *new BsConstructorMap(); 45*8222fbe1SAndroid Build Coastguard Worker return map; 46*8222fbe1SAndroid Build Coastguard Worker } 47*8222fbe1SAndroid Build Coastguard Worker 48*8222fbe1SAndroid Build Coastguard Worker } // namespace details 49*8222fbe1SAndroid Build Coastguard Worker } // namespace hardware 50*8222fbe1SAndroid Build Coastguard Worker } // namespace android 51