1 /* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef CHRE_CORE_EVENT_LOOP_COMMON_H_ 18 #define CHRE_CORE_EVENT_LOOP_COMMON_H_ 19 20 #include "chre_api/chre/event.h" 21 22 #include <cstdint> 23 24 namespace chre { 25 26 //! An identifier for a system callback, which is mapped into a CHRE event type 27 //! in the user-defined range. 28 enum class SystemCallbackType : uint16_t { 29 FirstCallbackType = CHRE_EVENT_FIRST_USER_VALUE, 30 31 MessageToHostComplete, 32 WifiScanMonitorStateChange, 33 WifiRequestScanResponse, 34 WifiHandleScanEvent, 35 NanoappListResponse, 36 SensorLastEventUpdate, 37 FinishLoadingNanoapp, 38 WwanHandleCellInfoResult, 39 HandleUnloadNanoapp, 40 GnssSessionStatusChange, 41 SensorStatusUpdate, 42 PerformDebugDump, 43 TimerPoolTick, 44 AudioHandleDataEvent, 45 WifiHandleRangingEvent, 46 AudioAvailabilityChange, 47 AudioHandleHostAwake, 48 SensorFlushComplete, 49 SensorFlushTimeout, 50 SensorStatusInfoResponse, 51 DeferredMessageToNanoappFromHost, 52 SettingChangeEvent, 53 GnssLocationReportEvent, 54 GnssMeasurementReportEvent, 55 Shutdown, 56 TimerSyncRequest, 57 DelayedFatalError, 58 GnssRequestResyncEvent, 59 SendBufferedLogMessage, 60 HostEndpointConnected, 61 HostEndpointDisconnected, 62 WifiNanServiceIdEvent, 63 WifiNanServiceDiscoveryEvent, 64 WifiNanServiceSessionLostEvent, 65 WifiNanServiceTerminatedEvent, 66 WifiNanAvailabilityEvent, 67 DeferredMetricPostEvent, 68 BleAdvertisementEvent, 69 BleScanResponse, 70 BleRequestResyncEvent, 71 RequestTimeoutEvent, 72 BleReadRssiEvent, 73 }; 74 75 //! Deferred/delayed callbacks use the event subsystem but are invariably sent 76 //! by the system and received by the system, so they are able to make use of an 77 //! extra parameter 78 //! @see Event 79 using SystemEventCallbackFunction = void(uint16_t type, void *data, 80 void *extraData); 81 82 } // namespace chre 83 84 #endif // CHRE_CORE_EVENT_LOOP_COMMON_H_ 85