diff options
author | John Reck <jreck@google.com> | 2024-05-07 23:55:23 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-05-07 23:55:23 +0000 |
commit | 71566b29e76c66bc6648fa39c62ea4a97e7c6186 (patch) | |
tree | fc736377a2626f3b7df3b244861c34a03efeaa11 | |
parent | cf2f81a874c0936222e3d570efc06e77ed4f3a01 (diff) | |
parent | b54710f9e35f66c217d16bdc0ca8564fb78a86bf (diff) | |
download | native-71566b29e76c66bc6648fa39c62ea4a97e7c6186.tar.gz |
Merge "surface_control: Add missing nullability annotations" into main
-rw-r--r-- | include/android/surface_control.h | 216 |
1 files changed, 112 insertions, 104 deletions
diff --git a/include/android/surface_control.h b/include/android/surface_control.h index 443cb7e51f..14167e6467 100644 --- a/include/android/surface_control.h +++ b/include/android/surface_control.h @@ -62,16 +62,18 @@ typedef struct ASurfaceControl ASurfaceControl; * * Available since API level 29. */ -ASurfaceControl* ASurfaceControl_createFromWindow(ANativeWindow* parent, const char* debug_name) - __INTRODUCED_IN(29); +ASurfaceControl* _Nullable ASurfaceControl_createFromWindow(ANativeWindow* _Nonnull parent, + const char* _Nonnull debug_name) + __INTRODUCED_IN(29); /** * See ASurfaceControl_createFromWindow. * * Available since API level 29. */ -ASurfaceControl* ASurfaceControl_create(ASurfaceControl* parent, const char* debug_name) - __INTRODUCED_IN(29); +ASurfaceControl* _Nullable ASurfaceControl_create(ASurfaceControl* _Nonnull parent, + const char* _Nonnull debug_name) + __INTRODUCED_IN(29); /** * Acquires a reference on the given ASurfaceControl object. This prevents the object @@ -81,7 +83,7 @@ ASurfaceControl* ASurfaceControl_create(ASurfaceControl* parent, const char* deb * * Available since API level 31. */ -void ASurfaceControl_acquire(ASurfaceControl* surface_control) __INTRODUCED_IN(31); +void ASurfaceControl_acquire(ASurfaceControl* _Nonnull surface_control) __INTRODUCED_IN(31); /** * Removes a reference that was previously acquired with one of the following functions: @@ -92,7 +94,7 @@ void ASurfaceControl_acquire(ASurfaceControl* surface_control) __INTRODUCED_IN(3 * * Available since API level 29. */ -void ASurfaceControl_release(ASurfaceControl* surface_control) __INTRODUCED_IN(29); +void ASurfaceControl_release(ASurfaceControl* _Nonnull surface_control) __INTRODUCED_IN(29); struct ASurfaceTransaction; @@ -108,14 +110,14 @@ typedef struct ASurfaceTransaction ASurfaceTransaction; * * Available since API level 29. */ -ASurfaceTransaction* ASurfaceTransaction_create() __INTRODUCED_IN(29); +ASurfaceTransaction* _Nonnull ASurfaceTransaction_create() __INTRODUCED_IN(29); /** * Destroys the \a transaction object. * * Available since API level 29. */ -void ASurfaceTransaction_delete(ASurfaceTransaction* transaction) __INTRODUCED_IN(29); +void ASurfaceTransaction_delete(ASurfaceTransaction* _Nullable transaction) __INTRODUCED_IN(29); /** * Applies the updates accumulated in \a transaction. @@ -126,7 +128,7 @@ void ASurfaceTransaction_delete(ASurfaceTransaction* transaction) __INTRODUCED_I * * Available since API level 29. */ -void ASurfaceTransaction_apply(ASurfaceTransaction* transaction) __INTRODUCED_IN(29); +void ASurfaceTransaction_apply(ASurfaceTransaction* _Nonnull transaction) __INTRODUCED_IN(29); /** * An opaque handle returned during a callback that can be used to query general stats and stats for @@ -154,9 +156,9 @@ typedef struct ASurfaceTransactionStats ASurfaceTransactionStats; * * Available since API level 29. */ -typedef void (*ASurfaceTransaction_OnComplete)(void* context, ASurfaceTransactionStats* stats) - __INTRODUCED_IN(29); - +typedef void (*ASurfaceTransaction_OnComplete)(void* _Null_unspecified context, + ASurfaceTransactionStats* _Nonnull stats) + __INTRODUCED_IN(29); /** * The ASurfaceTransaction_OnCommit callback is invoked when transaction is applied and the updates @@ -183,8 +185,9 @@ typedef void (*ASurfaceTransaction_OnComplete)(void* context, ASurfaceTransactio * * Available since API level 31. */ -typedef void (*ASurfaceTransaction_OnCommit)(void* context, ASurfaceTransactionStats* stats) - __INTRODUCED_IN(31); +typedef void (*ASurfaceTransaction_OnCommit)(void* _Null_unspecified context, + ASurfaceTransactionStats* _Nonnull stats) + __INTRODUCED_IN(31); /** * Returns the timestamp of when the frame was latched by the framework. Once a frame is @@ -192,8 +195,8 @@ typedef void (*ASurfaceTransaction_OnCommit)(void* context, ASurfaceTransactionS * * Available since API level 29. */ -int64_t ASurfaceTransactionStats_getLatchTime(ASurfaceTransactionStats* surface_transaction_stats) - __INTRODUCED_IN(29); +int64_t ASurfaceTransactionStats_getLatchTime( + ASurfaceTransactionStats* _Nonnull surface_transaction_stats) __INTRODUCED_IN(29); /** * Returns a sync fence that signals when the transaction has been presented. @@ -204,8 +207,8 @@ int64_t ASurfaceTransactionStats_getLatchTime(ASurfaceTransactionStats* surface_ * * Available since API level 29. */ -int ASurfaceTransactionStats_getPresentFenceFd(ASurfaceTransactionStats* surface_transaction_stats) - __INTRODUCED_IN(29); +int ASurfaceTransactionStats_getPresentFenceFd( + ASurfaceTransactionStats* _Nonnull surface_transaction_stats) __INTRODUCED_IN(29); /** * \a outASurfaceControls returns an array of ASurfaceControl pointers that were updated during the @@ -217,18 +220,18 @@ int ASurfaceTransactionStats_getPresentFenceFd(ASurfaceTransactionStats* surface * * \a outASurfaceControlsSize returns the size of the ASurfaceControls array. */ -void ASurfaceTransactionStats_getASurfaceControls(ASurfaceTransactionStats* surface_transaction_stats, - ASurfaceControl*** outASurfaceControls, - size_t* outASurfaceControlsSize) - __INTRODUCED_IN(29); +void ASurfaceTransactionStats_getASurfaceControls( + ASurfaceTransactionStats* _Nonnull surface_transaction_stats, + ASurfaceControl* _Nullable* _Nullable* _Nonnull outASurfaceControls, + size_t* _Nonnull outASurfaceControlsSize) __INTRODUCED_IN(29); /** * Releases the array of ASurfaceControls that were returned by * ASurfaceTransactionStats_getASurfaceControls(). * * Available since API level 29. */ -void ASurfaceTransactionStats_releaseASurfaceControls(ASurfaceControl** surface_controls) - __INTRODUCED_IN(29); +void ASurfaceTransactionStats_releaseASurfaceControls( + ASurfaceControl* _Nonnull* _Nonnull surface_controls) __INTRODUCED_IN(29); /** * Returns the timestamp of when the CURRENT buffer was acquired. A buffer is considered @@ -237,9 +240,9 @@ void ASurfaceTransactionStats_releaseASurfaceControls(ASurfaceControl** surface_ * * Available since API level 29. */ -int64_t ASurfaceTransactionStats_getAcquireTime(ASurfaceTransactionStats* surface_transaction_stats, - ASurfaceControl* surface_control) - __INTRODUCED_IN(29); +int64_t ASurfaceTransactionStats_getAcquireTime( + ASurfaceTransactionStats* _Nonnull surface_transaction_stats, + ASurfaceControl* _Nonnull surface_control) __INTRODUCED_IN(29); /** * The returns the fence used to signal the release of the PREVIOUS buffer set on @@ -264,9 +267,8 @@ int64_t ASurfaceTransactionStats_getAcquireTime(ASurfaceTransactionStats* surfac * Available since API level 29. */ int ASurfaceTransactionStats_getPreviousReleaseFenceFd( - ASurfaceTransactionStats* surface_transaction_stats, - ASurfaceControl* surface_control) - __INTRODUCED_IN(29); + ASurfaceTransactionStats* _Nonnull surface_transaction_stats, + ASurfaceControl* _Nonnull surface_control) __INTRODUCED_IN(29); /** * Sets the callback that will be invoked when the updates from this transaction @@ -275,8 +277,10 @@ int ASurfaceTransactionStats_getPreviousReleaseFenceFd( * * Available since API level 29. */ -void ASurfaceTransaction_setOnComplete(ASurfaceTransaction* transaction, void* context, - ASurfaceTransaction_OnComplete func) __INTRODUCED_IN(29); +void ASurfaceTransaction_setOnComplete(ASurfaceTransaction* _Nonnull transaction, + void* _Null_unspecified context, + ASurfaceTransaction_OnComplete _Nonnull func) + __INTRODUCED_IN(29); /** * Sets the callback that will be invoked when the updates from this transaction are applied and are @@ -285,8 +289,10 @@ void ASurfaceTransaction_setOnComplete(ASurfaceTransaction* transaction, void* c * * Available since API level 31. */ -void ASurfaceTransaction_setOnCommit(ASurfaceTransaction* transaction, void* context, - ASurfaceTransaction_OnCommit func) __INTRODUCED_IN(31); +void ASurfaceTransaction_setOnCommit(ASurfaceTransaction* _Nonnull transaction, + void* _Null_unspecified context, + ASurfaceTransaction_OnCommit _Nonnull func) + __INTRODUCED_IN(31); /** * Reparents the \a surface_control from its old parent to the \a new_parent surface control. @@ -296,9 +302,9 @@ void ASurfaceTransaction_setOnCommit(ASurfaceTransaction* transaction, void* con * * Available since API level 29. */ -void ASurfaceTransaction_reparent(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, ASurfaceControl* new_parent) - __INTRODUCED_IN(29); +void ASurfaceTransaction_reparent(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, + ASurfaceControl* _Nullable new_parent) __INTRODUCED_IN(29); /** * Parameter for ASurfaceTransaction_setVisibility(). @@ -314,10 +320,10 @@ enum ASurfaceTransactionVisibility : int8_t { * * Available since API level 29. */ -void ASurfaceTransaction_setVisibility(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, +void ASurfaceTransaction_setVisibility(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, enum ASurfaceTransactionVisibility visibility) - __INTRODUCED_IN(29); + __INTRODUCED_IN(29); /** * Updates the z order index for \a surface_control. Note that the z order for a surface @@ -328,9 +334,9 @@ void ASurfaceTransaction_setVisibility(ASurfaceTransaction* transaction, * * Available since API level 29. */ -void ASurfaceTransaction_setZOrder(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, int32_t z_order) - __INTRODUCED_IN(29); +void ASurfaceTransaction_setZOrder(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, int32_t z_order) + __INTRODUCED_IN(29); /** * Updates the AHardwareBuffer displayed for \a surface_control. If not -1, the @@ -345,9 +351,10 @@ void ASurfaceTransaction_setZOrder(ASurfaceTransaction* transaction, * * Available since API level 29. */ -void ASurfaceTransaction_setBuffer(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, AHardwareBuffer* buffer, - int acquire_fence_fd) __INTRODUCED_IN(29); +void ASurfaceTransaction_setBuffer(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, + AHardwareBuffer* _Nonnull buffer, int acquire_fence_fd) + __INTRODUCED_IN(29); /** * Updates the color for \a surface_control. This will make the background color for the @@ -357,23 +364,23 @@ void ASurfaceTransaction_setBuffer(ASurfaceTransaction* transaction, * * Available since API level 29. */ -void ASurfaceTransaction_setColor(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, float r, float g, float b, - float alpha, enum ADataSpace dataspace) - __INTRODUCED_IN(29); +void ASurfaceTransaction_setColor(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, float r, float g, + float b, float alpha, enum ADataSpace dataspace) + __INTRODUCED_IN(29); /** * \param source The sub-rect within the buffer's content to be rendered inside the surface's area * The surface's source rect is clipped by the bounds of its current buffer. The source rect's width * and height must be > 0. * - * \param destination Specifies the rect in the parent's space where this surface will be drawn. The post - * source rect bounds are scaled to fit the destination rect. The surface's destination rect is + * \param destination Specifies the rect in the parent's space where this surface will be drawn. The + * post source rect bounds are scaled to fit the destination rect. The surface's destination rect is * clipped by the bounds of its parent. The destination rect's width and height must be > 0. * - * \param transform The transform applied after the source rect is applied to the buffer. This parameter - * should be set to 0 for no transform. To specify a transfrom use the NATIVE_WINDOW_TRANSFORM_* - * enum. + * \param transform The transform applied after the source rect is applied to the buffer. This + * parameter should be set to 0 for no transform. To specify a transfrom use the + * NATIVE_WINDOW_TRANSFORM_* enum. * * Available since API level 29. * @@ -382,10 +389,10 @@ void ASurfaceTransaction_setColor(ASurfaceTransaction* transaction, * to set different properties at different times, instead of having to specify all the desired * properties at once. */ -void ASurfaceTransaction_setGeometry(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, const ARect& source, +void ASurfaceTransaction_setGeometry(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, const ARect& source, const ARect& destination, int32_t transform) - __INTRODUCED_IN(29); + __INTRODUCED_IN(29); /** * Bounds the surface and its children to the bounds specified. The crop and buffer size will be @@ -396,9 +403,9 @@ void ASurfaceTransaction_setGeometry(ASurfaceTransaction* transaction, * * Available since API level 31. */ -void ASurfaceTransaction_setCrop(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, const ARect& crop) - __INTRODUCED_IN(31); +void ASurfaceTransaction_setCrop(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, const ARect& crop) + __INTRODUCED_IN(31); /** * Specifies the position in the parent's space where the surface will be drawn. @@ -408,9 +415,9 @@ void ASurfaceTransaction_setCrop(ASurfaceTransaction* transaction, * * Available since API level 31. */ -void ASurfaceTransaction_setPosition(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, int32_t x, int32_t y) - __INTRODUCED_IN(31); +void ASurfaceTransaction_setPosition(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, int32_t x, + int32_t y) __INTRODUCED_IN(31); /** * \param transform The transform applied after the source rect is applied to the buffer. This @@ -419,9 +426,9 @@ void ASurfaceTransaction_setPosition(ASurfaceTransaction* transaction, * * Available since API level 31. */ -void ASurfaceTransaction_setBufferTransform(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, int32_t transform) - __INTRODUCED_IN(31); +void ASurfaceTransaction_setBufferTransform(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, + int32_t transform) __INTRODUCED_IN(31); /** * Sets an x and y scale of a surface with (0, 0) as the centerpoint of the scale. @@ -431,9 +438,9 @@ void ASurfaceTransaction_setBufferTransform(ASurfaceTransaction* transaction, * * Available since API level 31. */ -void ASurfaceTransaction_setScale(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, float xScale, float yScale) - __INTRODUCED_IN(31); +void ASurfaceTransaction_setScale(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, float xScale, + float yScale) __INTRODUCED_IN(31); /** * Parameter for ASurfaceTransaction_setBufferTransparency(). */ @@ -449,8 +456,8 @@ enum ASurfaceTransactionTransparency : int8_t { * * Available since API level 29. */ -void ASurfaceTransaction_setBufferTransparency(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, +void ASurfaceTransaction_setBufferTransparency(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, enum ASurfaceTransactionTransparency transparency) __INTRODUCED_IN(29); @@ -460,9 +467,10 @@ void ASurfaceTransaction_setBufferTransparency(ASurfaceTransaction* transaction, * * Available since API level 29. */ -void ASurfaceTransaction_setDamageRegion(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, const ARect rects[], - uint32_t count) __INTRODUCED_IN(29); +void ASurfaceTransaction_setDamageRegion(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, + const ARect* _Nullable rects, uint32_t count) + __INTRODUCED_IN(29); /** * Specifies a desiredPresentTime for the transaction. The framework will try to present @@ -476,7 +484,7 @@ void ASurfaceTransaction_setDamageRegion(ASurfaceTransaction* transaction, * * Available since API level 29. */ -void ASurfaceTransaction_setDesiredPresentTime(ASurfaceTransaction* transaction, +void ASurfaceTransaction_setDesiredPresentTime(ASurfaceTransaction* _Nonnull transaction, int64_t desiredPresentTime) __INTRODUCED_IN(29); /** @@ -486,8 +494,8 @@ void ASurfaceTransaction_setDesiredPresentTime(ASurfaceTransaction* transaction, * * Available since API level 29. */ -void ASurfaceTransaction_setBufferAlpha(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, float alpha) +void ASurfaceTransaction_setBufferAlpha(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, float alpha) __INTRODUCED_IN(29); /** @@ -497,9 +505,9 @@ void ASurfaceTransaction_setBufferAlpha(ASurfaceTransaction* transaction, * * Available since API level 29. */ -void ASurfaceTransaction_setBufferDataSpace(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, enum ADataSpace data_space) - __INTRODUCED_IN(29); +void ASurfaceTransaction_setBufferDataSpace(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, + enum ADataSpace data_space) __INTRODUCED_IN(29); /** * SMPTE ST 2086 "Mastering Display Color Volume" static metadata @@ -509,9 +517,9 @@ void ASurfaceTransaction_setBufferDataSpace(ASurfaceTransaction* transaction, * * Available since API level 29. */ -void ASurfaceTransaction_setHdrMetadata_smpte2086(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, - struct AHdrMetadata_smpte2086* metadata) +void ASurfaceTransaction_setHdrMetadata_smpte2086(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, + struct AHdrMetadata_smpte2086* _Nullable metadata) __INTRODUCED_IN(29); /** @@ -522,9 +530,9 @@ void ASurfaceTransaction_setHdrMetadata_smpte2086(ASurfaceTransaction* transacti * * Available since API level 29. */ -void ASurfaceTransaction_setHdrMetadata_cta861_3(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, - struct AHdrMetadata_cta861_3* metadata) +void ASurfaceTransaction_setHdrMetadata_cta861_3(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, + struct AHdrMetadata_cta861_3* _Nullable metadata) __INTRODUCED_IN(29); /** @@ -569,10 +577,10 @@ void ASurfaceTransaction_setHdrMetadata_cta861_3(ASurfaceTransaction* transactio * * Available since API level 34. */ -void ASurfaceTransaction_setExtendedRangeBrightness(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, - float currentBufferRatio, - float desiredRatio) __INTRODUCED_IN(__ANDROID_API_U__); +void ASurfaceTransaction_setExtendedRangeBrightness(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, + float currentBufferRatio, float desiredRatio) + __INTRODUCED_IN(__ANDROID_API_U__); /** * Same as ASurfaceTransaction_setFrameRateWithChangeStrategy(transaction, surface_control, @@ -582,8 +590,8 @@ void ASurfaceTransaction_setExtendedRangeBrightness(ASurfaceTransaction* transac * * Available since API level 30. */ -void ASurfaceTransaction_setFrameRate(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, float frameRate, +void ASurfaceTransaction_setFrameRate(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, float frameRate, int8_t compatibility) __INTRODUCED_IN(30); /** @@ -618,10 +626,11 @@ void ASurfaceTransaction_setFrameRate(ASurfaceTransaction* transaction, * * Available since API level 31. */ -void ASurfaceTransaction_setFrameRateWithChangeStrategy(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, float frameRate, - int8_t compatibility, int8_t changeFrameRateStrategy) - __INTRODUCED_IN(31); +void ASurfaceTransaction_setFrameRateWithChangeStrategy(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, + float frameRate, int8_t compatibility, + int8_t changeFrameRateStrategy) + __INTRODUCED_IN(31); /** * Clears the frame rate which is set for \a surface_control. @@ -644,8 +653,8 @@ void ASurfaceTransaction_setFrameRateWithChangeStrategy(ASurfaceTransaction* tra * * Available since API level 34. */ -void ASurfaceTransaction_clearFrameRate(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control) +void ASurfaceTransaction_clearFrameRate(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control) __INTRODUCED_IN(__ANDROID_API_U__); /** @@ -674,10 +683,9 @@ void ASurfaceTransaction_clearFrameRate(ASurfaceTransaction* transaction, * \param surface_control The ASurfaceControl on which to control buffer backpressure behavior. * \param enableBackPressure Whether to enable back pressure. */ -void ASurfaceTransaction_setEnableBackPressure(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, - bool enableBackPressure) - __INTRODUCED_IN(31); +void ASurfaceTransaction_setEnableBackPressure(ASurfaceTransaction* _Nonnull transaction, + ASurfaceControl* _Nonnull surface_control, + bool enableBackPressure) __INTRODUCED_IN(31); /** * Sets the frame timeline to use in SurfaceFlinger. @@ -697,7 +705,7 @@ void ASurfaceTransaction_setEnableBackPressure(ASurfaceTransaction* transaction, * to the corresponding expected presentation time and deadline from the frame to be rendered. A * stale or invalid value will be ignored. */ -void ASurfaceTransaction_setFrameTimeline(ASurfaceTransaction* transaction, +void ASurfaceTransaction_setFrameTimeline(ASurfaceTransaction* _Nonnull transaction, AVsyncId vsyncId) __INTRODUCED_IN(33); __END_DECLS |