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   WifiHandleFailedRanging,
46   WifiHandleRangingEvent,
47   AudioAvailabilityChange,
48   AudioHandleHostAwake,
49   SensorFlushComplete,
50   SensorFlushTimeout,
51   SensorStatusInfoResponse,
52 };
53 
54 //! The function signature of a system callback mirrors the CHRE event free
55 //! callback to allow it to use the same event infrastructure.
56 typedef chreEventCompleteFunction SystemCallbackFunction;
57 
58 /**
59  * Generic event free callback that can be used by any event where the event
60  * data is allocated via memoryAlloc, and no special processing is needed in the
61  * event complete callback other than freeing the event data.
62  */
63 void freeEventDataCallback(uint16_t eventType, void *eventData);
64 
65 }  // namespace chre
66 
67 #endif  // CHRE_CORE_EVENT_LOOP_COMMON_H_
68