diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/android/choreographer.h | 12 | ||||
-rw-r--r-- | include/android/configuration.h | 24 | ||||
-rw-r--r-- | include/android/input.h | 20 | ||||
-rw-r--r-- | include/android/multinetwork.h | 10 | ||||
-rw-r--r-- | include/android/native_window_jni.h | 4 | ||||
-rw-r--r-- | include/android/sensor.h | 39 | ||||
-rw-r--r-- | include/android/sharedmem.h | 10 | ||||
-rw-r--r-- | include/android/sharedmem_jni.h | 6 | ||||
-rw-r--r-- | include/android/surface_texture.h | 14 | ||||
-rw-r--r-- | include/android/trace.h | 10 |
10 files changed, 58 insertions, 91 deletions
diff --git a/include/android/choreographer.h b/include/android/choreographer.h index 43346fe83f..11f8f6b0c7 100644 --- a/include/android/choreographer.h +++ b/include/android/choreographer.h @@ -30,8 +30,6 @@ __BEGIN_DECLS -#if __ANDROID_API__ >= 24 - struct AChoreographer; typedef struct AChoreographer AChoreographer; @@ -49,23 +47,23 @@ typedef void (*AChoreographer_frameCallback)(long frameTimeNanos, void* data); * Get the AChoreographer instance for the current thread. This must be called * on an ALooper thread. */ -AChoreographer* AChoreographer_getInstance(); +AChoreographer* AChoreographer_getInstance() __INTRODUCED_IN(24); /** * Post a callback to be run on the next frame. The data pointer provided will * be passed to the callback function when it's called. */ void AChoreographer_postFrameCallback(AChoreographer* choreographer, - AChoreographer_frameCallback callback, void* data); + AChoreographer_frameCallback callback, void* data) __INTRODUCED_IN(24); + /** * Post a callback to be run on the frame following the specified delay. The * data pointer provided will be passed to the callback function when it's * called. */ void AChoreographer_postFrameCallbackDelayed(AChoreographer* choreographer, - AChoreographer_frameCallback callback, void* data, long delayMillis); - -#endif /* __ANDROID_API__ >= 24 */ + AChoreographer_frameCallback callback, void* data, + long delayMillis) __INTRODUCED_IN(24); __END_DECLS diff --git a/include/android/configuration.h b/include/android/configuration.h index 628733231a..81aedca9d8 100644 --- a/include/android/configuration.h +++ b/include/android/configuration.h @@ -30,6 +30,10 @@ #include <android/asset_manager.h> +#if !defined(__INTRODUCED_IN) +#define __INTRODUCED_IN(__api_level) /* nothing */ +#endif + #ifdef __cplusplus extern "C" { #endif @@ -671,53 +675,49 @@ int32_t AConfiguration_getUiModeNight(AConfiguration* config); */ void AConfiguration_setUiModeNight(AConfiguration* config, int32_t uiModeNight); -#if __ANDROID_API__ >= 13 /** * Return the current configuration screen width in dp units, or * ACONFIGURATION_SCREEN_WIDTH_DP_ANY if not set. */ -int32_t AConfiguration_getScreenWidthDp(AConfiguration* config); +int32_t AConfiguration_getScreenWidthDp(AConfiguration* config) __INTRODUCED_IN(13); /** * Set the configuration's current screen width in dp units. */ -void AConfiguration_setScreenWidthDp(AConfiguration* config, int32_t value); +void AConfiguration_setScreenWidthDp(AConfiguration* config, int32_t value) __INTRODUCED_IN(13); /** * Return the current configuration screen height in dp units, or * ACONFIGURATION_SCREEN_HEIGHT_DP_ANY if not set. */ -int32_t AConfiguration_getScreenHeightDp(AConfiguration* config); +int32_t AConfiguration_getScreenHeightDp(AConfiguration* config) __INTRODUCED_IN(13); /** * Set the configuration's current screen width in dp units. */ -void AConfiguration_setScreenHeightDp(AConfiguration* config, int32_t value); +void AConfiguration_setScreenHeightDp(AConfiguration* config, int32_t value) __INTRODUCED_IN(13); /** * Return the configuration's smallest screen width in dp units, or * ACONFIGURATION_SMALLEST_SCREEN_WIDTH_DP_ANY if not set. */ -int32_t AConfiguration_getSmallestScreenWidthDp(AConfiguration* config); +int32_t AConfiguration_getSmallestScreenWidthDp(AConfiguration* config) __INTRODUCED_IN(13); /** * Set the configuration's smallest screen width in dp units. */ -void AConfiguration_setSmallestScreenWidthDp(AConfiguration* config, int32_t value); -#endif /* __ANDROID_API__ >= 13 */ +void AConfiguration_setSmallestScreenWidthDp(AConfiguration* config, int32_t value) __INTRODUCED_IN(13); -#if __ANDROID_API__ >= 17 /** * Return the configuration's layout direction, or * ACONFIGURATION_LAYOUTDIR_ANY if not set. */ -int32_t AConfiguration_getLayoutDirection(AConfiguration* config); +int32_t AConfiguration_getLayoutDirection(AConfiguration* config) __INTRODUCED_IN(17); /** * Set the configuration's layout direction. */ -void AConfiguration_setLayoutDirection(AConfiguration* config, int32_t value); -#endif /* __ANDROID_API__ >= 17 */ +void AConfiguration_setLayoutDirection(AConfiguration* config, int32_t value) __INTRODUCED_IN(17); /** * Perform a diff between two configurations. Returns a bit mask of diff --git a/include/android/input.h b/include/android/input.h index f3f5312e80..3b36d2e80c 100644 --- a/include/android/input.h +++ b/include/android/input.h @@ -56,6 +56,10 @@ #include <android/keycodes.h> #include <android/looper.h> +#if !defined(__INTRODUCED_IN) +#define __INTRODUCED_IN(__api_level) /* nothing */ +#endif + #ifdef __cplusplus extern "C" { #endif @@ -982,10 +986,8 @@ int32_t AMotionEvent_getFlags(const AInputEvent* motion_event); */ int32_t AMotionEvent_getMetaState(const AInputEvent* motion_event); -#if __ANDROID_API__ >= 14 /** Get the button state of all buttons that are pressed. */ -int32_t AMotionEvent_getButtonState(const AInputEvent* motion_event); -#endif +int32_t AMotionEvent_getButtonState(const AInputEvent* motion_event) __INTRODUCED_IN(14); /** * Get a bitfield indicating which edges, if any, were touched by this motion event. @@ -1050,14 +1052,12 @@ size_t AMotionEvent_getPointerCount(const AInputEvent* motion_event); */ int32_t AMotionEvent_getPointerId(const AInputEvent* motion_event, size_t pointer_index); -#if __ANDROID_API__ >= 14 /** * Get the tool type of a pointer for the given pointer index. * The tool type indicates the type of tool used to make contact such as a * finger or stylus, if known. */ -int32_t AMotionEvent_getToolType(const AInputEvent* motion_event, size_t pointer_index); -#endif +int32_t AMotionEvent_getToolType(const AInputEvent* motion_event, size_t pointer_index) __INTRODUCED_IN(14); /** * Get the original raw X coordinate of this event. @@ -1147,11 +1147,9 @@ float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_ */ float AMotionEvent_getOrientation(const AInputEvent* motion_event, size_t pointer_index); -#if __ANDROID_API__ >= 13 /** Get the value of the request axis for the given pointer index. */ float AMotionEvent_getAxisValue(const AInputEvent* motion_event, - int32_t axis, size_t pointer_index); -#endif + int32_t axis, size_t pointer_index) __INTRODUCED_IN(13); /** * Get the number of historical points in this event. These are movements that @@ -1282,14 +1280,12 @@ float AMotionEvent_getHistoricalToolMinor(const AInputEvent* motion_event, size_ float AMotionEvent_getHistoricalOrientation(const AInputEvent* motion_event, size_t pointer_index, size_t history_index); -#if __ANDROID_API__ >= 13 /** * Get the historical value of the request axis for the given pointer index * that occurred between this event and the previous motion event. */ float AMotionEvent_getHistoricalAxisValue(const AInputEvent* motion_event, - int32_t axis, size_t pointer_index, size_t history_index); -#endif + int32_t axis, size_t pointer_index, size_t history_index) __INTRODUCED_IN(13); struct AInputQueue; diff --git a/include/android/multinetwork.h b/include/android/multinetwork.h index 5f2a57f377..55df9f85c3 100644 --- a/include/android/multinetwork.h +++ b/include/android/multinetwork.h @@ -60,8 +60,6 @@ typedef uint64_t net_handle_t; * on failure with an appropriate errno value set. */ -#if __ANDROID_API__ >= 24 - /** * Set the network to be used by the given socket file descriptor. * @@ -70,7 +68,7 @@ typedef uint64_t net_handle_t; * This is the equivalent of: [android.net.Network#bindSocket()](https://developer.android.com/reference/android/net/Network.html#bindSocket(java.net.Socket)) * */ -int android_setsocknetwork(net_handle_t network, int fd); +int android_setsocknetwork(net_handle_t network, int fd) __INTRODUCED_IN(23); /** @@ -87,7 +85,7 @@ int android_setsocknetwork(net_handle_t network, int fd); * This is the equivalent of: [android.net.ConnectivityManager#setProcessDefaultNetwork()](https://developer.android.com/reference/android/net/ConnectivityManager.html#setProcessDefaultNetwork(android.net.Network)) * */ -int android_setprocnetwork(net_handle_t network); +int android_setprocnetwork(net_handle_t network) __INTRODUCED_IN(23); /** @@ -106,9 +104,7 @@ int android_setprocnetwork(net_handle_t network); */ int android_getaddrinfofornetwork(net_handle_t network, const char *node, const char *service, - const struct addrinfo *hints, struct addrinfo **res); - -#endif /* __ANDROID_API__ >= 24 */ + const struct addrinfo *hints, struct addrinfo **res) __INTRODUCED_IN(23); __END_DECLS diff --git a/include/android/native_window_jni.h b/include/android/native_window_jni.h index 082fab22b5..74e43c77b9 100644 --- a/include/android/native_window_jni.h +++ b/include/android/native_window_jni.h @@ -44,7 +44,6 @@ extern "C" { */ ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface); -#if __ANDROID_API__ >= 26 /** * Return a Java Surface object derived from the ANativeWindow, for interacting * with it through Java code. The returned Java object acquires a reference on @@ -52,8 +51,7 @@ ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface); * and will automatically release the reference when the Java object gets garbage * collected. */ -jobject ANativeWindow_toSurface(JNIEnv* env, ANativeWindow* window); -#endif +jobject ANativeWindow_toSurface(JNIEnv* env, ANativeWindow* window) __INTRODUCED_IN(26); #ifdef __cplusplus }; diff --git a/include/android/sensor.h b/include/android/sensor.h index 191777cee5..59229c114f 100644 --- a/include/android/sensor.h +++ b/include/android/sensor.h @@ -478,7 +478,6 @@ __attribute__ ((deprecated)) ASensorManager* ASensorManager_getInstance(); ASensorManager* ASensorManager_getInstance(); #endif -#if __ANDROID_API__ >= __ANDROID_API_O__ /** * Get a reference to the sensor manager. ASensorManager is a singleton * per package as different packages may have access to different sensors. @@ -488,8 +487,7 @@ ASensorManager* ASensorManager_getInstance(); * ASensorManager* sensorManager = ASensorManager_getInstanceForPackage("foo.bar.baz"); * */ -ASensorManager* ASensorManager_getInstanceForPackage(const char* packageName); -#endif +ASensorManager* ASensorManager_getInstanceForPackage(const char* packageName) __INTRODUCED_IN(26); /** * Returns the list of available sensors. @@ -502,13 +500,11 @@ int ASensorManager_getSensorList(ASensorManager* manager, ASensorList* list); */ ASensor const* ASensorManager_getDefaultSensor(ASensorManager* manager, int type); -#if __ANDROID_API__ >= 21 /** * Returns the default sensor with the given type and wakeUp properties or NULL if no sensor * of this type and wakeUp properties exists. */ -ASensor const* ASensorManager_getDefaultSensorEx(ASensorManager* manager, int type, bool wakeUp); -#endif +ASensor const* ASensorManager_getDefaultSensorEx(ASensorManager* manager, int type, bool wakeUp) __INTRODUCED_IN(21); /** * Creates a new sensor event queue and associate it with a looper. @@ -525,7 +521,6 @@ ASensorEventQueue* ASensorManager_createEventQueue(ASensorManager* manager, */ int ASensorManager_destroyEventQueue(ASensorManager* manager, ASensorEventQueue* queue); -#if __ANDROID_API__ >= __ANDROID_API_O__ /** * Create direct channel based on shared memory * @@ -542,7 +537,7 @@ int ASensorManager_destroyEventQueue(ASensorManager* manager, ASensorEventQueue* * {@link ASensorManager_destroyDirectChannel} and * {@link ASensorManager_configureDirectReport}, or value less or equal to 0 for failures. */ -int ASensorManager_createSharedMemoryDirectChannel(ASensorManager* manager, int fd, size_t size); +int ASensorManager_createSharedMemoryDirectChannel(ASensorManager* manager, int fd, size_t size) __INTRODUCED_IN(26); /** * Create direct channel based on AHardwareBuffer @@ -560,7 +555,7 @@ int ASensorManager_createSharedMemoryDirectChannel(ASensorManager* manager, int * {@link ASensorManager_configureDirectReport}, or value less or equal to 0 for failures. */ int ASensorManager_createHardwareBufferDirectChannel( - ASensorManager* manager, AHardwareBuffer const * buffer, size_t size); + ASensorManager* manager, AHardwareBuffer const * buffer, size_t size) __INTRODUCED_IN(26); /** * Destroy a direct channel @@ -575,7 +570,7 @@ int ASensorManager_createHardwareBufferDirectChannel( * {@link ASensorManager_createSharedMemoryDirectChannel} or * {@link ASensorManager_createHardwareBufferDirectChannel}. */ -void ASensorManager_destroyDirectChannel(ASensorManager* manager, int channelId); +void ASensorManager_destroyDirectChannel(ASensorManager* manager, int channelId) __INTRODUCED_IN(26); /** * Configure direct report on channel @@ -612,9 +607,8 @@ void ASensorManager_destroyDirectChannel(ASensorManager* manager, int channelId) * * \return positive token for success or negative error code. */ -int ASensorManager_configureDirectReport( - ASensorManager* manager, ASensor const* sensor, int channelId, int rate); -#endif +int ASensorManager_configureDirectReport(ASensorManager* manager, + ASensor const* sensor, int channelId, int rate) __INTRODUCED_IN(26); /*****************************************************************************/ @@ -733,35 +727,32 @@ float ASensor_getResolution(ASensor const* sensor); */ int ASensor_getMinDelay(ASensor const* sensor); -#if __ANDROID_API__ >= 21 /** * Returns the maximum size of batches for this sensor. Batches will often be * smaller, as the hardware fifo might be used for other sensors. */ -int ASensor_getFifoMaxEventCount(ASensor const* sensor); +int ASensor_getFifoMaxEventCount(ASensor const* sensor) __INTRODUCED_IN(21); /** * Returns the hardware batch fifo size reserved to this sensor. */ -int ASensor_getFifoReservedEventCount(ASensor const* sensor); +int ASensor_getFifoReservedEventCount(ASensor const* sensor) __INTRODUCED_IN(21); /** * Returns this sensor's string type. */ -const char* ASensor_getStringType(ASensor const* sensor); +const char* ASensor_getStringType(ASensor const* sensor) __INTRODUCED_IN(21); /** * Returns the reporting mode for this sensor. One of AREPORTING_MODE_* constants. */ -int ASensor_getReportingMode(ASensor const* sensor); +int ASensor_getReportingMode(ASensor const* sensor) __INTRODUCED_IN(21); /** * Returns true if this is a wake up sensor, false otherwise. */ -bool ASensor_isWakeUpSensor(ASensor const* sensor); -#endif /* __ANDROID_API__ >= 21 */ +bool ASensor_isWakeUpSensor(ASensor const* sensor) __INTRODUCED_IN(21); -#if __ANDROID_API__ >= __ANDROID_API_O__ /** * Test if sensor supports a certain type of direct channel. * @@ -771,7 +762,8 @@ bool ASensor_isWakeUpSensor(ASensor const* sensor); * or {@link ASENSOR_DIRECT_CHANNEL_TYPE_HARDWARE_BUFFER}. * \returns true if sensor supports the specified direct channel type. */ -bool ASensor_isDirectChannelTypeSupported(ASensor const* sensor, int channelType); +bool ASensor_isDirectChannelTypeSupported(ASensor const* sensor, int channelType) __INTRODUCED_IN(26); + /** * Get the highest direct rate level that a sensor support. * @@ -781,8 +773,7 @@ bool ASensor_isDirectChannelTypeSupported(ASensor const* sensor, int channelType * If return value is {@link ASENSOR_DIRECT_RATE_STOP}, it means the sensor * does not support direct report. */ -int ASensor_getHighestDirectReportRateLevel(ASensor const* sensor); -#endif +int ASensor_getHighestDirectReportRateLevel(ASensor const* sensor) __INTRODUCED_IN(26); #ifdef __cplusplus }; diff --git a/include/android/sharedmem.h b/include/android/sharedmem.h index 46d2f4bf4a..0354f17f48 100644 --- a/include/android/sharedmem.h +++ b/include/android/sharedmem.h @@ -52,8 +52,6 @@ extern "C" { #endif -#if __ANDROID_API__ >= __ANDROID_API_O__ - /** * Create a shared memory region. * @@ -67,7 +65,7 @@ extern "C" { * \param size size of the shared memory region * \return file descriptor that denotes the shared memory; error code on failure. */ -int ASharedMemory_create(const char *name, size_t size); +int ASharedMemory_create(const char *name, size_t size) __INTRODUCED_IN(26); /** * Get the size of the shared memory region. @@ -75,7 +73,7 @@ int ASharedMemory_create(const char *name, size_t size); * \param fd file descriptor of the shared memory region * \return size in bytes; 0 if fd is not a valid shared memory file descriptor. */ -size_t ASharedMemory_getSize(int fd); +size_t ASharedMemory_getSize(int fd) __INTRODUCED_IN(26); /** * Restrict access of shared memory region. @@ -106,9 +104,7 @@ size_t ASharedMemory_getSize(int fd); * updated access. Note access can only be removed, but not added back. * \return 0 for success, error code on failure. */ -int ASharedMemory_setProt(int fd, int prot); - -#endif +int ASharedMemory_setProt(int fd, int prot) __INTRODUCED_IN(26); #ifdef __cplusplus }; diff --git a/include/android/sharedmem_jni.h b/include/android/sharedmem_jni.h index 85ac78f9b1..d8b514f680 100644 --- a/include/android/sharedmem_jni.h +++ b/include/android/sharedmem_jni.h @@ -54,8 +54,6 @@ extern "C" { #endif -#if __ANDROID_API__ >= __ANDROID_API_O_MR1__ - /** * Returns a dup'd FD from the given Java android.os.SharedMemory object. The returned file * descriptor has all the same properties & capabilities as the FD returned from @@ -70,9 +68,7 @@ extern "C" { * already closed, if the JNIEnv or jobject is NULL, or if there are too many open file * descriptors (errno=EMFILE) */ -int ASharedMemory_dupFromJava(JNIEnv* env, jobject sharedMemory); - -#endif +int ASharedMemory_dupFromJava(JNIEnv* env, jobject sharedMemory) __INTRODUCED_IN(27); #ifdef __cplusplus }; diff --git a/include/android/surface_texture.h b/include/android/surface_texture.h index 56b3342166..db10a1618e 100644 --- a/include/android/surface_texture.h +++ b/include/android/surface_texture.h @@ -64,7 +64,7 @@ typedef struct ASurfaceTexture ASurfaceTexture; * Failing to do so will result in leaked memory and graphic resources. * \param st A ASurfaceTexture reference acquired with ASurfaceTexture_fromSurfaceTexture() */ -void ASurfaceTexture_release(ASurfaceTexture* st); +void ASurfaceTexture_release(ASurfaceTexture* st) __INTRODUCED_IN(28); /** * Returns a reference to an ANativeWindow (i.e. the Producer) for this SurfaceTexture. @@ -75,7 +75,7 @@ void ASurfaceTexture_release(ASurfaceTexture* st); * using ANativeWindow_release(). Failing to do so will result in leaked resources. nullptr is * returned if \st is null or if it's not an instance of android.graphics.SurfaceTexture */ -ANativeWindow* ASurfaceTexture_acquireANativeWindow(ASurfaceTexture* st); +ANativeWindow* ASurfaceTexture_acquireANativeWindow(ASurfaceTexture* st) __INTRODUCED_IN(28); /** * Attach the SurfaceTexture to the OpenGL ES context that is current on the calling thread. A @@ -92,7 +92,7 @@ ANativeWindow* ASurfaceTexture_acquireANativeWindow(ASurfaceTexture* st); * must be unusued in the OpenGL ES context that is current on the calling thread. * \return 0 on success, negative posix error code otherwise (see <errno.h>) */ -int ASurfaceTexture_attachToGLContext(ASurfaceTexture* st, uint32_t texName); +int ASurfaceTexture_attachToGLContext(ASurfaceTexture* st, uint32_t texName) __INTRODUCED_IN(28); /** * Detach the SurfaceTexture from the OpenGL ES context that owns the OpenGL ES texture object. @@ -108,7 +108,7 @@ int ASurfaceTexture_attachToGLContext(ASurfaceTexture* st, uint32_t texName); * \param st A ASurfaceTexture reference acquired with ASurfaceTexture_fromSurfaceTexture() * \return 0 on success, negative posix error code otherwise (see <errno.h>) */ -int ASurfaceTexture_detachFromGLContext(ASurfaceTexture* st); +int ASurfaceTexture_detachFromGLContext(ASurfaceTexture* st) __INTRODUCED_IN(28); /** * Update the texture image to the most recent frame from the image stream. This may only be @@ -118,7 +118,7 @@ int ASurfaceTexture_detachFromGLContext(ASurfaceTexture* st); * \param st A ASurfaceTexture reference acquired with ASurfaceTexture_fromSurfaceTexture() * \return 0 on success, negative posix error code otherwise (see <errno.h>) */ -int ASurfaceTexture_updateTexImage(ASurfaceTexture* st); +int ASurfaceTexture_updateTexImage(ASurfaceTexture* st) __INTRODUCED_IN(28); /** * Retrieve the 4x4 texture coordinate transform matrix associated with the texture image set by @@ -136,7 +136,7 @@ int ASurfaceTexture_updateTexImage(ASurfaceTexture* st); * \param mtx the array into which the 4x4 matrix will be stored. The array must have exactly * 16 elements. */ -void ASurfaceTexture_getTransformMatrix(ASurfaceTexture* st, float mtx[16]); +void ASurfaceTexture_getTransformMatrix(ASurfaceTexture* st, float mtx[16]) __INTRODUCED_IN(28); /** * Retrieve the timestamp associated with the texture image set by the most recent call to @@ -155,7 +155,7 @@ void ASurfaceTexture_getTransformMatrix(ASurfaceTexture* st, float mtx[16]); * * \param st A ASurfaceTexture reference acquired with ASurfaceTexture_fromSurfaceTexture() */ -int64_t ASurfaceTexture_getTimestamp(ASurfaceTexture* st); +int64_t ASurfaceTexture_getTimestamp(ASurfaceTexture* st) __INTRODUCED_IN(28); __END_DECLS diff --git a/include/android/trace.h b/include/android/trace.h index d9e5d8850f..9f59acfaba 100644 --- a/include/android/trace.h +++ b/include/android/trace.h @@ -37,13 +37,11 @@ extern "C" { #endif -#if __ANDROID_API__ >= 23 - /** * Returns true if tracing is enabled. Use this signal to avoid expensive computation only necessary * when tracing is enabled. */ -bool ATrace_isEnabled(); +bool ATrace_isEnabled() __INTRODUCED_IN(23); /** * Writes a tracing message to indicate that the given section of code has begun. This call must be @@ -53,7 +51,7 @@ bool ATrace_isEnabled(); * by the tracing mechanism. If sectionName contains these characters they will be replaced with a * space character in the trace. */ -void ATrace_beginSection(const char* sectionName); +void ATrace_beginSection(const char* sectionName) __INTRODUCED_IN(23); /** * Writes a tracing message to indicate that a given section of code has ended. This call must be @@ -61,9 +59,7 @@ void ATrace_beginSection(const char* sectionName); * will mark the end of the most recently begun section of code, so care must be taken to ensure * that beginSection / endSection pairs are properly nested and called from the same thread. */ -void ATrace_endSection(); - -#endif /* __ANDROID_API__ >= 23 */ +void ATrace_endSection() __INTRODUCED_IN(23); #ifdef __cplusplus }; |