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 }; 61 62 //! Deferred/delayed callbacks use the event subsystem but are invariably sent 63 //! by the system and received by the system, so they are able to make use of an 64 //! extra parameter 65 //! @see Event 66 using SystemEventCallbackFunction = void(uint16_t type, void *data, 67 void *extraData); 68 69 /** 70 * Generic event free callback that can be used by any event where the event 71 * data is allocated via memoryAlloc, and no special processing is needed in the 72 * event complete callback other than freeing the event data. 73 */ 74 void freeEventDataCallback(uint16_t eventType, void *eventData); 75 76 } // namespace chre 77 78 #endif // CHRE_CORE_EVENT_LOOP_COMMON_H_ 79