1c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung/* 2c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * Copyright (C) 2017 The Android Open Source Project 3c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * 4c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * Licensed under the Apache License, Version 2.0 (the "License"); 5c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * you may not use this file except in compliance with the License. 6c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * You may obtain a copy of the License at 7c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * 8c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * http://www.apache.org/licenses/LICENSE-2.0 9c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * 10c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * Unless required by applicable law or agreed to in writing, software 11c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * distributed under the License is distributed on an "AS IS" BASIS, 12c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * See the License for the specific language governing permissions and 14c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung * limitations under the License. 15c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung */ 16c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung 17a06ab05018d0ed64015452108b2400f3c5e39fedMeng-hsuan Chung#ifndef CHRE_PLATFORM_SLPI_SMGR_SMGR_CLIENT_H_ 18a06ab05018d0ed64015452108b2400f3c5e39fedMeng-hsuan Chung#define CHRE_PLATFORM_SLPI_SMGR_SMGR_CLIENT_H_ 19c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung 20a06ab05018d0ed64015452108b2400f3c5e39fedMeng-hsuan Chung#include "chre/platform/slpi/smgr/smr_helper.h" 21b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie#include "chre/util/singleton.h" 22c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung 23b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie/** 24b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie * @file 25b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie * Exposes the SMR helper and SMGR (non-internal) client handle used by the 26b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie * platform sensor implementation, for use in other modules. 27b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie */ 28c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung 29c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chungnamespace chre { 30c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung 31b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie//! A singleton instance of SmrHelper that can be used for making synchronous 32b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie//! sensor requests while remaining in micro-image. This must only be used from 33b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie//! the CHRE thread. 34b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddietypedef Singleton<SmrHelper> SmrHelperSingleton; 35b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie 36b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie/** 37b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie * Convenience method for fetching the SMR helper singleton instance. Must only 38b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie * be used from the CHRE thread. 39b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie */ 40b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddieinline SmrHelper *getSmrHelper() { 41b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie return SmrHelperSingleton::get(); 42b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie} 43b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie 44c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung/** 45b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie * @return The SMR client handle to the SMGR (non-internal) API, created by the 46b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddie * SLPI platform-specific sensors implementation 47c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung */ 48b9d199936165f42ac7e7eabac1bdb4968d938f4fBrian Duddiesmr_client_hndl getSensorServiceSmrClientHandle(); 49c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung 50c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung} // namespace chre 51c6ef3f619155a7f6e2f0ff5fbc77a11526d9970fMeng-hsuan Chung 52a06ab05018d0ed64015452108b2400f3c5e39fedMeng-hsuan Chung#endif // CHRE_PLATFORM_SLPI_SMGR_SMGR_CLIENT_H_ 53