1 /*
2  * This file is auto-generated.  DO NOT MODIFY.
3  * Using: out/host/linux-x86/bin/aidl --lang=ndk --structured --version 2 --hash c12818c51418fbfc76f1b81eba6678d75cf526c1 -t --stability vintf --min_sdk_version 29 -pout/soong/.intermediates/hardware/interfaces/common/aidl/android.hardware.common_interface/2/preprocessed.aidl -pout/soong/.intermediates/hardware/interfaces/common/fmq/aidl/android.hardware.common.fmq_interface/1/preprocessed.aidl --ninja -d out/soong/.intermediates/hardware/interfaces/media/bufferpool/aidl/android.hardware.media.bufferpool2-V2-ndk-source/gen/staging/android/hardware/media/bufferpool2/IClientManager.cpp.d -h out/soong/.intermediates/hardware/interfaces/media/bufferpool/aidl/android.hardware.media.bufferpool2-V2-ndk-source/gen/include/staging -o out/soong/.intermediates/hardware/interfaces/media/bufferpool/aidl/android.hardware.media.bufferpool2-V2-ndk-source/gen/staging -Iframeworks/base/core/java -Nhardware/interfaces/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2 hardware/interfaces/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IClientManager.aidl
4  *
5  * DO NOT CHECK THIS FILE INTO A CODE TREE (e.g. git, etc..).
6  * ALWAYS GENERATE THIS FILE FROM UPDATED AIDL COMPILER
7  * AS A BUILD INTERMEDIATE ONLY. THIS IS NOT SOURCE CODE.
8  */
9 #include "aidl/android/hardware/media/bufferpool2/IClientManager.h"
10 
11 #include <android/binder_parcel_utils.h>
12 #include <aidl/android/hardware/media/bufferpool2/BnAccessor.h>
13 #include <aidl/android/hardware/media/bufferpool2/BnClientManager.h>
14 #include <aidl/android/hardware/media/bufferpool2/BnConnection.h>
15 #include <aidl/android/hardware/media/bufferpool2/BnObserver.h>
16 #include <aidl/android/hardware/media/bufferpool2/BpAccessor.h>
17 #include <aidl/android/hardware/media/bufferpool2/BpClientManager.h>
18 #include <aidl/android/hardware/media/bufferpool2/BpConnection.h>
19 #include <aidl/android/hardware/media/bufferpool2/BpObserver.h>
20 #include <aidl/android/hardware/media/bufferpool2/IAccessor.h>
21 #include <aidl/android/hardware/media/bufferpool2/IConnection.h>
22 #include <aidl/android/hardware/media/bufferpool2/IObserver.h>
23 
24 namespace aidl {
25 namespace android {
26 namespace hardware {
27 namespace media {
28 namespace bufferpool2 {
_aidl_android_hardware_media_bufferpool2_IClientManager_onTransact(AIBinder * _aidl_binder,transaction_code_t _aidl_code,const AParcel * _aidl_in,AParcel * _aidl_out)29 static binder_status_t _aidl_android_hardware_media_bufferpool2_IClientManager_onTransact(AIBinder* _aidl_binder, transaction_code_t _aidl_code, const AParcel* _aidl_in, AParcel* _aidl_out) {
30   (void)_aidl_in;
31   (void)_aidl_out;
32   binder_status_t _aidl_ret_status = STATUS_UNKNOWN_TRANSACTION;
33   std::shared_ptr<BnClientManager> _aidl_impl = std::static_pointer_cast<BnClientManager>(::ndk::ICInterface::asInterface(_aidl_binder));
34   switch (_aidl_code) {
35     case (FIRST_CALL_TRANSACTION + 0 /*registerSender*/): {
36       std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor> in_bufferPool;
37       ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration _aidl_return;
38 
39       _aidl_ret_status = ::ndk::AParcel_readData(_aidl_in, &in_bufferPool);
40       if (_aidl_ret_status != STATUS_OK) break;
41 
42       ::ndk::ScopedAStatus _aidl_status = _aidl_impl->registerSender(in_bufferPool, &_aidl_return);
43       _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
44       if (_aidl_ret_status != STATUS_OK) break;
45 
46       if (!AStatus_isOk(_aidl_status.get())) break;
47 
48       _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
49       if (_aidl_ret_status != STATUS_OK) break;
50 
51       break;
52     }
53     case (FIRST_CALL_TRANSACTION + 1 /*registerPassiveSender*/): {
54       std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor> in_bufferPool;
55       ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration _aidl_return;
56 
57       _aidl_ret_status = ::ndk::AParcel_readData(_aidl_in, &in_bufferPool);
58       if (_aidl_ret_status != STATUS_OK) break;
59 
60       ::ndk::ScopedAStatus _aidl_status = _aidl_impl->registerPassiveSender(in_bufferPool, &_aidl_return);
61       _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
62       if (_aidl_ret_status != STATUS_OK) break;
63 
64       if (!AStatus_isOk(_aidl_status.get())) break;
65 
66       _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
67       if (_aidl_ret_status != STATUS_OK) break;
68 
69       break;
70     }
71     case (FIRST_CALL_TRANSACTION + 16777214 /*getInterfaceVersion*/): {
72       int32_t _aidl_return;
73 
74       ::ndk::ScopedAStatus _aidl_status = _aidl_impl->getInterfaceVersion(&_aidl_return);
75       _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
76       if (_aidl_ret_status != STATUS_OK) break;
77 
78       if (!AStatus_isOk(_aidl_status.get())) break;
79 
80       _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
81       if (_aidl_ret_status != STATUS_OK) break;
82 
83       break;
84     }
85     case (FIRST_CALL_TRANSACTION + 16777213 /*getInterfaceHash*/): {
86       std::string _aidl_return;
87 
88       ::ndk::ScopedAStatus _aidl_status = _aidl_impl->getInterfaceHash(&_aidl_return);
89       _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
90       if (_aidl_ret_status != STATUS_OK) break;
91 
92       if (!AStatus_isOk(_aidl_status.get())) break;
93 
94       _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
95       if (_aidl_ret_status != STATUS_OK) break;
96 
97       break;
98     }
99   }
100   return _aidl_ret_status;
101 }
102 
103 static const char* _g_aidl_android_hardware_media_bufferpool2_IClientManager_clazz_code_to_function[] = { "registerSender","registerPassiveSender",};
104 static AIBinder_Class* _g_aidl_android_hardware_media_bufferpool2_IClientManager_clazz = ::ndk::ICInterface::defineClass(IClientManager::descriptor, _aidl_android_hardware_media_bufferpool2_IClientManager_onTransact, _g_aidl_android_hardware_media_bufferpool2_IClientManager_clazz_code_to_function, 2);
105 
BpClientManager(const::ndk::SpAIBinder & binder)106 BpClientManager::BpClientManager(const ::ndk::SpAIBinder& binder) : BpCInterface(binder) {}
~BpClientManager()107 BpClientManager::~BpClientManager() {}
108 
registerSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor> & in_bufferPool,::aidl::android::hardware::media::bufferpool2::IClientManager::Registration * _aidl_return)109 ::ndk::ScopedAStatus BpClientManager::registerSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor>& in_bufferPool, ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration* _aidl_return) {
110   binder_status_t _aidl_ret_status = STATUS_OK;
111   ::ndk::ScopedAStatus _aidl_status;
112   ::ndk::ScopedAParcel _aidl_in;
113   ::ndk::ScopedAParcel _aidl_out;
114 
115   _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
116   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
117 
118   _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_in.get(), in_bufferPool);
119   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
120 
121   _aidl_ret_status = AIBinder_transact(
122     asBinderReference().get(),
123     (FIRST_CALL_TRANSACTION + 0 /*registerSender*/),
124     _aidl_in.getR(),
125     _aidl_out.getR(),
126     0
127     #ifdef BINDER_STABILITY_SUPPORT
128     | static_cast<int>(FLAG_PRIVATE_LOCAL)
129     #endif  // BINDER_STABILITY_SUPPORT
130     );
131   if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IClientManager::getDefaultImpl()) {
132     _aidl_status = IClientManager::getDefaultImpl()->registerSender(in_bufferPool, _aidl_return);
133     goto _aidl_status_return;
134   }
135   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
136 
137   _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
138   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
139 
140   if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
141   _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
142   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
143 
144   _aidl_error:
145   _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
146   _aidl_status_return:
147   return _aidl_status;
148 }
registerPassiveSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor> & in_bufferPool,::aidl::android::hardware::media::bufferpool2::IClientManager::Registration * _aidl_return)149 ::ndk::ScopedAStatus BpClientManager::registerPassiveSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor>& in_bufferPool, ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration* _aidl_return) {
150   binder_status_t _aidl_ret_status = STATUS_OK;
151   ::ndk::ScopedAStatus _aidl_status;
152   ::ndk::ScopedAParcel _aidl_in;
153   ::ndk::ScopedAParcel _aidl_out;
154 
155   _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
156   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
157 
158   _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_in.get(), in_bufferPool);
159   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
160 
161   _aidl_ret_status = AIBinder_transact(
162     asBinderReference().get(),
163     (FIRST_CALL_TRANSACTION + 1 /*registerPassiveSender*/),
164     _aidl_in.getR(),
165     _aidl_out.getR(),
166     0
167     #ifdef BINDER_STABILITY_SUPPORT
168     | static_cast<int>(FLAG_PRIVATE_LOCAL)
169     #endif  // BINDER_STABILITY_SUPPORT
170     );
171   if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IClientManager::getDefaultImpl()) {
172     _aidl_status = IClientManager::getDefaultImpl()->registerPassiveSender(in_bufferPool, _aidl_return);
173     goto _aidl_status_return;
174   }
175   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
176 
177   _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
178   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
179 
180   if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
181   _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
182   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
183 
184   _aidl_error:
185   _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
186   _aidl_status_return:
187   return _aidl_status;
188 }
getInterfaceVersion(int32_t * _aidl_return)189 ::ndk::ScopedAStatus BpClientManager::getInterfaceVersion(int32_t* _aidl_return) {
190   binder_status_t _aidl_ret_status = STATUS_OK;
191   ::ndk::ScopedAStatus _aidl_status;
192   if (_aidl_cached_version != -1) {
193     *_aidl_return = _aidl_cached_version;
194     _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
195     return _aidl_status;
196   }
197   ::ndk::ScopedAParcel _aidl_in;
198   ::ndk::ScopedAParcel _aidl_out;
199 
200   _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
201   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
202 
203   _aidl_ret_status = AIBinder_transact(
204     asBinderReference().get(),
205     (FIRST_CALL_TRANSACTION + 16777214 /*getInterfaceVersion*/),
206     _aidl_in.getR(),
207     _aidl_out.getR(),
208     0
209     #ifdef BINDER_STABILITY_SUPPORT
210     | static_cast<int>(FLAG_PRIVATE_LOCAL)
211     #endif  // BINDER_STABILITY_SUPPORT
212     );
213   if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IClientManager::getDefaultImpl()) {
214     _aidl_status = IClientManager::getDefaultImpl()->getInterfaceVersion(_aidl_return);
215     goto _aidl_status_return;
216   }
217   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
218 
219   _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
220   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
221 
222   if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
223   _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
224   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
225 
226   _aidl_cached_version = *_aidl_return;
227   _aidl_error:
228   _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
229   _aidl_status_return:
230   return _aidl_status;
231 }
getInterfaceHash(std::string * _aidl_return)232 ::ndk::ScopedAStatus BpClientManager::getInterfaceHash(std::string* _aidl_return) {
233   binder_status_t _aidl_ret_status = STATUS_OK;
234   ::ndk::ScopedAStatus _aidl_status;
235   const std::lock_guard<std::mutex> lock(_aidl_cached_hash_mutex);
236   if (_aidl_cached_hash != "-1") {
237     *_aidl_return = _aidl_cached_hash;
238     _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
239     return _aidl_status;
240   }
241   ::ndk::ScopedAParcel _aidl_in;
242   ::ndk::ScopedAParcel _aidl_out;
243 
244   _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
245   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
246 
247   _aidl_ret_status = AIBinder_transact(
248     asBinderReference().get(),
249     (FIRST_CALL_TRANSACTION + 16777213 /*getInterfaceHash*/),
250     _aidl_in.getR(),
251     _aidl_out.getR(),
252     0
253     #ifdef BINDER_STABILITY_SUPPORT
254     | static_cast<int>(FLAG_PRIVATE_LOCAL)
255     #endif  // BINDER_STABILITY_SUPPORT
256     );
257   if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IClientManager::getDefaultImpl()) {
258     _aidl_status = IClientManager::getDefaultImpl()->getInterfaceHash(_aidl_return);
259     goto _aidl_status_return;
260   }
261   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
262 
263   _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
264   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
265 
266   if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
267   _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
268   if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
269 
270   _aidl_cached_hash = *_aidl_return;
271   _aidl_error:
272   _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
273   _aidl_status_return:
274   return _aidl_status;
275 }
276 // Source for BnClientManager
BnClientManager()277 BnClientManager::BnClientManager() {}
~BnClientManager()278 BnClientManager::~BnClientManager() {}
createBinder()279 ::ndk::SpAIBinder BnClientManager::createBinder() {
280   AIBinder* binder = AIBinder_new(_g_aidl_android_hardware_media_bufferpool2_IClientManager_clazz, static_cast<void*>(this));
281   #ifdef BINDER_STABILITY_SUPPORT
282   AIBinder_markVintfStability(binder);
283   #endif  // BINDER_STABILITY_SUPPORT
284   return ::ndk::SpAIBinder(binder);
285 }
getInterfaceVersion(int32_t * _aidl_return)286 ::ndk::ScopedAStatus BnClientManager::getInterfaceVersion(int32_t* _aidl_return) {
287   *_aidl_return = IClientManager::version;
288   return ::ndk::ScopedAStatus(AStatus_newOk());
289 }
getInterfaceHash(std::string * _aidl_return)290 ::ndk::ScopedAStatus BnClientManager::getInterfaceHash(std::string* _aidl_return) {
291   *_aidl_return = IClientManager::hash;
292   return ::ndk::ScopedAStatus(AStatus_newOk());
293 }
294 // Source for IClientManager
295 const char* IClientManager::descriptor = "android.hardware.media.bufferpool2.IClientManager";
IClientManager()296 IClientManager::IClientManager() {}
~IClientManager()297 IClientManager::~IClientManager() {}
298 
299 
fromBinder(const::ndk::SpAIBinder & binder)300 std::shared_ptr<IClientManager> IClientManager::fromBinder(const ::ndk::SpAIBinder& binder) {
301   if (!AIBinder_associateClass(binder.get(), _g_aidl_android_hardware_media_bufferpool2_IClientManager_clazz)) {
302     #if __ANDROID_API__ >= 31
303     const AIBinder_Class* originalClass = AIBinder_getClass(binder.get());
304     if (originalClass == nullptr) return nullptr;
305     if (0 == strcmp(AIBinder_Class_getDescriptor(originalClass), descriptor)) {
306       return ::ndk::SharedRefBase::make<BpClientManager>(binder);
307     }
308     #endif
309     return nullptr;
310   }
311   std::shared_ptr<::ndk::ICInterface> interface = ::ndk::ICInterface::asInterface(binder.get());
312   if (interface) {
313     return std::static_pointer_cast<IClientManager>(interface);
314   }
315   return ::ndk::SharedRefBase::make<BpClientManager>(binder);
316 }
317 
writeToParcel(AParcel * parcel,const std::shared_ptr<IClientManager> & instance)318 binder_status_t IClientManager::writeToParcel(AParcel* parcel, const std::shared_ptr<IClientManager>& instance) {
319   return AParcel_writeStrongBinder(parcel, instance ? instance->asBinder().get() : nullptr);
320 }
readFromParcel(const AParcel * parcel,std::shared_ptr<IClientManager> * instance)321 binder_status_t IClientManager::readFromParcel(const AParcel* parcel, std::shared_ptr<IClientManager>* instance) {
322   ::ndk::SpAIBinder binder;
323   binder_status_t status = AParcel_readStrongBinder(parcel, binder.getR());
324   if (status != STATUS_OK) return status;
325   *instance = IClientManager::fromBinder(binder);
326   return STATUS_OK;
327 }
setDefaultImpl(const std::shared_ptr<IClientManager> & impl)328 bool IClientManager::setDefaultImpl(const std::shared_ptr<IClientManager>& impl) {
329   // Only one user of this interface can use this function
330   // at a time. This is a heuristic to detect if two different
331   // users in the same process use this function.
332   assert(!IClientManager::default_impl);
333   if (impl) {
334     IClientManager::default_impl = impl;
335     return true;
336   }
337   return false;
338 }
getDefaultImpl()339 const std::shared_ptr<IClientManager>& IClientManager::getDefaultImpl() {
340   return IClientManager::default_impl;
341 }
342 std::shared_ptr<IClientManager> IClientManager::default_impl = nullptr;
registerSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor> &,::aidl::android::hardware::media::bufferpool2::IClientManager::Registration *)343 ::ndk::ScopedAStatus IClientManagerDefault::registerSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor>& /*in_bufferPool*/, ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration* /*_aidl_return*/) {
344   ::ndk::ScopedAStatus _aidl_status;
345   _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
346   return _aidl_status;
347 }
registerPassiveSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor> &,::aidl::android::hardware::media::bufferpool2::IClientManager::Registration *)348 ::ndk::ScopedAStatus IClientManagerDefault::registerPassiveSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor>& /*in_bufferPool*/, ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration* /*_aidl_return*/) {
349   ::ndk::ScopedAStatus _aidl_status;
350   _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
351   return _aidl_status;
352 }
getInterfaceVersion(int32_t * _aidl_return)353 ::ndk::ScopedAStatus IClientManagerDefault::getInterfaceVersion(int32_t* _aidl_return) {
354   *_aidl_return = 0;
355   return ::ndk::ScopedAStatus(AStatus_newOk());
356 }
getInterfaceHash(std::string * _aidl_return)357 ::ndk::ScopedAStatus IClientManagerDefault::getInterfaceHash(std::string* _aidl_return) {
358   *_aidl_return = "";
359   return ::ndk::ScopedAStatus(AStatus_newOk());
360 }
asBinder()361 ::ndk::SpAIBinder IClientManagerDefault::asBinder() {
362   return ::ndk::SpAIBinder();
363 }
isRemote()364 bool IClientManagerDefault::isRemote() {
365   return false;
366 }
367 }  // namespace bufferpool2
368 }  // namespace media
369 }  // namespace hardware
370 }  // namespace android
371 }  // namespace aidl
372 namespace aidl {
373 namespace android {
374 namespace hardware {
375 namespace media {
376 namespace bufferpool2 {
377 const char* IClientManager::Registration::descriptor = "android.hardware.media.bufferpool2.IClientManager.Registration";
378 
readFromParcel(const AParcel * _aidl_parcel)379 binder_status_t IClientManager::Registration::readFromParcel(const AParcel* _aidl_parcel) {
380   binder_status_t _aidl_ret_status = STATUS_OK;
381   int32_t _aidl_start_pos = AParcel_getDataPosition(_aidl_parcel);
382   int32_t _aidl_parcelable_size = 0;
383   _aidl_ret_status = AParcel_readInt32(_aidl_parcel, &_aidl_parcelable_size);
384   if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
385 
386   if (_aidl_parcelable_size < 4) return STATUS_BAD_VALUE;
387   if (_aidl_start_pos > INT32_MAX - _aidl_parcelable_size) return STATUS_BAD_VALUE;
388   if (AParcel_getDataPosition(_aidl_parcel) - _aidl_start_pos >= _aidl_parcelable_size) {
389     AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos + _aidl_parcelable_size);
390     return _aidl_ret_status;
391   }
392   _aidl_ret_status = ::ndk::AParcel_readData(_aidl_parcel, &connectionId);
393   if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
394 
395   if (AParcel_getDataPosition(_aidl_parcel) - _aidl_start_pos >= _aidl_parcelable_size) {
396     AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos + _aidl_parcelable_size);
397     return _aidl_ret_status;
398   }
399   _aidl_ret_status = ::ndk::AParcel_readData(_aidl_parcel, &isNew);
400   if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
401 
402   AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos + _aidl_parcelable_size);
403   return _aidl_ret_status;
404 }
writeToParcel(AParcel * _aidl_parcel) const405 binder_status_t IClientManager::Registration::writeToParcel(AParcel* _aidl_parcel) const {
406   binder_status_t _aidl_ret_status;
407   int32_t _aidl_start_pos = AParcel_getDataPosition(_aidl_parcel);
408   _aidl_ret_status = AParcel_writeInt32(_aidl_parcel, 0);
409   if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
410 
411   _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_parcel, connectionId);
412   if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
413 
414   _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_parcel, isNew);
415   if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
416 
417   int32_t _aidl_end_pos = AParcel_getDataPosition(_aidl_parcel);
418   AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos);
419   AParcel_writeInt32(_aidl_parcel, _aidl_end_pos - _aidl_start_pos);
420   AParcel_setDataPosition(_aidl_parcel, _aidl_end_pos);
421   return _aidl_ret_status;
422 }
423 
424 }  // namespace bufferpool2
425 }  // namespace media
426 }  // namespace hardware
427 }  // namespace android
428 }  // namespace aidl
429